diff -Nrcpad gcc-16-20251019/.forgejo/workflows/sanity-checks.yaml gcc-16-20251026/.forgejo/workflows/sanity-checks.yaml
*** gcc-16-20251019/.forgejo/workflows/sanity-checks.yaml	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/.forgejo/workflows/sanity-checks.yaml	Sun Oct 26 22:32:31 2025
***************
*** 0 ****
--- 1,49 ----
+ on:
+   pull_request:
+     types: [opened, synchronize, reopened]
+ 
+ jobs:
+   testjob:
+     runs-on: sourceware-runner
+     outputs:
+       styleoutput: ${{ steps.check_gnu_style.outputs.styleresult }}
+       verifyoutput: ${{ steps.gcc_verify.outputs.verifyresult }}
+     steps:
+       - name: install dependencies
+         run: |
+           echo "Installing node.js"
+           apt-get update
+           apt-get install -qq -y nodejs git python3 python3-git python3-termcolor python3-unidiff
+ 
+       # Checkout GCC sources, request an history depth of 100,
+       # hopefully sufficient for all patch series (the default is 1)
+       - uses: actions/checkout@v4
+         with:
+           fetch-depth: 100
+ 
+       - name: check GNU style
+         id: check_gnu_style
+         continue-on-error: true
+         run: |
+           echo "Running check_GNU_style.py"
+           git fetch origin ${FORGEJO_BASE_REF}:${FORGEJO_BASE_REF}
+           for sha in $(git rev-list ${FORGEJO_BASE_REF}..${FORGEJO_SHA})
+           do
+             echo "Checking GNU style for $sha"
+             git show $sha | ./contrib/check_GNU_style.py -
+           done
+           echo "styleresult=pass" | tee -a $FORGEJO_OUTPUT
+ 
+       - name: gcc-verify
+         id: gcc_verify
+         continue-on-error: true
+         run: |
+           echo "Running gcc-verify check"
+           ./contrib/gcc-changelog/git_check_commit.py ${FORGEJO_BASE_REF}..${FORGEJO_SHA}
+           echo "verifyresult=pass" | tee -a $FORGEJO_OUTPUT
+ 
+       - name: final-result
+         run: |
+           echo "Computing final result"
+           test "${{ steps.check_gnu_style.outputs.styleresult }}" = "pass"
+           test "${{ steps.gcc_verify.outputs.verifyresult }}" = "pass"
diff -Nrcpad gcc-16-20251019/ChangeLog gcc-16-20251026/ChangeLog
*** gcc-16-20251019/ChangeLog	Sun Oct 19 22:32:11 2025
--- gcc-16-20251026/ChangeLog	Sun Oct 26 22:32:31 2025
***************
*** 1,3 ****
--- 1,27 ----
+ 2025-10-24  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR driver/81358
+ 	* Makefile.tpl: Move generation of dependencies for libatomic out
+ 	of loop over 'target_modules'.
+ 	* Makefile.in: Regenerate.
+ 
+ 2025-10-22  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* MAINTAINERS: Update my contact information.
+ 
+ 2025-10-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* MAINTAINERS (Various Maintainers): Add myself for the vectorizer.
+ 
+ 2025-10-20  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* .forgejo/workflows/sanity-checks.yaml: New file.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* MAINTAINERS (auto-vectorizer): Change attribution to
+ 	vectorizer (+ tree-if-conv).
+ 
  2025-10-15  Basil Milanich  <bmilanich@gmail.com>
  
  	* Makefile.tpl (distclean): Remove extraenous semicolon.
diff -Nrcpad gcc-16-20251019/LAST_UPDATED gcc-16-20251026/LAST_UPDATED
*** gcc-16-20251019/LAST_UPDATED	Sun Oct 19 22:33:16 2025
--- gcc-16-20251026/LAST_UPDATED	Sun Oct 26 22:33:30 2025
***************
*** 1 ****
! Obtained from git: master revision 938ad303f9d52f26a48505903affa183c88bed84
--- 1 ----
! Obtained from git: master revision e4ab1b50e35d6a756c120d66554df8c2135b8d12
diff -Nrcpad gcc-16-20251019/MAINTAINERS gcc-16-20251026/MAINTAINERS
*** gcc-16-20251019/MAINTAINERS	Sun Oct 19 22:32:11 2025
--- gcc-16-20251026/MAINTAINERS	Sun Oct 26 22:32:31 2025
*************** reload                  Ulrich Weigand
*** 252,259 ****
  RTL optimizers          Eric Botcazou           <ebotcazou@libertysurf.fr>
  instruction combiner    Segher Boessenkool      <segher@kernel.crashing.org>
  pair fusion             Alex Coplan             <alex.coplan@arm.com>
! auto-vectorizer         Richard Biener          <rguenther@suse.de>
! auto-vectorizer         Zdenek Dvorak           <ook@ucw.cz>
  loop infrastructure     Zdenek Dvorak           <ook@ucw.cz>
  loop ivopts             Bin Cheng               <bin.cheng@linux.alibaba.com>
  loop optimizer          Bin Cheng               <bin.cheng@linux.alibaba.com>
--- 252,260 ----
  RTL optimizers          Eric Botcazou           <ebotcazou@libertysurf.fr>
  instruction combiner    Segher Boessenkool      <segher@kernel.crashing.org>
  pair fusion             Alex Coplan             <alex.coplan@arm.com>
! vectorizer (+ tree-if-conv) Richard Biener      <rguenther@suse.de>
! vectorizer (+ tree-if-conv) Tamar Christina     <tamar.christina@arm.com>
! vectorizer (+ tree-if-conv) Zdenek Dvorak       <ook@ucw.cz>
  loop infrastructure     Zdenek Dvorak           <ook@ucw.cz>
  loop ivopts             Bin Cheng               <bin.cheng@linux.alibaba.com>
  loop optimizer          Bin Cheng               <bin.cheng@linux.alibaba.com>
*************** Bryce McKinlay                  bryce
*** 678,684 ****
  Adam Megacz                     -               <adam@xwt.org>
  Bingfeng Mei                    meibf           <bmei@broadcom.com>
  Michael Meissner                meissner        <gnu@the-meissners.org>
! Josef Melcr                     -               <melcrjos@fit.cvut.cz>
  Jason Merrill                   jason           <jason@redhat.com>
  Jim Meyering                    -               <jim@meyering.net>
  Martin Michlmayr                tbm             <tbm@cyrius.com>
--- 679,685 ----
  Adam Megacz                     -               <adam@xwt.org>
  Bingfeng Mei                    meibf           <bmei@broadcom.com>
  Michael Meissner                meissner        <gnu@the-meissners.org>
! Josef Melcr                     jmelcr          <jmelcr02@gmail.com>
  Jason Merrill                   jason           <jason@redhat.com>
  Jim Meyering                    -               <jim@meyering.net>
  Martin Michlmayr                tbm             <tbm@cyrius.com>
diff -Nrcpad gcc-16-20251019/MD5SUMS gcc-16-20251026/MD5SUMS
*** gcc-16-20251019/MD5SUMS	Sun Oct 19 22:33:20 2025
--- gcc-16-20251026/MD5SUMS	Sun Oct 26 22:33:34 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20251019.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-20251026.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
*************** e8eeef33ef071516ce3f689e9c71e0b5  .b4-co
*** 12,17 ****
--- 12,18 ----
  fd78d02fa55fcdb78ddb2f37a7868dbb  .dir-locals.el
  617f425ec650450d3b979db16e73b315  .editorconfig
  b91d600742b62d1860809cb184055a3d  .forgejo/PULL_REQUEST_TEMPLATE.md
+ 5b2970579525915c2f5b5a104935b2af  .forgejo/workflows/sanity-checks.yaml
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
  b8acb527560fc760209d200fcfab8ff4  .github/PULL_REQUEST_TEMPLATE.md
*************** ac5a8807f431d3dab46a7425b96379e4  .gitig
*** 22,36 ****
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 56cc49bdd0ee667da2e6c16d27bc35c9  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! a4cc4b6e703540e4ca947a48f56e1d07  LAST_UPDATED
! 8e87c2f135d3885c0640f7f2229b11ae  MAINTAINERS
  e4676e623f8df5efef68f36db1121a28  Makefile.def
! 20df5c5e15ee491667a57876562bd1cf  Makefile.in
! a8410827a3532a4129449cdfc3f3f237  Makefile.tpl
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
--- 23,37 ----
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 20decbb02b73405da2221e4656218ca8  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! add82c5a8c8aa08c6ff9a066cdb06cc6  LAST_UPDATED
! 8675c6bdd00d25f1e8eff4fe5642015f  MAINTAINERS
  e4676e623f8df5efef68f36db1121a28  Makefile.def
! e602349d286d2792c339d5a6f514efde  Makefile.in
! cc2d22050d55934f814da4b15b72cef2  Makefile.tpl
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 519,525 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! aae00fa5196d235795c520b2d50cfff4  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 520,526 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 4f38e66c2dc0305e415accf1260c23df  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 556,562 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 3a47736b9bcd86ca011170d1e384f28f  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 557,563 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 8f3538cf3f4ab2a86aadfa504309e43a  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 568,574 ****
  23d99b5becf269aa690a91a6f95228b9  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 7b6e0a71bc17e66295e4be069d47b2f2  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 569,575 ----
  23d99b5becf269aa690a91a6f95228b9  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 1fb13f55ef4ac6fb31dd978fef7667c0  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** a07518144c5203a421dbc45a7b16e04f  gcc/ad
*** 607,613 ****
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
  accf7e9d7174fedb8b25677d5957bd67  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
! 760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
  a436320cda5fb678ef608c3511ad8c2a  gcc/ada/ali-util.ads
  b85696b217523a0bfb956e6ae85c879f  gcc/ada/ali.adb
--- 608,614 ----
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
  accf7e9d7174fedb8b25677d5957bd67  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
! 4ef2efbae418f280f680909768eeb59d  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
  a436320cda5fb678ef608c3511ad8c2a  gcc/ada/ali-util.ads
  b85696b217523a0bfb956e6ae85c879f  gcc/ada/ali.adb
*************** bdf1e45828c56644b32ac57ae50d5710  gcc/ad
*** 762,770 ****
  855ab7be8dea970234057b661c2254a2  gcc/ada/exp_ch12.ads
  fce186389d317dec9c580f569a2a845a  gcc/ada/exp_ch13.adb
  c6728830f0888dc3385e474b5925c01f  gcc/ada/exp_ch13.ads
! d037443d1b61c02110e124f3c701b449  gcc/ada/exp_ch2.adb
  476e299ea88b583859604d0071046143  gcc/ada/exp_ch2.ads
! 3d62d5b3a382429d7d88e73a640999b7  gcc/ada/exp_ch3.adb
  d1b7c8ba53a4cc5868e87b17370562ce  gcc/ada/exp_ch3.ads
  475f8a69e03954635fb817f229ff8699  gcc/ada/exp_ch4.adb
  ef982b9647c35560ae7ff386e547bd16  gcc/ada/exp_ch4.ads
--- 763,771 ----
  855ab7be8dea970234057b661c2254a2  gcc/ada/exp_ch12.ads
  fce186389d317dec9c580f569a2a845a  gcc/ada/exp_ch13.adb
  c6728830f0888dc3385e474b5925c01f  gcc/ada/exp_ch13.ads
! b9d5bddaa9aa52397a9d53cb0da957ed  gcc/ada/exp_ch2.adb
  476e299ea88b583859604d0071046143  gcc/ada/exp_ch2.ads
! 0f5e724b195c5715de8d54f1d58acee4  gcc/ada/exp_ch3.adb
  d1b7c8ba53a4cc5868e87b17370562ce  gcc/ada/exp_ch3.ads
  475f8a69e03954635fb817f229ff8699  gcc/ada/exp_ch4.adb
  ef982b9647c35560ae7ff386e547bd16  gcc/ada/exp_ch4.ads
*************** c79c1c9f404c173669ce13802612cf8f  gcc/ad
*** 830,836 ****
  5f9e0e6d3b96540c54ba9e0ca89941e4  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
  5febf852ffe2ba81709e97acc0e9d3be  gcc/ada/gcc-interface/Make-lang.in
! c9363baf654f7376690ac9ea9b9c33d3  gcc/ada/gcc-interface/Makefile.in
  b02134e55a04db5c49a710da26b19be1  gcc/ada/gcc-interface/ada-builtin-types.def
  bc1175cb4ea0b9cb5f8751b3f0da7f74  gcc/ada/gcc-interface/ada-builtins.def
  9671d558ad879f15e73993538906ebda  gcc/ada/gcc-interface/ada-tree.def
--- 831,837 ----
  5f9e0e6d3b96540c54ba9e0ca89941e4  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
  5febf852ffe2ba81709e97acc0e9d3be  gcc/ada/gcc-interface/Make-lang.in
! 6c0fd5d6b5aec35c7a1e05575f0c55f3  gcc/ada/gcc-interface/Makefile.in
  b02134e55a04db5c49a710da26b19be1  gcc/ada/gcc-interface/ada-builtin-types.def
  bc1175cb4ea0b9cb5f8751b3f0da7f74  gcc/ada/gcc-interface/ada-builtins.def
  9671d558ad879f15e73993538906ebda  gcc/ada/gcc-interface/ada-tree.def
*************** de69fc271ce889490809004600fcac0f  gcc/ad
*** 878,884 ****
  fa1f249efe6a66c215950ac5d3c89e30  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
! aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
  e7512e43fd2370e49f1edc56ff00f814  gcc/ada/gnatclean.adb
  e64260fbaff3aa9311d96a900d6fae59  gcc/ada/gnatcmd.adb
  6afc1784ef0e925e97f76e206a607a43  gcc/ada/gnatcmd.ads
--- 879,885 ----
  fa1f249efe6a66c215950ac5d3c89e30  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
! 4fea416b1232ad73eeb5e21f09d13496  gcc/ada/gnatchop.adb
  e7512e43fd2370e49f1edc56ff00f814  gcc/ada/gnatclean.adb
  e64260fbaff3aa9311d96a900d6fae59  gcc/ada/gnatcmd.adb
  6afc1784ef0e925e97f76e206a607a43  gcc/ada/gnatcmd.ads
*************** e64260fbaff3aa9311d96a900d6fae59  gcc/ad
*** 886,892 ****
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
  2eddc8dde06f1e8d1ae7a527fb72c263  gcc/ada/gnatkr.adb
  d7392969bf1bfb1dc263eadee42f41a4  gcc/ada/gnatkr.ads
! 396c7dd9ce4bc049ae401461ae99943a  gcc/ada/gnatlink.adb
  b82b4a0c5285d19d7f428258166a8842  gcc/ada/gnatlink.ads
  6db81ca2b81e2ebfb30868886be30f76  gcc/ada/gnatls.adb
  e204de79f4f6b64632812ec5d99d0161  gcc/ada/gnatls.ads
--- 887,893 ----
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
  2eddc8dde06f1e8d1ae7a527fb72c263  gcc/ada/gnatkr.adb
  d7392969bf1bfb1dc263eadee42f41a4  gcc/ada/gnatkr.ads
! 53f4a502665a8d6aa45b0cda91f2b8e7  gcc/ada/gnatlink.adb
  b82b4a0c5285d19d7f428258166a8842  gcc/ada/gnatlink.ads
  6db81ca2b81e2ebfb30868886be30f76  gcc/ada/gnatls.adb
  e204de79f4f6b64632812ec5d99d0161  gcc/ada/gnatls.ads
*************** c83549e690036c47b39fa8b6528958ae  gcc/ad
*** 1767,1773 ****
  d8e9fd4e81a614d9bd0fca76b8f2bb00  gcc/ada/libgnat/g-calend.ads
  172cbdecdc80b79191b03d1e99bebb5b  gcc/ada/libgnat/g-casuti.adb
  1bf6a034e019c41d01d146693f15f4da  gcc/ada/libgnat/g-casuti.ads
! 9004c8eb5f66587c112d85fdf8705767  gcc/ada/libgnat/g-catiio.adb
  08ecd314d04d23faef4bf50b9211f401  gcc/ada/libgnat/g-catiio.ads
  cd5ed1507ed15da465812bff03bdefb6  gcc/ada/libgnat/g-cgi.adb
  87454623de863bd613abcf50cb4b598b  gcc/ada/libgnat/g-cgi.ads
--- 1768,1774 ----
  d8e9fd4e81a614d9bd0fca76b8f2bb00  gcc/ada/libgnat/g-calend.ads
  172cbdecdc80b79191b03d1e99bebb5b  gcc/ada/libgnat/g-casuti.adb
  1bf6a034e019c41d01d146693f15f4da  gcc/ada/libgnat/g-casuti.ads
! 93d7d142f50b525050eae65fc8838233  gcc/ada/libgnat/g-catiio.adb
  08ecd314d04d23faef4bf50b9211f401  gcc/ada/libgnat/g-catiio.ads
  cd5ed1507ed15da465812bff03bdefb6  gcc/ada/libgnat/g-cgi.adb
  87454623de863bd613abcf50cb4b598b  gcc/ada/libgnat/g-cgi.ads
*************** bb35d323ecf448aa8fb7025a4bc206ac  gcc/ad
*** 2867,2877 ****
  058035f6a217fb7bed8ac566527a2c23  gcc/ada/restrict.ads
  9d12840e7f4b919f1f71a18a65b3463c  gcc/ada/rident.ads
  32312ab752a2a0382c9276e387b389e1  gcc/ada/rtfinal.c
! 01263778e97af0ecb135164f1bbfd6ad  gcc/ada/rtinit.c
  1e27242a4b1e6be20b3aee25a5d9b8d7  gcc/ada/rtsfind.adb
  c848cd1773f49a8a38c701a95c624aee  gcc/ada/rtsfind.ads
  66e987f268458746a6afb190c151af7a  gcc/ada/runtime.h
! 380052748c3cfb90df03390224caf458  gcc/ada/s-oscons-tmplt.c
  6c6bc69518c778cd3f35ca2095dc1ce1  gcc/ada/s-pack.adb.tmpl
  769f019e3de5c30e3ae7534efbba17df  gcc/ada/s-pack.ads.tmpl
  f2b44210590da3ce7d60699034656b7f  gcc/ada/scans.adb
--- 2868,2878 ----
  058035f6a217fb7bed8ac566527a2c23  gcc/ada/restrict.ads
  9d12840e7f4b919f1f71a18a65b3463c  gcc/ada/rident.ads
  32312ab752a2a0382c9276e387b389e1  gcc/ada/rtfinal.c
! 1654d90a151d0c2c0664a7033460833c  gcc/ada/rtinit.c
  1e27242a4b1e6be20b3aee25a5d9b8d7  gcc/ada/rtsfind.adb
  c848cd1773f49a8a38c701a95c624aee  gcc/ada/rtsfind.ads
  66e987f268458746a6afb190c151af7a  gcc/ada/runtime.h
! e76c7dbbf67be8a63281bb1cb3093034  gcc/ada/s-oscons-tmplt.c
  6c6bc69518c778cd3f35ca2095dc1ce1  gcc/ada/s-pack.adb.tmpl
  769f019e3de5c30e3ae7534efbba17df  gcc/ada/s-pack.ads.tmpl
  f2b44210590da3ce7d60699034656b7f  gcc/ada/scans.adb
*************** e8573b06cd7059d6bbde030175ab1a71  gcc/ad
*** 2916,2924 ****
  ec8d5a42c27c46e4969c16d6e18ed276  gcc/ada/sem_ch5.ads
  9c8edc8418e17cd1a5fbd65b77454574  gcc/ada/sem_ch6.adb
  165c2ff9990d74ba204881b7983566c7  gcc/ada/sem_ch6.ads
! 8fafaa13f3f979874c8cdb29690deeec  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
! 3a04524f67dd69e53da10a9b9ff7745e  gcc/ada/sem_ch8.adb
  f0b4e317e5d5515a6ec337bc5acf5fe0  gcc/ada/sem_ch8.ads
  546c616e1a0e3e76b6220644a605da51  gcc/ada/sem_ch9.adb
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
--- 2917,2925 ----
  ec8d5a42c27c46e4969c16d6e18ed276  gcc/ada/sem_ch5.ads
  9c8edc8418e17cd1a5fbd65b77454574  gcc/ada/sem_ch6.adb
  165c2ff9990d74ba204881b7983566c7  gcc/ada/sem_ch6.ads
! 3cd25a6cb22852e2cb118d3576b05bdc  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
! 1508bb5a232d3469fdb90c7970c4be40  gcc/ada/sem_ch8.adb
  f0b4e317e5d5515a6ec337bc5acf5fe0  gcc/ada/sem_ch8.ads
  546c616e1a0e3e76b6220644a605da51  gcc/ada/sem_ch9.adb
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
*************** e8e79e2a818321d7816e27eed8d17404  gcc/ad
*** 2938,2944 ****
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
  4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! e104689e0b89324e89325a606f94eac0  gcc/ada/sem_prag.adb
  d16256f1e0a8b84763e3ccc0653e1c4b  gcc/ada/sem_prag.ads
  4ec88812296adfa216b478a7141c3990  gcc/ada/sem_res.adb
  bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
--- 2939,2945 ----
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
  4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! 32b2a28c2f2994ed2fcd7d6ae913b861  gcc/ada/sem_prag.adb
  d16256f1e0a8b84763e3ccc0653e1c4b  gcc/ada/sem_prag.ads
  4ec88812296adfa216b478a7141c3990  gcc/ada/sem_res.adb
  bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
*************** ceaa52edf6355622601cd30f7c096b06  gcc/ad
*** 2995,3001 ****
  426fe1648aa969a711bc91b140c31950  gcc/ada/strub.ads
  8afc1c7d58bdd832cfc07e0b7f154b20  gcc/ada/style.adb
  47034d64868bf09604f7cf41bfa8f20b  gcc/ada/style.ads
! 602e5a3e4582230b3df902db3781e848  gcc/ada/styleg.adb
  93df3efe29025f787333e334faf17c55  gcc/ada/styleg.ads
  2e977ce8e3a4cc0d1344850f639eea97  gcc/ada/stylesw.adb
  072e20e96999b6e3137326e76e71b03d  gcc/ada/stylesw.ads
--- 2996,3002 ----
  426fe1648aa969a711bc91b140c31950  gcc/ada/strub.ads
  8afc1c7d58bdd832cfc07e0b7f154b20  gcc/ada/style.adb
  47034d64868bf09604f7cf41bfa8f20b  gcc/ada/style.ads
! 68cb599e2bce9af2fffbe9686938edc4  gcc/ada/styleg.adb
  93df3efe29025f787333e334faf17c55  gcc/ada/styleg.ads
  2e977ce8e3a4cc0d1344850f639eea97  gcc/ada/stylesw.adb
  072e20e96999b6e3137326e76e71b03d  gcc/ada/stylesw.ads
*************** d9d7a0f9b8ac29d8f1e477d6b53076c1  gcc/ad
*** 3017,3023 ****
  03e5b9b1656536438d1d92ddd3ce3082  gcc/ada/tbuild.ads
  7180c008001620663d18e4ca13bb09d3  gcc/ada/tempdir.adb
  6f122fca818bdd0608fc8391dbb411ba  gcc/ada/tempdir.ads
! fb2dbb46dab058293bcd11b4ec94c26f  gcc/ada/terminals.c
  90388b2ce8b02dc01b5f589caaff07ec  gcc/ada/tracebak.c
  c9ba3419b694441662c69e58af06ae07  gcc/ada/treepr.adb
  fffc3c236eb600b5b36d78fbe10f489d  gcc/ada/treepr.ads
--- 3018,3024 ----
  03e5b9b1656536438d1d92ddd3ce3082  gcc/ada/tbuild.ads
  7180c008001620663d18e4ca13bb09d3  gcc/ada/tempdir.adb
  6f122fca818bdd0608fc8391dbb411ba  gcc/ada/tempdir.ads
! 9926751851ed0d0e60e63eeb59a3c547  gcc/ada/terminals.c
  90388b2ce8b02dc01b5f589caaff07ec  gcc/ada/tracebak.c
  c9ba3419b694441662c69e58af06ae07  gcc/ada/treepr.adb
  fffc3c236eb600b5b36d78fbe10f489d  gcc/ada/treepr.ads
*************** cc81acb908eb9d6b13038a95c3a10a9c  gcc/an
*** 3163,3169 ****
  eeb42b412edc2884a4c60d6f38f7473b  gcc/array-traits.h
  6abcb9777280c69da14835a391a5c347  gcc/asan.cc
  135df8f25422fc20afd9efad9dffdd54  gcc/asan.h
! 22d14e98cf7ac7f3fc14839a0c2edb8a  gcc/attr-callback.cc
  d27354907d96bc34ceb8142996a383d0  gcc/attr-callback.h
  c77616ec7ed7ec81357de9544f955910  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
--- 3164,3170 ----
  eeb42b412edc2884a4c60d6f38f7473b  gcc/array-traits.h
  6abcb9777280c69da14835a391a5c347  gcc/asan.cc
  135df8f25422fc20afd9efad9dffdd54  gcc/asan.h
! 4f1054632a45a7a19a5835e89ed342f9  gcc/attr-callback.cc
  d27354907d96bc34ceb8142996a383d0  gcc/attr-callback.h
  c77616ec7ed7ec81357de9544f955910  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
*************** fe292df4b7f3e3ef7c0b8305084b6844  gcc/bi
*** 3188,3199 ****
  1f5d04ed09772ef8cff71c5a2d838b85  gcc/builtins.cc
  52ff6fb92e162a8ad41a1af1dfb0171a  gcc/builtins.def
  08bacecaf5d3527bf3df15480fb78537  gcc/builtins.h
! 37d43b5f5df7900ba88466bbff6afe5b  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  9c7ff39ab2ffc5f0938f59efc3657201  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
  eab1507c247022223dcdc6d8d8902ff1  gcc/c-family/c-attribs.cc
! 593fbbab9c7b834d617562d8c26302d9  gcc/c-family/c-common.cc
  c273c4ad95ccdbfe677146505900c62e  gcc/c-family/c-common.def
  eef2a6baa49f9e2a37689fab581e698b  gcc/c-family/c-common.h
  5ce5bb7aedbac710588ce288b03d426e  gcc/c-family/c-cppbuiltin.cc
--- 3189,3200 ----
  1f5d04ed09772ef8cff71c5a2d838b85  gcc/builtins.cc
  52ff6fb92e162a8ad41a1af1dfb0171a  gcc/builtins.def
  08bacecaf5d3527bf3df15480fb78537  gcc/builtins.h
! ba96f214376e0733a4f748ae9c3f6bc5  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  9c7ff39ab2ffc5f0938f59efc3657201  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
  eab1507c247022223dcdc6d8d8902ff1  gcc/c-family/c-attribs.cc
! c897c985c1212b96852d374531b546a3  gcc/c-family/c-common.cc
  c273c4ad95ccdbfe677146505900c62e  gcc/c-family/c-common.def
  eef2a6baa49f9e2a37689fab581e698b  gcc/c-family/c-common.h
  5ce5bb7aedbac710588ce288b03d426e  gcc/c-family/c-cppbuiltin.cc
*************** c8d86c12bc259d3a335f338ce3a10304  gcc/c-
*** 3205,3211 ****
  a4b7179d2e948bb7586a9143fbe05593  gcc/c-family/c-indentation.h
  c80c4d6e16ab46358143d22a8a146725  gcc/c-family/c-lex.cc
  c880dc584a0fd4908e5df33dd81137b8  gcc/c-family/c-objc.h
! ff101b60d9a9ba25502bca2f5713b2a3  gcc/c-family/c-omp.cc
  776207393d40caae814af68da4890af6  gcc/c-family/c-opts.cc
  2f1a14531d3a436ca9f4aad2812c3898  gcc/c-family/c-pch.cc
  6e53d008a0c4738339154c353a50ff0a  gcc/c-family/c-ppoutput.cc
--- 3206,3212 ----
  a4b7179d2e948bb7586a9143fbe05593  gcc/c-family/c-indentation.h
  c80c4d6e16ab46358143d22a8a146725  gcc/c-family/c-lex.cc
  c880dc584a0fd4908e5df33dd81137b8  gcc/c-family/c-objc.h
! d21f1c18590954a9e3a2f6fe7f9b0641  gcc/c-family/c-omp.cc
  776207393d40caae814af68da4890af6  gcc/c-family/c-opts.cc
  2f1a14531d3a436ca9f4aad2812c3898  gcc/c-family/c-pch.cc
  6e53d008a0c4738339154c353a50ff0a  gcc/c-family/c-ppoutput.cc
*************** be7f7be2479df6718f5fff59312996f8  gcc/c-
*** 3231,3251 ****
  ac5daa4f7d7788a3f68dde7fe7a25316  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 1e457cc8aab35e773633bb58494743ab  gcc/c/ChangeLog
  a1ab86dd79d40d45839823afe798673a  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 403a76a4d386b66ac125dab60a84cd32  gcc/c/c-decl.cc
  10e620f790089957c832097206d0d6d6  gcc/c/c-errors.cc
  837fc5f348c64d1c90a4430cc0fb3662  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
  4be9de2ca25340adb8f350478db6a3d8  gcc/c/c-lang.h
  c2644975781d9f78ae4c387d01a3270e  gcc/c/c-objc-common.cc
  757f583d06a3ec98336adbfc92b4e6a8  gcc/c/c-objc-common.h
! 7174b4e8e6e8fd3805b92f428e7baeba  gcc/c/c-parser.cc
! 9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
! c8287c53299f2adb3118d100dbaa07e7  gcc/c/c-tree.h
  127a518f5994e97f2bd85f26598e50df  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
--- 3232,3252 ----
  ac5daa4f7d7788a3f68dde7fe7a25316  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 0a856962c00bda3179d8e50ce7b2f602  gcc/c/ChangeLog
  a1ab86dd79d40d45839823afe798673a  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 01761947c9bd059bdc1bd87a0da2c199  gcc/c/c-decl.cc
  10e620f790089957c832097206d0d6d6  gcc/c/c-errors.cc
  837fc5f348c64d1c90a4430cc0fb3662  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
  4be9de2ca25340adb8f350478db6a3d8  gcc/c/c-lang.h
  c2644975781d9f78ae4c387d01a3270e  gcc/c/c-objc-common.cc
  757f583d06a3ec98336adbfc92b4e6a8  gcc/c/c-objc-common.h
! 588e0cea349cd1808a1ebc978d205ccf  gcc/c/c-parser.cc
! 4cd2bf432e96f0de530e0ea4e8b44aa2  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
! 3b6b366820f49cf65c437c77b755d1f9  gcc/c/c-tree.h
  127a518f5994e97f2bd85f26598e50df  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
*************** adc277e694f0339369a2de3d3e50d400  gcc/cg
*** 3282,3293 ****
  f260ce27ba36b1e6d964fe6ba1552cb6  gcc/cgraphclones.cc
  4e2f7703a23f2c2483098ddb6edac479  gcc/cgraphunit.cc
  bd38ef84be4e8351bde3ee96f062c357  gcc/cif-code.def
! dbd2a8468cb81309bfd99b4638361a2f  gcc/cobol/ChangeLog
! 38de2f3ba3eff58bbacc8dcdbdcd5be7  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
  b5d944951cc226cf4f33fdd1494aa7e7  gcc/cobol/cbldiag.h
  030342886cc720f11f17d7691f6f24ae  gcc/cobol/cdf-copy.cc
! bbde38fb25355e32a445b76eabcecb6b  gcc/cobol/cdf.y
  b916ef498fa1cc9821e56ab612f00f3a  gcc/cobol/cdfval.h
  fb65c7259141f1223fa29175a2e441ed  gcc/cobol/cobol-system.h
  700d96c955db2d85a4da3d00138a4e5a  gcc/cobol/cobol1.cc
--- 3283,3294 ----
  f260ce27ba36b1e6d964fe6ba1552cb6  gcc/cgraphclones.cc
  4e2f7703a23f2c2483098ddb6edac479  gcc/cgraphunit.cc
  bd38ef84be4e8351bde3ee96f062c357  gcc/cif-code.def
! 47a8951282e263cd72ba0b14a4d07c3f  gcc/cobol/ChangeLog
! 3702fe656ebbd5b61ccb5f70dfd85ed4  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
  b5d944951cc226cf4f33fdd1494aa7e7  gcc/cobol/cbldiag.h
  030342886cc720f11f17d7691f6f24ae  gcc/cobol/cdf-copy.cc
! eb87793987ac10a2a49de7bb10412ec0  gcc/cobol/cdf.y
  b916ef498fa1cc9821e56ab612f00f3a  gcc/cobol/cdfval.h
  fb65c7259141f1223fa29175a2e441ed  gcc/cobol/cobol-system.h
  700d96c955db2d85a4da3d00138a4e5a  gcc/cobol/cobol1.cc
*************** bdd6fbf13776c7983a16ac857615424c  gcc/co
*** 3298,3308 ****
  0cc42085479c01abae9b69fd39db26a8  gcc/cobol/except.cc
  8208f264c49dfd56f856e8a4229545b9  gcc/cobol/exceptg.h
  4e726128e0c090e4f3a71efddf5ffa8c  gcc/cobol/gcobc
! dc19c5ace63d4e5c9bc9098936f305be  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  d7c8a533dca0074af1f74be3f2ef9dce  gcc/cobol/gcobolspec.cc
! 1a356fec7f705a4bb28083c10ef4b793  gcc/cobol/genapi.cc
! a931fea8067c3890a208b60ed91a7cd7  gcc/cobol/genapi.h
  a11b45ded2381dbcad1f1d4ea77d346d  gcc/cobol/gengen.cc
  eeb2d20d7d0d4521acb2468dee246887  gcc/cobol/gengen.h
  057d976c1f81a36cc540a6417c772369  gcc/cobol/genmath.cc
--- 3299,3309 ----
  0cc42085479c01abae9b69fd39db26a8  gcc/cobol/except.cc
  8208f264c49dfd56f856e8a4229545b9  gcc/cobol/exceptg.h
  4e726128e0c090e4f3a71efddf5ffa8c  gcc/cobol/gcobc
! fa246be77803ddea6f093e99f50df33e  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  d7c8a533dca0074af1f74be3f2ef9dce  gcc/cobol/gcobolspec.cc
! 5edb91f0bb7429670e460862f29f6abd  gcc/cobol/genapi.cc
! 639e89143b700cfc48ccb8fa5a27aa58  gcc/cobol/genapi.h
  a11b45ded2381dbcad1f1d4ea77d346d  gcc/cobol/gengen.cc
  eeb2d20d7d0d4521acb2468dee246887  gcc/cobol/gengen.h
  057d976c1f81a36cc540a6417c772369  gcc/cobol/genmath.cc
*************** d44e8c86d57fb704b6c1fbab3464fb9a  gcc/co
*** 3316,3336 ****
  746a2d46b3bc2a5f5663a9d64a78a674  gcc/cobol/lang.opt.urls
  7bab28df69a22be2ad0a8d95ec263e2d  gcc/cobol/lexio.cc
  5953c820cdc03feb815bfbf28c10730c  gcc/cobol/lexio.h
! d77e6dacc62ea8b43c22609ea10a5ca2  gcc/cobol/parse.y
! e5f8453937d5fb651bc2d6a5ced0320c  gcc/cobol/parse_ante.h
  e141e23293fb343e7ccbaa2fe6bcef33  gcc/cobol/parse_util.h
! b09d0cb8812a3410f337fe49c0a5d89b  gcc/cobol/scan.l
! d5f8cc9842e0f1f1648dc07251b7e682  gcc/cobol/scan_ante.h
! 20dead6c32b0fb6b826220e76ae691a8  gcc/cobol/scan_post.h
  197fd99a62b2440c1460f4ffbf664806  gcc/cobol/show_parse.h
  c53ffb5b1f39680588d8ace8a3a44953  gcc/cobol/structs.cc
  6a12fdf051ff87867b239b5ae272fd55  gcc/cobol/structs.h
! 68e78ea14b60833b113b22d59963c03e  gcc/cobol/symbols.cc
! 141e0e96743cfeaa2880c7f6f1b0370b  gcc/cobol/symbols.h
  56876c7f6bf3230239c8142eb049a183  gcc/cobol/symfind.cc
! 47e77cfa8cb1de2e31a19cba62bd6612  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! 14466cca64fda447f684ee3333fa877d  gcc/cobol/util.cc
  ed3f467605b997678af9e5189497d41b  gcc/cobol/util.h
  0f3dba102a04da8ca1e45b9b16741bde  gcc/collect-utils.cc
  6e6685d60444844fecf36350b5956f77  gcc/collect-utils.h
--- 3317,3337 ----
  746a2d46b3bc2a5f5663a9d64a78a674  gcc/cobol/lang.opt.urls
  7bab28df69a22be2ad0a8d95ec263e2d  gcc/cobol/lexio.cc
  5953c820cdc03feb815bfbf28c10730c  gcc/cobol/lexio.h
! 15e952ea997cbfeb6241d2ab608d19fa  gcc/cobol/parse.y
! e26f67eac3d6d40b064f992a5e5e754c  gcc/cobol/parse_ante.h
  e141e23293fb343e7ccbaa2fe6bcef33  gcc/cobol/parse_util.h
! eb799f1d384755ab46d81f29ec55182c  gcc/cobol/scan.l
! a12042e240a17e29296ee8240d1304ca  gcc/cobol/scan_ante.h
! 14bb03f129087e74fce03c0d52e31a5c  gcc/cobol/scan_post.h
  197fd99a62b2440c1460f4ffbf664806  gcc/cobol/show_parse.h
  c53ffb5b1f39680588d8ace8a3a44953  gcc/cobol/structs.cc
  6a12fdf051ff87867b239b5ae272fd55  gcc/cobol/structs.h
! 181fc3ca4fead7642e06e83ee4646006  gcc/cobol/symbols.cc
! b5655c320f409aceb3a10654d07f0d92  gcc/cobol/symbols.h
  56876c7f6bf3230239c8142eb049a183  gcc/cobol/symfind.cc
! 38d63d19b4869696c6123c90b1ab8b92  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! b364793337120bd28acd27f2c8bbdd27  gcc/cobol/util.cc
  ed3f467605b997678af9e5189497d41b  gcc/cobol/util.h
  0f3dba102a04da8ca1e45b9b16741bde  gcc/collect-utils.cc
  6e6685d60444844fecf36350b5956f77  gcc/collect-utils.h
*************** e6e86df919407a02a2bcc6baffb28dd6  gcc/co
*** 3366,3374 ****
  e52e97d4d4876d6657fdd48e9f622383  gcc/common/config/frv/frv-common.cc
  2da12f05a7597886b6b659f44fb2d0b0  gcc/common/config/gcn/gcn-common.cc
  cba8bad9b28e5a0f8934b00becb13d4a  gcc/common/config/h8300/h8300-common.cc
! 89f1892e73f78724ba1ba34828abe757  gcc/common/config/i386/cpuinfo.h
! 06fcbcef29a2d3e887f2603868b5867f  gcc/common/config/i386/i386-common.cc
! 5f800ff27cebabe472e14ce4a889d156  gcc/common/config/i386/i386-cpuinfo.h
  1fde110881f428f0dd213fa45b6ca1ad  gcc/common/config/i386/i386-isas.h
  2a64c5f639b347964e652ebb1add9831  gcc/common/config/ia64/ia64-common.cc
  94b8ff9b1f75e2aaff5033327ccfb449  gcc/common/config/iq2000/iq2000-common.cc
--- 3367,3375 ----
  e52e97d4d4876d6657fdd48e9f622383  gcc/common/config/frv/frv-common.cc
  2da12f05a7597886b6b659f44fb2d0b0  gcc/common/config/gcn/gcn-common.cc
  cba8bad9b28e5a0f8934b00becb13d4a  gcc/common/config/h8300/h8300-common.cc
! e577851e3fec618f8d95579ba1117872  gcc/common/config/i386/cpuinfo.h
! fd2173a51a8967a4589b39084c2fd4b7  gcc/common/config/i386/i386-common.cc
! b5b29985cb2de5a44d272d90103500b1  gcc/common/config/i386/i386-cpuinfo.h
  1fde110881f428f0dd213fa45b6ca1ad  gcc/common/config/i386/i386-isas.h
  2a64c5f639b347964e652ebb1add9831  gcc/common/config/ia64/ia64-common.cc
  94b8ff9b1f75e2aaff5033327ccfb449  gcc/common/config/iq2000/iq2000-common.cc
*************** b5a916bb9dd788754ac9e4ad7174ee74  gcc/co
*** 3403,3409 ****
  b209201703dd766f76ff5e16b99191e5  gcc/compare-elim.cc
  618780fbce0ce0cb6f9b86e079ce4e54  gcc/conditions.h
  1b4bc58c657bf910929d06d51bc8fa6c  gcc/config.build
! d0ab3a02b680c7b2b2698eb6e1b7bcbc  gcc/config.gcc
  053bb14b428d0f073932e88b9a29a8bd  gcc/config.host
  9c5069f4e36f97d3c2a9c40414f67a4e  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
--- 3404,3410 ----
  b209201703dd766f76ff5e16b99191e5  gcc/compare-elim.cc
  618780fbce0ce0cb6f9b86e079ce4e54  gcc/conditions.h
  1b4bc58c657bf910929d06d51bc8fa6c  gcc/config.build
! c3b0346a69226471d1507b48f3d1a49f  gcc/config.gcc
  053bb14b428d0f073932e88b9a29a8bd  gcc/config.host
  9c5069f4e36f97d3c2a9c40414f67a4e  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
*************** ddbb7a934f8b8aa068e7b765c4375fbe  gcc/co
*** 3412,3418 ****
  25015a0315f13c9da9f02b76796af35c  gcc/config/aarch64/aarch64-builtin-pairs.def
  7bfe6f577e74d04fbaece4d908e4f3ea  gcc/config/aarch64/aarch64-builtins.cc
  482530e7572b40bc2ad01bdec0c1b97e  gcc/config/aarch64/aarch64-builtins.h
! 88514909ca8a45a6aacefcfde3ad410e  gcc/config/aarch64/aarch64-c.cc
  133f61af7e288fe91ca31c659939c551  gcc/config/aarch64/aarch64-coff.h
  e8a24ce2d025dee64337a9cfd3dc5d59  gcc/config/aarch64/aarch64-cores.def
  85b8b0267c641b7fb638fffcb3016739  gcc/config/aarch64/aarch64-cost-tables.h
--- 3413,3419 ----
  25015a0315f13c9da9f02b76796af35c  gcc/config/aarch64/aarch64-builtin-pairs.def
  7bfe6f577e74d04fbaece4d908e4f3ea  gcc/config/aarch64/aarch64-builtins.cc
  482530e7572b40bc2ad01bdec0c1b97e  gcc/config/aarch64/aarch64-builtins.h
! 8552918e1d837cbfa00f4f972f0738c5  gcc/config/aarch64/aarch64-c.cc
  133f61af7e288fe91ca31c659939c551  gcc/config/aarch64/aarch64-coff.h
  e8a24ce2d025dee64337a9cfd3dc5d59  gcc/config/aarch64/aarch64-cores.def
  85b8b0267c641b7fb638fffcb3016739  gcc/config/aarch64/aarch64-cost-tables.h
*************** d75100bc2f054afcf41a992cdaa5f793  gcc/co
*** 3422,3428 ****
  4e4b58e49ac3a9b7571e6f4bfa3f0080  gcc/config/aarch64/aarch64-elf-metadata.cc
  36c75fd114fd69390b4e55e4a2324b19  gcc/config/aarch64/aarch64-elf-metadata.h
  a626b42ff6790e8447d6f7bf1b19e5fb  gcc/config/aarch64/aarch64-elf-raw.h
! 843882d6c2a5ee474fe70407c459300d  gcc/config/aarch64/aarch64-elf.h
  6e8efccd687b154a1a7fcc3e9672274f  gcc/config/aarch64/aarch64-errata.h
  6df4d6606c5577f4c539576fb9118290  gcc/config/aarch64/aarch64-feature-deps.h
  81054413a10f449c26d39daf0861c255  gcc/config/aarch64/aarch64-freebsd.h
--- 3423,3429 ----
  4e4b58e49ac3a9b7571e6f4bfa3f0080  gcc/config/aarch64/aarch64-elf-metadata.cc
  36c75fd114fd69390b4e55e4a2324b19  gcc/config/aarch64/aarch64-elf-metadata.h
  a626b42ff6790e8447d6f7bf1b19e5fb  gcc/config/aarch64/aarch64-elf-raw.h
! c0d880a26a41c2eddec7a4e7617612cb  gcc/config/aarch64/aarch64-elf.h
  6e8efccd687b154a1a7fcc3e9672274f  gcc/config/aarch64/aarch64-errata.h
  6df4d6606c5577f4c539576fb9118290  gcc/config/aarch64/aarch64-feature-deps.h
  81054413a10f449c26d39daf0861c255  gcc/config/aarch64/aarch64-freebsd.h
*************** b824341b8f6fdb8eb1667425adf63db8  gcc/co
*** 3444,3450 ****
  7cfa3d0cdd28cdcd73a29c2c8a925548  gcc/config/aarch64/aarch64-simd-builtin-types.def
  8f28d55d0c7fc64387352822e99a37ff  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! 89724ed882726f9413b64bb39213226c  gcc/config/aarch64/aarch64-simd.md
  fec3caf088f2add6cefcfb20f6dcae7f  gcc/config/aarch64/aarch64-sme.md
  fa6672290fdf9366d9919defcb7e41d7  gcc/config/aarch64/aarch64-speculation.cc
  9311f63fb41454e9c423862057e8eb6b  gcc/config/aarch64/aarch64-sve-builtins-base.cc
--- 3445,3451 ----
  7cfa3d0cdd28cdcd73a29c2c8a925548  gcc/config/aarch64/aarch64-simd-builtin-types.def
  8f28d55d0c7fc64387352822e99a37ff  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! 127675253d8cfa3e769692c429632d62  gcc/config/aarch64/aarch64-simd.md
  fec3caf088f2add6cefcfb20f6dcae7f  gcc/config/aarch64/aarch64-sme.md
  fa6672290fdf9366d9919defcb7e41d7  gcc/config/aarch64/aarch64-speculation.cc
  9311f63fb41454e9c423862057e8eb6b  gcc/config/aarch64/aarch64-sve-builtins-base.cc
*************** e2d80b89552da0c6b4cb6bede3b2e573  gcc/co
*** 3462,3478 ****
  e20677f3c781767c35b5c923257b576d  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  ae7ea468046099ae99d717e107a85497  gcc/config/aarch64/aarch64-sve-builtins.h
! d3d347a8a72efca8941ac9c81b324af1  gcc/config/aarch64/aarch64-sve.md
  0e48ec989797cfed5b216617692403e9  gcc/config/aarch64/aarch64-sve2.md
  28e8e7965d9ed466a7d53a53e2ec7397  gcc/config/aarch64/aarch64-sys-regs.def
  bb99d6fe2d4e8eaffacc71689325d35c  gcc/config/aarch64/aarch64-tune.md
  586e3b2fd446baa0a6fb8da7c8cdd660  gcc/config/aarch64/aarch64-tuning-flags.def
  a5cfcce7c9dd86a597161f8bde3497bc  gcc/config/aarch64/aarch64-vxworks.h
! 127cfce1ae2465ded48a7285dc869213  gcc/config/aarch64/aarch64.cc
  a067c840ab3dda8249e5a52a6d2e79e1  gcc/config/aarch64/aarch64.h
  79c93476404c0822020c37da243fdd02  gcc/config/aarch64/aarch64.md
! f4896e5648afc7366568914b0ee0b8e2  gcc/config/aarch64/aarch64.opt
! 21fd50b19307096b8be37549ae0f6f77  gcc/config/aarch64/aarch64.opt.urls
  7b468a20f0362cbe02c7699720a962fa  gcc/config/aarch64/arm_acle.h
  d8c2d46b77748c711b5354380ee49819  gcc/config/aarch64/arm_bf16.h
  f2ed4fb25bb00adfd0045bf870d46e50  gcc/config/aarch64/arm_fp16.h
--- 3463,3479 ----
  e20677f3c781767c35b5c923257b576d  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  ae7ea468046099ae99d717e107a85497  gcc/config/aarch64/aarch64-sve-builtins.h
! 17334e7a2b3e2eaa1aadb4be5e341f09  gcc/config/aarch64/aarch64-sve.md
  0e48ec989797cfed5b216617692403e9  gcc/config/aarch64/aarch64-sve2.md
  28e8e7965d9ed466a7d53a53e2ec7397  gcc/config/aarch64/aarch64-sys-regs.def
  bb99d6fe2d4e8eaffacc71689325d35c  gcc/config/aarch64/aarch64-tune.md
  586e3b2fd446baa0a6fb8da7c8cdd660  gcc/config/aarch64/aarch64-tuning-flags.def
  a5cfcce7c9dd86a597161f8bde3497bc  gcc/config/aarch64/aarch64-vxworks.h
! a6e08c90c5962f9af8496d8294c716f4  gcc/config/aarch64/aarch64.cc
  a067c840ab3dda8249e5a52a6d2e79e1  gcc/config/aarch64/aarch64.h
  79c93476404c0822020c37da243fdd02  gcc/config/aarch64/aarch64.md
! 826e25677a47d91542c89828074d668c  gcc/config/aarch64/aarch64.opt
! be545ebdbead749c3365e9729990237b  gcc/config/aarch64/aarch64.opt.urls
  7b468a20f0362cbe02c7699720a962fa  gcc/config/aarch64/arm_acle.h
  d8c2d46b77748c711b5354380ee49819  gcc/config/aarch64/arm_bf16.h
  f2ed4fb25bb00adfd0045bf870d46e50  gcc/config/aarch64/arm_fp16.h
*************** f7165d62ef852e1929a8fc9a85c01ab2  gcc/co
*** 3495,3501 ****
  dfcdbda4a3bb64a86fdf64ce6fce0ae3  gcc/config/aarch64/geniterators.sh
  bc3b4ebfac8bfd42d3e9098f33585afd  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! 7058b01eaa8d197a940387c9c12ffed4  gcc/config/aarch64/iterators.md
  811f43b19ba5f415244c59b4ab377445  gcc/config/aarch64/neoversev2.md
  dccd7ab23543b643345fc7fb161eb98d  gcc/config/aarch64/predicates.md
  a4e902ee1494ba5eee811ea46ecdf995  gcc/config/aarch64/rtems.h
--- 3496,3502 ----
  dfcdbda4a3bb64a86fdf64ce6fce0ae3  gcc/config/aarch64/geniterators.sh
  bc3b4ebfac8bfd42d3e9098f33585afd  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! b4658c3bd4e7e271f0a7733d5b9f6ced  gcc/config/aarch64/iterators.md
  811f43b19ba5f415244c59b4ab377445  gcc/config/aarch64/neoversev2.md
  dccd7ab23543b643345fc7fb161eb98d  gcc/config/aarch64/predicates.md
  a4e902ee1494ba5eee811ea46ecdf995  gcc/config/aarch64/rtems.h
*************** d6b10bd17eef3ffa35e47afa3e7b730d  gcc/co
*** 4000,4006 ****
  15a45be0f50d8cdd07ba176b7bd5b830  gcc/config/gnu-user.h
  e602557b4e8c89be8ed22b2fc769290f  gcc/config/gnu-user.opt
  6b439d9b69b8df92af49c7024df0d474  gcc/config/gnu-user.opt.urls
! d5c6d059a56ac9976955afc9d6ebeae1  gcc/config/gnu.h
  762caed3032d23c497832b0f920ad5df  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
  e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
--- 4001,4007 ----
  15a45be0f50d8cdd07ba176b7bd5b830  gcc/config/gnu-user.h
  e602557b4e8c89be8ed22b2fc769290f  gcc/config/gnu-user.opt
  6b439d9b69b8df92af49c7024df0d474  gcc/config/gnu-user.opt.urls
! 473c85be539ca77be59f3df05cf50133  gcc/config/gnu.h
  762caed3032d23c497832b0f920ad5df  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
  e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
*************** a2bf0873375fc2ab681bcd55a2b23e26  gcc/co
*** 4134,4140 ****
  a5346c37d189bcadf27fd946fe2c2566  gcc/config/i386/djgpp.opt
  1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
  0ada511dcea9cb884e7aed714cecb141  gcc/config/i386/dragonfly.h
! c25329d1855b8e4bc9e9340cee51a844  gcc/config/i386/driver-i386.cc
  8db059b2a4621231dcdc591159eace91  gcc/config/i386/driver-mingw32.cc
  436804c1d1ef71b2a318f01e7e91c190  gcc/config/i386/emmintrin.h
  def0edea16aac07cf3e0e7d2daf27455  gcc/config/i386/enqcmdintrin.h
--- 4135,4141 ----
  a5346c37d189bcadf27fd946fe2c2566  gcc/config/i386/djgpp.opt
  1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
  0ada511dcea9cb884e7aed714cecb141  gcc/config/i386/dragonfly.h
! 41825953b7f2137b89e58a5b3fbb68e0  gcc/config/i386/driver-i386.cc
  8db059b2a4621231dcdc591159eace91  gcc/config/i386/driver-mingw32.cc
  436804c1d1ef71b2a318f01e7e91c190  gcc/config/i386/emmintrin.h
  def0edea16aac07cf3e0e7d2daf27455  gcc/config/i386/enqcmdintrin.h
*************** c527fd639b424e1e0a95494e13e8cad2  gcc/co
*** 4166,4183 ****
  81059d1444982c18f0d455534dec5fa5  gcc/config/i386/i386-builtin.def
  652c102e7218f6248806f6cfbae988ed  gcc/config/i386/i386-builtins.cc
  d3fb594d11281112ff8d8f304a000c4e  gcc/config/i386/i386-builtins.h
! 86518c88ae5074b10b5fe0a5f44edba4  gcc/config/i386/i386-c.cc
  54909bb70e074c14dcf4499a5baedc54  gcc/config/i386/i386-d.cc
  172dcd61afc5800b61ebb688838d9adc  gcc/config/i386/i386-d.h
! 58d2882fc07ac73b36a5231210166a7f  gcc/config/i386/i386-expand.cc
  c9c3969c00808c9b6809fbeab3e4a1d2  gcc/config/i386/i386-expand.h
! f8d2d4e78c9475c207f7b3629c8d36bb  gcc/config/i386/i386-features.cc
  1ee34fa5f2ae92fd7d48419d8fc529f8  gcc/config/i386/i386-features.h
  3d9edfe94007cdc032797a67ebe9733e  gcc/config/i386/i386-isa.def
! 3086b3d44978d7fda7cf4fc17777806e  gcc/config/i386/i386-jit.cc
  1e61c026f5b7b51c6c07bec125bf4fbe  gcc/config/i386/i386-jit.h
  09f791543c9ad5918bde13160f0de1df  gcc/config/i386/i386-modes.def
! 2f308a555adfb081bb9bd3387e0e506c  gcc/config/i386/i386-options.cc
  636d7cce4cd0b632fee9d490d15da86b  gcc/config/i386/i386-options.h
  02c486451c524cfc143358e07b88cd70  gcc/config/i386/i386-opts.h
  3c7d0006f2f31d8607f2c9e74557fbee  gcc/config/i386/i386-passes.def
--- 4167,4184 ----
  81059d1444982c18f0d455534dec5fa5  gcc/config/i386/i386-builtin.def
  652c102e7218f6248806f6cfbae988ed  gcc/config/i386/i386-builtins.cc
  d3fb594d11281112ff8d8f304a000c4e  gcc/config/i386/i386-builtins.h
! 10a38f2a86740708977ea6a86051e67e  gcc/config/i386/i386-c.cc
  54909bb70e074c14dcf4499a5baedc54  gcc/config/i386/i386-d.cc
  172dcd61afc5800b61ebb688838d9adc  gcc/config/i386/i386-d.h
! e88db062dae9809fbbcaabc9573e2cf6  gcc/config/i386/i386-expand.cc
  c9c3969c00808c9b6809fbeab3e4a1d2  gcc/config/i386/i386-expand.h
! fde5fb5a01b2656dc490a5581799a6b2  gcc/config/i386/i386-features.cc
  1ee34fa5f2ae92fd7d48419d8fc529f8  gcc/config/i386/i386-features.h
  3d9edfe94007cdc032797a67ebe9733e  gcc/config/i386/i386-isa.def
! 03ca94d6fcaa109c0837ebc3f067eb3f  gcc/config/i386/i386-jit.cc
  1e61c026f5b7b51c6c07bec125bf4fbe  gcc/config/i386/i386-jit.h
  09f791543c9ad5918bde13160f0de1df  gcc/config/i386/i386-modes.def
! a7baecfa5a56ae9dc975477f47e51c9a  gcc/config/i386/i386-options.cc
  636d7cce4cd0b632fee9d490d15da86b  gcc/config/i386/i386-options.h
  02c486451c524cfc143358e07b88cd70  gcc/config/i386/i386-opts.h
  3c7d0006f2f31d8607f2c9e74557fbee  gcc/config/i386/i386-passes.def
*************** f8d2d4e78c9475c207f7b3629c8d36bb  gcc/co
*** 4186,4193 ****
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  ea39365f23f9f603132fcc8d70aa9d63  gcc/config/i386/i386.cc
! 5a8c118655c36894d35ad71228aa9a61  gcc/config/i386/i386.h
! a09e6b5d7bccbe486409dda3aac21d1d  gcc/config/i386/i386.md
  079c7adc6dcd21f8ccfb4c0135f16460  gcc/config/i386/i386.opt
  ae2f0e6cc1882dbf736469a6378cb3d1  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
--- 4187,4194 ----
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  ea39365f23f9f603132fcc8d70aa9d63  gcc/config/i386/i386.cc
! 532590c62b232e0546b5d8396d44c6b7  gcc/config/i386/i386.h
! 07cb47bb7a1ed7c5918026f9c7f95ced  gcc/config/i386/i386.md
  079c7adc6dcd21f8ccfb4c0135f16460  gcc/config/i386/i386.opt
  ae2f0e6cc1882dbf736469a6378cb3d1  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
*************** de4e89bc042c6bc7eb093bda5d33a266  gcc/co
*** 4250,4256 ****
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! aeeeab12e77cb97832d5f5616fd59630  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
--- 4251,4257 ----
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! b00a4b731f3642fa61d8b7ccd4ceed0a  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
*************** c69ef27c10b319a5443289af516f40b8  gcc/co
*** 4397,4403 ****
  dfcc88ca848e0510d6a048cef812a984  gcc/config/loongarch/gnu-user.h
  0214c19eeeeb90d46d358333d5381814  gcc/config/loongarch/la464.md
  2da06c6340275c1c0670ab82a7252f77  gcc/config/loongarch/larchintrin.h
! b74eced053703973adb776263950adbe  gcc/config/loongarch/lasx.md
  64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
  a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
  ac0512e8b259ed63d386edaa0457a5ad  gcc/config/loongarch/loongarch-builtins.cc
--- 4398,4404 ----
  dfcc88ca848e0510d6a048cef812a984  gcc/config/loongarch/gnu-user.h
  0214c19eeeeb90d46d358333d5381814  gcc/config/loongarch/la464.md
  2da06c6340275c1c0670ab82a7252f77  gcc/config/loongarch/larchintrin.h
! e4c7f558f2f3e9c3e521ecdb82b64b40  gcc/config/loongarch/lasx.md
  64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
  a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
  ac0512e8b259ed63d386edaa0457a5ad  gcc/config/loongarch/loongarch-builtins.cc
*************** ff10ba24a7f588f5d1bfbc386be0a309  gcc/co
*** 4417,4427 ****
  d7cf3f5e6d8c9402706533b8bbd7093d  gcc/config/loongarch/loongarch-modes.def
  d3ad067b1fa15bbce42fd3cc4499966e  gcc/config/loongarch/loongarch-opts.cc
  084ba7e2ad2ac804b5f596bca0df06b3  gcc/config/loongarch/loongarch-opts.h
! 920651b1ba57b9faa704d0ac560b4ea4  gcc/config/loongarch/loongarch-protos.h
  c72c4d71f42573934ede3a3fe4e132b1  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! 81eb1060030db0fe02b434794f30be9a  gcc/config/loongarch/loongarch.cc
  d4fcc746efc8475a01557c5c09179c9a  gcc/config/loongarch/loongarch.h
  5f744a937e0a5911106cc265d8348b0b  gcc/config/loongarch/loongarch.md
  7eb1817de89953d405ead07dfb2c5316  gcc/config/loongarch/loongarch.opt
--- 4418,4428 ----
  d7cf3f5e6d8c9402706533b8bbd7093d  gcc/config/loongarch/loongarch-modes.def
  d3ad067b1fa15bbce42fd3cc4499966e  gcc/config/loongarch/loongarch-opts.cc
  084ba7e2ad2ac804b5f596bca0df06b3  gcc/config/loongarch/loongarch-opts.h
! cc4aae9b316ff2da2b7f2cb5709c1163  gcc/config/loongarch/loongarch-protos.h
  c72c4d71f42573934ede3a3fe4e132b1  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! ec50e2fbf3c40c3826a6c3f37d02a59e  gcc/config/loongarch/loongarch.cc
  d4fcc746efc8475a01557c5c09179c9a  gcc/config/loongarch/loongarch.h
  5f744a937e0a5911106cc265d8348b0b  gcc/config/loongarch/loongarch.md
  7eb1817de89953d405ead07dfb2c5316  gcc/config/loongarch/loongarch.opt
*************** d4fcc746efc8475a01557c5c09179c9a  gcc/co
*** 4429,4435 ****
  a1ceaab52de5f1950f6c6b63c5a718ea  gcc/config/loongarch/lsx.md
  429434e5f1e9f9afc839f4409102d5ea  gcc/config/loongarch/lsxintrin.h
  5a232a75001e3db7ee3e491afdfae629  gcc/config/loongarch/musl.h
! e357122938174e9f48e1036cb67c8a21  gcc/config/loongarch/predicates.md
  3d93d4fcfba1009a5c6603db8dbef8a0  gcc/config/loongarch/simd.md
  0e1638a9f434cbb353f1b31e3dc6683b  gcc/config/loongarch/sync.md
  e2aad9f2fd1ee2a4668948f381da109c  gcc/config/loongarch/t-linux
--- 4430,4436 ----
  a1ceaab52de5f1950f6c6b63c5a718ea  gcc/config/loongarch/lsx.md
  429434e5f1e9f9afc839f4409102d5ea  gcc/config/loongarch/lsxintrin.h
  5a232a75001e3db7ee3e491afdfae629  gcc/config/loongarch/musl.h
! b060a0b1a295190643157fde3f8ecfc2  gcc/config/loongarch/predicates.md
  3d93d4fcfba1009a5c6603db8dbef8a0  gcc/config/loongarch/simd.md
  0e1638a9f434cbb353f1b31e3dc6683b  gcc/config/loongarch/sync.md
  e2aad9f2fd1ee2a4668948f381da109c  gcc/config/loongarch/t-linux
*************** f51037a9e437f8e9ce7215b2da5ad4e2  gcc/co
*** 4967,4973 ****
  43a9d94b35a051ed390b5e2c74432d85  gcc/config/riscv/riscv-vsetvl.cc
  d120ed6eb2847b636271b3a1ef82ecbf  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! d2063ec114cf822be74edfc2cffdd0d9  gcc/config/riscv/riscv.cc
  0766a701a8c90815575fae86f92cc4a6  gcc/config/riscv/riscv.h
  d83a8ed43f14b803732bc83dfebc7c6d  gcc/config/riscv/riscv.md
  fec1c87bba727131a45d4ec4a9ae5490  gcc/config/riscv/riscv.opt
--- 4968,4974 ----
  43a9d94b35a051ed390b5e2c74432d85  gcc/config/riscv/riscv-vsetvl.cc
  d120ed6eb2847b636271b3a1ef82ecbf  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! f78a490a44b63bb125a091e360ace0b0  gcc/config/riscv/riscv.cc
  0766a701a8c90815575fae86f92cc4a6  gcc/config/riscv/riscv.h
  d83a8ed43f14b803732bc83dfebc7c6d  gcc/config/riscv/riscv.md
  fec1c87bba727131a45d4ec4a9ae5490  gcc/config/riscv/riscv.opt
*************** f11925c88524d2fd457bf77944da1302  gcc/co
*** 5177,5183 ****
  38e93eff3a2b573d1d802ebad267b109  gcc/config/rs6000/vec_types.h
  a5506e6d02e00eca6773ad6611fafec6  gcc/config/rs6000/vector.md
  92d84780bc97fec043576239dfbc4de4  gcc/config/rs6000/vsx.md
! 30d0d23b1554fccc113a2a8d74d0f6b7  gcc/config/rs6000/vxworks.h
  cd6fbfee7df45bb751e81a607bf1cb7d  gcc/config/rs6000/vxworksae.h
  ec49257e720fea1d0b85265da90de158  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
--- 5178,5184 ----
  38e93eff3a2b573d1d802ebad267b109  gcc/config/rs6000/vec_types.h
  a5506e6d02e00eca6773ad6611fafec6  gcc/config/rs6000/vector.md
  92d84780bc97fec043576239dfbc4de4  gcc/config/rs6000/vsx.md
! 4ccc6d6037ee6161ebb1ae1732c88c4b  gcc/config/rs6000/vxworks.h
  cd6fbfee7df45bb751e81a607bf1cb7d  gcc/config/rs6000/vxworksae.h
  ec49257e720fea1d0b85265da90de158  gcc/config/rs6000/vxworksmils.h
  44a93bbae0ad5aba424ba7b97cc6914d  gcc/config/rs6000/x-aix
*************** dc2887d238be0e2e0ae132653120939d  gcc/co
*** 5463,5469 ****
  3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
  c273ceef7d1eecc04bc84d30fa76c359  gcc/config/vxworks-stdint.h
  7226b24af0b3368df3b088e0070d88e3  gcc/config/vxworks.cc
! dbce36a29069091990ea54315f6a4234  gcc/config/vxworks.h
  f6433daf40a59d3c4d9060ca22e30641  gcc/config/vxworks.opt
  3452aecee51149d81f83ff52b39acead  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
--- 5464,5470 ----
  3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
  c273ceef7d1eecc04bc84d30fa76c359  gcc/config/vxworks-stdint.h
  7226b24af0b3368df3b088e0070d88e3  gcc/config/vxworks.cc
! ed09b7762ff391a802621a38d6aceba2  gcc/config/vxworks.h
  f6433daf40a59d3c4d9060ca22e30641  gcc/config/vxworks.opt
  3452aecee51149d81f83ff52b39acead  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
*************** f6433daf40a59d3c4d9060ca22e30641  gcc/co
*** 5473,5479 ****
  49b7fa25b0fb42a6ae7a81eddfed84cf  gcc/config/vxworks/inttypes.h
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
! e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
  32caad465ff4d16a65330246fb72e452  gcc/config/vxworksae.h
  114e66bfd8aaf38be7eb032da92299c1  gcc/config/winnt-c.cc
  d21f09c47f24bd26a51424057a3b5e34  gcc/config/winnt-rust.cc
--- 5474,5480 ----
  49b7fa25b0fb42a6ae7a81eddfed84cf  gcc/config/vxworks/inttypes.h
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
! e92e729549647c0112a0f19b6c0e0a98  gcc/config/vxworks/vxworks-predef.h
  32caad465ff4d16a65330246fb72e452  gcc/config/vxworksae.h
  114e66bfd8aaf38be7eb032da92299c1  gcc/config/winnt-c.cc
  d21f09c47f24bd26a51424057a3b5e34  gcc/config/winnt-rust.cc
*************** d21f09c47f24bd26a51424057a3b5e34  gcc/co
*** 5484,5490 ****
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! c50bbdd48d85d3b60a3003bb01a6bfc7  gcc/config/xtensa/constraints.md
  ef292bd063751273e93912005054621c  gcc/config/xtensa/elf.h
  784e78d129e667eb51b57cd3bb4cf498  gcc/config/xtensa/elf.opt
  f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
--- 5485,5491 ----
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! b9857b3d2c379a9bb6041aab41e37207  gcc/config/xtensa/constraints.md
  ef292bd063751273e93912005054621c  gcc/config/xtensa/elf.h
  784e78d129e667eb51b57cd3bb4cf498  gcc/config/xtensa/elf.opt
  f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
*************** f140d72c4f00aa6f39295fedb6f6fc92  gcc/co
*** 5498,5506 ****
  c7be35a23fd70ac184dd9072319304c7  gcc/config/xtensa/xtensa-opts.h
  f154c7dc9175c4e8204205bb4fbd2cbc  gcc/config/xtensa/xtensa-passes.def
  23de1a423f72982c1a7ec04a2cf54364  gcc/config/xtensa/xtensa-protos.h
! 0b8bd39d737b4af1aca3192ea3a8c132  gcc/config/xtensa/xtensa.cc
  1c1ce8236bb94fc6c2784ab209bff598  gcc/config/xtensa/xtensa.h
! f59f78dcd009ea248d39f7b6b8dec64c  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
  e5d39fd574064c8870895192451abcbd  gcc/configure
--- 5499,5507 ----
  c7be35a23fd70ac184dd9072319304c7  gcc/config/xtensa/xtensa-opts.h
  f154c7dc9175c4e8204205bb4fbd2cbc  gcc/config/xtensa/xtensa-passes.def
  23de1a423f72982c1a7ec04a2cf54364  gcc/config/xtensa/xtensa-protos.h
! 49d78213dc9f09252fa92ac80408f9b0  gcc/config/xtensa/xtensa.cc
  1c1ce8236bb94fc6c2784ab209bff598  gcc/config/xtensa/xtensa.h
! 26ea7100705d3ceeb130ed717e6ff1dd  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
  e5d39fd574064c8870895192451abcbd  gcc/configure
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5514,5520 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  02796caeaa2f14f72dc3c9c23cc97dfc  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 7c60c9cb4b006525b58143688e704387  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5515,5521 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  02796caeaa2f14f72dc3c9c23cc97dfc  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 56a291bb0de03a28cc4ef94d98754b21  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** fce8de27014c109814b3f69be6a5d4f6  gcc/cp
*** 5556,5562 ****
  a096f968454d0245d006f9f559a56a08  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
  f9ea0c3919634f5f4d1d47a9251e02e7  gcc/cp/constexpr.cc
! d6cbf9f4441b7af5436e73a63106b11b  gcc/cp/constraint.cc
  b4452de3b42a36f42cdd92b905d201b6  gcc/cp/contracts.cc
  e995f4adf7a857b715c0534a24556d3b  gcc/cp/contracts.h
  de31e99c416f73448d9f45f50a7d4823  gcc/cp/coroutines.cc
--- 5557,5563 ----
  a096f968454d0245d006f9f559a56a08  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
  f9ea0c3919634f5f4d1d47a9251e02e7  gcc/cp/constexpr.cc
! b6f021cb3f469aaa95bfb66d47e14b52  gcc/cp/constraint.cc
  b4452de3b42a36f42cdd92b905d201b6  gcc/cp/contracts.cc
  e995f4adf7a857b715c0534a24556d3b  gcc/cp/contracts.h
  de31e99c416f73448d9f45f50a7d4823  gcc/cp/coroutines.cc
*************** de31e99c416f73448d9f45f50a7d4823  gcc/cp
*** 5566,5574 ****
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  b81a93d025cceb5b80d17336759de93c  gcc/cp/cp-objcp-common.cc
  acb30767d403ad5a0d7ae97437159ebe  gcc/cp/cp-objcp-common.h
! d5644190822515e85d926791e40530a0  gcc/cp/cp-trait.def
  d219c7261c4e8b7d170b10d9b450f256  gcc/cp/cp-tree.def
! d819fdb4a64a99d52c985ca6ef89d94d  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  b7ae95468b0150bbe2b3cba351e96a2c  gcc/cp/cvt.cc
  8e454e3f7746836df899a46698f5af3e  gcc/cp/cxx-pretty-print.cc
--- 5567,5575 ----
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  b81a93d025cceb5b80d17336759de93c  gcc/cp/cp-objcp-common.cc
  acb30767d403ad5a0d7ae97437159ebe  gcc/cp/cp-objcp-common.h
! 1bf2efeed9215bc88d193d37414dcc2b  gcc/cp/cp-trait.def
  d219c7261c4e8b7d170b10d9b450f256  gcc/cp/cp-tree.def
! 25882e448beb74713a57b22129836307  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  b7ae95468b0150bbe2b3cba351e96a2c  gcc/cp/cvt.cc
  8e454e3f7746836df899a46698f5af3e  gcc/cp/cxx-pretty-print.cc
*************** e216956d7e2a768856ae121513dc79bb  gcc/cp
*** 5599,5614 ****
  6fdcf6a217e83566683fbec935637de3  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 3af3b426dfe807a57c3417096c7719bb  gcc/cp/parser.cc
  db6ae85b922989f89eda229cb29e4690  gcc/cp/parser.h
  567f2a034821422fb4613e2ecb3b9441  gcc/cp/pt.cc
  b606903e35fe6806362fe4eee7a89fef  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  9c5477f737d2c390510c3fe72454f657  gcc/cp/search.cc
! dd4b86981ec35cce5f466ab179dc6e6f  gcc/cp/semantics.cc
  6a6b21cead5ae3e2fdb9253649be48f4  gcc/cp/std-name-hint.gperf
  8e02351a089af5533d09881c271f0101  gcc/cp/std-name-hint.h
! 09a81742845a713a27a2547017601371  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  3c980ddb0b9ed1ed653f38de363e7f08  gcc/cp/typeck.cc
  d5322228a4b4ea22ae20c897e9baaf69  gcc/cp/typeck2.cc
--- 5600,5615 ----
  6fdcf6a217e83566683fbec935637de3  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! d83911a43e6c3827397db319344114e1  gcc/cp/parser.cc
  db6ae85b922989f89eda229cb29e4690  gcc/cp/parser.h
  567f2a034821422fb4613e2ecb3b9441  gcc/cp/pt.cc
  b606903e35fe6806362fe4eee7a89fef  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  9c5477f737d2c390510c3fe72454f657  gcc/cp/search.cc
! 568947e7de30b898e3df944cffd0661a  gcc/cp/semantics.cc
  6a6b21cead5ae3e2fdb9253649be48f4  gcc/cp/std-name-hint.gperf
  8e02351a089af5533d09881c271f0101  gcc/cp/std-name-hint.h
! f0d5c45acade2184f63127f724233555  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  3c980ddb0b9ed1ed653f38de363e7f08  gcc/cp/typeck.cc
  d5322228a4b4ea22ae20c897e9baaf69  gcc/cp/typeck2.cc
*************** acdfc663791e4321372e79932070d05d  gcc/do
*** 5987,5993 ****
  81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
  1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
  14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! a33256e6038b3b5378f0919db00111a7  gcc/doc/extend.texi
  ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
  cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
  a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
--- 5988,5994 ----
  81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
  1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
  14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! 9c2abb73b7d3b0274483ebeeab7fafa4  gcc/doc/extend.texi
  ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
  cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
  a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 6009,6017 ****
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! e338e2aea473189d6b6657b4a0043973  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 1bfd1997dd4790b7a196351644d42f15  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  8783f1b0b6c204d4417b00f3b772beea  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6010,6018 ----
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 37d1ea8f3672c644c9e9c2cfa630dcf3  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 3170b806ae9039c65a52267664654bc0  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  8783f1b0b6c204d4417b00f3b772beea  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** a1f65f3aec3cc5d5b6505fb976d4c216  gcc/do
*** 6049,6055 ****
  c98feb0a43876ed3ef2fca3c8448e8f8  gcc/doc/lto.texi
  26f08ad01720c082109915a4ec33c80f  gcc/doc/makefile.texi
  2f8484fc473d3a7141e34a260b920ea3  gcc/doc/match-and-simplify.texi
! 8bac9d57061fc338274c86b45ef4c6f3  gcc/doc/md.texi
  8836b7001f069e8dead6a4643108258b  gcc/doc/objc.texi
  9673b2a6dd62d5ac08afb00421e98cdb  gcc/doc/optinfo.texi
  a7117c4fee8c54e338b967886f3b2dcb  gcc/doc/options.texi
--- 6050,6056 ----
  c98feb0a43876ed3ef2fca3c8448e8f8  gcc/doc/lto.texi
  26f08ad01720c082109915a4ec33c80f  gcc/doc/makefile.texi
  2f8484fc473d3a7141e34a260b920ea3  gcc/doc/match-and-simplify.texi
! 9b7e9d09013dfd9ca22bf87d89521876  gcc/doc/md.texi
  8836b7001f069e8dead6a4643108258b  gcc/doc/objc.texi
  9673b2a6dd62d5ac08afb00421e98cdb  gcc/doc/optinfo.texi
  a7117c4fee8c54e338b967886f3b2dcb  gcc/doc/options.texi
*************** d752cd9a8d46470c7f60cd7fc3ff2cf4  gcc/fl
*** 6121,6130 ****
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  ada0afb884a142f8214291990679be13  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! 29fbc9846ee90edefccd9b9723b7ef68  gcc/fold-const.cc
! f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 50816f6cb872b213b221f9b6076b9459  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6122,6131 ----
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  ada0afb884a142f8214291990679be13  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! b58e7f3d5f5ca03427f8d15607bf798c  gcc/fold-const.cc
! e9985d4b5adb916d5a002d4e2c83d5bc  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! c2aee55f196197c64c7327e0044e8d7f  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** aed3aedb6378a970055dff9e11eedc2d  gcc/fo
*** 6165,6172 ****
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! fd9f864f807e08905335698e0638fcc3  gcc/fortran/decl.cc
! c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9f708de69558a334a8fec77d40a2a376  gcc/fortran/dump-parse-tree.cc
  fcdf26536d578abd3a720a2579b4def5  gcc/fortran/error.cc
--- 6166,6173 ----
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! d8dd08b8139c109ba7ff58b94ff876d8  gcc/fortran/decl.cc
! 917fd2716f1eef2f47d4f032e14958ad  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9f708de69558a334a8fec77d40a2a376  gcc/fortran/dump-parse-tree.cc
  fcdf26536d578abd3a720a2579b4def5  gcc/fortran/error.cc
*************** b3beb0a8e06a71d205d3639a1bc35738  gcc/fo
*** 6175,6181 ****
  7ff99bd8794c2d5f2533f516ec00306b  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! b77553a9a4c0bd93ccf42cf243cf68a9  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  e4fe6ce0303cd182ebd328bdb0ae5743  gcc/fortran/interface.cc
--- 6176,6182 ----
  7ff99bd8794c2d5f2533f516ec00306b  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 9a9f5e719cb3aa62b35a762b196ad6f7  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  e4fe6ce0303cd182ebd328bdb0ae5743  gcc/fortran/interface.cc
*************** d2a28ef98f6f78d1608fb52204e013a5  gcc/fo
*** 6198,6212 ****
  763c37f838e32f5ed8ad600157a0d951  gcc/fortran/mathbuiltins.def
  6e89e2e347d7f6e1576cbda0e958b5bd  gcc/fortran/misc.cc
  27910247f948e0af2baebd9c279bec80  gcc/fortran/module.cc
! 8da1b859b4dc259b551a9531ad3eaa9f  gcc/fortran/openmp.cc
  2ac54dd304f0494202ed99c637998d1d  gcc/fortran/options.cc
  44ee980cc04645c25872621b20fc36fa  gcc/fortran/parse.cc
  c1b40e866a8bbe611aa65278fe2508d3  gcc/fortran/parse.h
! ac69b444e989fb496f8ba7f77670d2dc  gcc/fortran/primary.cc
! a648854c90a6c791b0da94ffbc42676d  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
! 71190056d6f36d3d43d4b6ed27f23032  gcc/fortran/simplify.cc
  ebfc538fb0470443c527273e8a50c2a1  gcc/fortran/st.cc
  72c617ddd58e2640f57a4c4a8f0fe1f0  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
--- 6199,6213 ----
  763c37f838e32f5ed8ad600157a0d951  gcc/fortran/mathbuiltins.def
  6e89e2e347d7f6e1576cbda0e958b5bd  gcc/fortran/misc.cc
  27910247f948e0af2baebd9c279bec80  gcc/fortran/module.cc
! 386f2c95bbaa69fc202ab39eac5f2899  gcc/fortran/openmp.cc
  2ac54dd304f0494202ed99c637998d1d  gcc/fortran/options.cc
  44ee980cc04645c25872621b20fc36fa  gcc/fortran/parse.cc
  c1b40e866a8bbe611aa65278fe2508d3  gcc/fortran/parse.h
! d9a8622a97bb1c593aaf8c8b8c93d74a  gcc/fortran/primary.cc
! 72f4ba4843d1a606ecf585bd6291f268  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
! d78cc6d6b48b8228757fb8b674f6ad9b  gcc/fortran/simplify.cc
  ebfc538fb0470443c527273e8a50c2a1  gcc/fortran/st.cc
  72c617ddd58e2640f57a4c4a8f0fe1f0  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
*************** dfe1e1950e068389ed73663e9a11ad88  gcc/fo
*** 6217,6224 ****
  b361aba1fe8f6c48107afcc903042c69  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  4676a3ce7cc7bd4ad728303adf614548  gcc/fortran/trans-decl.cc
! 85120967cf414a1cf788fdf327d86710  gcc/fortran/trans-expr.cc
! 75dbdc3d489814fc18082a069cd7c3ab  gcc/fortran/trans-intrinsic.cc
  2d29342f65aeef2af368527483b2d4f1  gcc/fortran/trans-io.cc
  27df041e4caff610df844e7a22e291e3  gcc/fortran/trans-openmp.cc
  f5f379f67b6cf561dfb27140b41ab51b  gcc/fortran/trans-stmt.cc
--- 6218,6225 ----
  b361aba1fe8f6c48107afcc903042c69  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  4676a3ce7cc7bd4ad728303adf614548  gcc/fortran/trans-decl.cc
! 792e17e875de091d4e18aed4ce5909b1  gcc/fortran/trans-expr.cc
! 2102d9af9d6edcf59127cd0c48c8d8d0  gcc/fortran/trans-intrinsic.cc
  2d29342f65aeef2af368527483b2d4f1  gcc/fortran/trans-io.cc
  27df041e4caff610df844e7a22e291e3  gcc/fortran/trans-openmp.cc
  f5f379f67b6cf561dfb27140b41ab51b  gcc/fortran/trans-stmt.cc
*************** ef8cac8c03c6284903df21f3faba7014  gcc/gi
*** 6343,6349 ****
  8c426458ee77fbac2c6b8f813f84b230  gcc/gimple-range-cache.h
  3e4f3306c9eafee14102507900b96dad  gcc/gimple-range-edge.cc
  c8dd21ff63045c1a13e516534e9f26c8  gcc/gimple-range-edge.h
! 7391f48e70908e40192a48084f42e8b1  gcc/gimple-range-fold.cc
  6077f71d4f6a79ed60d0e24f247133a3  gcc/gimple-range-fold.h
  2ab6e680fbd55d50bfc4690e2ecf8a4f  gcc/gimple-range-gori.cc
  db61cb44af184c491426f70b14b72f64  gcc/gimple-range-gori.h
--- 6344,6350 ----
  8c426458ee77fbac2c6b8f813f84b230  gcc/gimple-range-cache.h
  3e4f3306c9eafee14102507900b96dad  gcc/gimple-range-edge.cc
  c8dd21ff63045c1a13e516534e9f26c8  gcc/gimple-range-edge.h
! c2d4313b79925f171bbfc932704d0d6f  gcc/gimple-range-fold.cc
  6077f71d4f6a79ed60d0e24f247133a3  gcc/gimple-range-fold.h
  2ab6e680fbd55d50bfc4690e2ecf8a4f  gcc/gimple-range-gori.cc
  db61cb44af184c491426f70b14b72f64  gcc/gimple-range-gori.h
*************** f875de05790ff6f9d4a538f3165a775b  gcc/in
*** 6523,6530 ****
  0dc4e5a1c70a5b34153b06594dd3ae85  gcc/insn-addr.h
  eec072fb4c8277a3634cf4cdc0846598  gcc/insn-notes.def
  769443add1b7187045688cd8b1129647  gcc/int-vector-builder.h
! 8f46a0e1803f2fb29ec586e995f7c6a2  gcc/internal-fn.cc
! 1158b95ec9d7cf3397baafff01d80595  gcc/internal-fn.def
  290489b0e36c5962b1f15bf3135f8eff  gcc/internal-fn.h
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
--- 6524,6531 ----
  0dc4e5a1c70a5b34153b06594dd3ae85  gcc/insn-addr.h
  eec072fb4c8277a3634cf4cdc0846598  gcc/insn-notes.def
  769443add1b7187045688cd8b1129647  gcc/int-vector-builder.h
! 1f0be4c1b75239a694731e155eaa2640  gcc/internal-fn.cc
! 329857e5950a7917bbbf844f61beaf0f  gcc/internal-fn.def
  290489b0e36c5962b1f15bf3135f8eff  gcc/internal-fn.h
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
*************** deb111e00b2b07aa631595045bce5003  gcc/in
*** 6532,6538 ****
  1c543568db2d014ab1eb4a2ea7fc1a5f  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
  ce2190c4f151ec8c25f970da83a9a696  gcc/ipa-devirt.cc
! 6afe5f09551ceeb0e29819548cb3723a  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
  a3882f8a9c03be47eb0deee0bd27e04d  gcc/ipa-free-lang-data.cc
  151286d02b3d36dcca2a63fe6ae51102  gcc/ipa-icf-gimple.cc
--- 6533,6539 ----
  1c543568db2d014ab1eb4a2ea7fc1a5f  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
  ce2190c4f151ec8c25f970da83a9a696  gcc/ipa-devirt.cc
! de9f38bd093cebcda124f00fefc75b7c  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
  a3882f8a9c03be47eb0deee0bd27e04d  gcc/ipa-free-lang-data.cc
  151286d02b3d36dcca2a63fe6ae51102  gcc/ipa-icf-gimple.cc
*************** ed94ab1f6976f64c8d20b7b65da14438  gcc/ir
*** 6581,6587 ****
  e02a7a08ca9acaac686d9cb897ac121b  gcc/ira.h
  101bad313081e351312c8d42e0b24b31  gcc/is-a.h
  4e832d29f0e621d177da3fa9c3e11b69  gcc/iterator-utils.h
! 5a3a91dad35df9034961549f0504a022  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  222ee07ce761a3e77636dc2e76c20087  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
--- 6582,6588 ----
  e02a7a08ca9acaac686d9cb897ac121b  gcc/ira.h
  101bad313081e351312c8d42e0b24b31  gcc/is-a.h
  4e832d29f0e621d177da3fa9c3e11b69  gcc/iterator-utils.h
! cb1e568561ebcbed352596712eab1f90  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  222ee07ce761a3e77636dc2e76c20087  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
*************** d72502d68617b68873d385bcee6e9c4b  gcc/ji
*** 6634,6642 ****
  714b5bdc4b983f88037beab6a5bf067a  gcc/jit/docs/intro/tutorial04.rst
  459d2ac14df266cf6e9f4560577d93cd  gcc/jit/docs/intro/tutorial05.rst
  9c47298a80ce11b0ec5a44a6865d01a1  gcc/jit/docs/topics/asm.rst
! bdde032c01560716544c0a036ff04e20  gcc/jit/docs/topics/compatibility.rst
  c8d1141d710be6aad32397e1e3ed1a3d  gcc/jit/docs/topics/compilation.rst
! 2ecaef37ec99aa741104fd6281d1e5bf  gcc/jit/docs/topics/contexts.rst
  551bc9b9949af18d647bd3b9a759eead  gcc/jit/docs/topics/expressions.rst
  1676ee49aaba42759a8c782fdd106b78  gcc/jit/docs/topics/function-pointers.rst
  dab4dd8e541f9d4c6422eb806e0bfcec  gcc/jit/docs/topics/functions.rst
--- 6635,6643 ----
  714b5bdc4b983f88037beab6a5bf067a  gcc/jit/docs/intro/tutorial04.rst
  459d2ac14df266cf6e9f4560577d93cd  gcc/jit/docs/intro/tutorial05.rst
  9c47298a80ce11b0ec5a44a6865d01a1  gcc/jit/docs/topics/asm.rst
! 4821b6836c93e4f11c70b54a9ac78288  gcc/jit/docs/topics/compatibility.rst
  c8d1141d710be6aad32397e1e3ed1a3d  gcc/jit/docs/topics/compilation.rst
! 51bdca3c2bbb263ac15213e22aa0d5f7  gcc/jit/docs/topics/contexts.rst
  551bc9b9949af18d647bd3b9a759eead  gcc/jit/docs/topics/expressions.rst
  1676ee49aaba42759a8c782fdd106b78  gcc/jit/docs/topics/function-pointers.rst
  dab4dd8e541f9d4c6422eb806e0bfcec  gcc/jit/docs/topics/functions.rst
*************** dab4dd8e541f9d4c6422eb806e0bfcec  gcc/ji
*** 6644,6661 ****
  26abcbda9aacb6b37f8c7a4653f31213  gcc/jit/docs/topics/locations.rst
  770a03b89b33245a768643117a02362f  gcc/jit/docs/topics/objects.rst
  7055e31ff2b8438e10a1c81fa9da98e1  gcc/jit/docs/topics/performance.rst
! fc1e7581ada3a6da480f75ac6b2b475c  gcc/jit/docs/topics/types.rst
! 7b86408db4b0bf74d9f8a052dd9c61a4  gcc/jit/dummy-frontend.cc
  76b7395b4989eb6c5e3bd7902fa470e5  gcc/jit/jit-builtins.cc
  11f041f38ecb2e1facf846f0441467a3  gcc/jit/jit-builtins.h
! e1c3d6e61769638ca605182151b74fc4  gcc/jit/jit-common.h
  2cd46a46000f2977ffb0f8cdcedfe27b  gcc/jit/jit-dejagnu.h
  d1ecf9f1fa6c7b403bac530b8d4536ca  gcc/jit/jit-logging.cc
  45e3e913a08f0789f718ae5e5a0d44c6  gcc/jit/jit-logging.h
! d1b437585a3d37ba50c07a15ea042ed3  gcc/jit/jit-playback.cc
! 5b510d26b42781ed8e58aeb6c80ff23b  gcc/jit/jit-playback.h
! d9e7afb1eefd48c40cc514f07f7f85e3  gcc/jit/jit-recording.cc
! fe6fab03417e6715594f063f6f2785f1  gcc/jit/jit-recording.h
  76d67feccd94f3bac32d69f32462dc16  gcc/jit/jit-result.cc
  960e50ddf361f2740cd045c219e88054  gcc/jit/jit-result.h
  8c19c143086abda15e96970f8961d231  gcc/jit/jit-spec.cc
--- 6645,6662 ----
  26abcbda9aacb6b37f8c7a4653f31213  gcc/jit/docs/topics/locations.rst
  770a03b89b33245a768643117a02362f  gcc/jit/docs/topics/objects.rst
  7055e31ff2b8438e10a1c81fa9da98e1  gcc/jit/docs/topics/performance.rst
! ceaa8a45db8bcbe61a0e8258e21bc87a  gcc/jit/docs/topics/types.rst
! 847fe749fc4183a0b97a73a6ab8dd437  gcc/jit/dummy-frontend.cc
  76b7395b4989eb6c5e3bd7902fa470e5  gcc/jit/jit-builtins.cc
  11f041f38ecb2e1facf846f0441467a3  gcc/jit/jit-builtins.h
! 4f35eb748d070b9ccf669f5265e7061d  gcc/jit/jit-common.h
  2cd46a46000f2977ffb0f8cdcedfe27b  gcc/jit/jit-dejagnu.h
  d1ecf9f1fa6c7b403bac530b8d4536ca  gcc/jit/jit-logging.cc
  45e3e913a08f0789f718ae5e5a0d44c6  gcc/jit/jit-logging.h
! 768ff208162324c4c0bfb7e306112917  gcc/jit/jit-playback.cc
! 89132ea6a34d92ec3de3c6089d9aa659  gcc/jit/jit-playback.h
! dc4633acb962c6cf0d82533070788264  gcc/jit/jit-recording.cc
! 1179bda9a5dc3337e14f66a1d72cfda6  gcc/jit/jit-recording.h
  76d67feccd94f3bac32d69f32462dc16  gcc/jit/jit-result.cc
  960e50ddf361f2740cd045c219e88054  gcc/jit/jit-result.h
  8c19c143086abda15e96970f8961d231  gcc/jit/jit-spec.cc
*************** b366e1c6e0a173c3872bb22899ef461e  gcc/ji
*** 6668,6677 ****
  92ba0bcbd8aaf1c342640355c0689df4  gcc/jit/jit-w32.cc
  186e597d0319c2cfdf7c102d931c9148  gcc/jit/jit-w32.h
  612a0c59d427adbea9a5e0c41b566948  gcc/jit/libgccjit++.h
! 9b70c7f99a70ad651b4f54337eb00ab8  gcc/jit/libgccjit.cc
! 559c7f6bf5b4d73ef3eaae679fc9d94d  gcc/jit/libgccjit.exports
! beae8e9294640eccd3dc736a993e2922  gcc/jit/libgccjit.h
! f5c662ede32f2d970a304b2f597ef7d7  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
  aa4d0dc684f454901e907706abe9140d  gcc/json-parsing.cc
  81ace1f55dac7790c08a0af7205755ad  gcc/json-parsing.h
--- 6669,6678 ----
  92ba0bcbd8aaf1c342640355c0689df4  gcc/jit/jit-w32.cc
  186e597d0319c2cfdf7c102d931c9148  gcc/jit/jit-w32.h
  612a0c59d427adbea9a5e0c41b566948  gcc/jit/libgccjit++.h
! 5b8e1c9501174d726b290ffd05d250cb  gcc/jit/libgccjit.cc
! e4ece7cdc20696f99063180449232226  gcc/jit/libgccjit.exports
! b24b7bc9cc21f60fa43f88cb9f86108f  gcc/jit/libgccjit.h
! e751a06395df90a07ef11bd8dbc96a5f  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
  aa4d0dc684f454901e907706abe9140d  gcc/json-parsing.cc
  81ace1f55dac7790c08a0af7205755ad  gcc/json-parsing.h
*************** e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lt
*** 6755,6762 ****
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! e86dbcfab4346e67592d4a0a5788359f  gcc/m2/ChangeLog
! acc8c1308289c1d47171145a78cda1a1  gcc/m2/Make-lang.in
  e212443a3231afc28440b22d94debe50  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
--- 6756,6763 ----
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! cfa437bc691e2c84a43cfc0c1ae4ccf8  gcc/m2/ChangeLog
! 1b9fd55a4978f2f62717ca706fc999f4  gcc/m2/Make-lang.in
  e212443a3231afc28440b22d94debe50  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
*************** a020b7778724f9773472fbcdc64655c8  gcc/m2
*** 6770,6775 ****
--- 6771,6778 ----
  13da0e3bfbfc4188112578674de7c3de  gcc/m2/gm2-compiler/DynamicPath.mod
  b4e73ff163e583eb283a480fcbc759fc  gcc/m2/gm2-compiler/FifoQueue.def
  0fdde2d8181765119b6dbb6521dc2b06  gcc/m2/gm2-compiler/FifoQueue.mod
+ 6438215678d8060aadd279593ab68160  gcc/m2/gm2-compiler/FilterError.def
+ 4381cca7088506da6f83e4c241e26dd7  gcc/m2/gm2-compiler/FilterError.mod
  64ee122c86e7cb39e1153284889e897f  gcc/m2/gm2-compiler/Lists.def
  b7e8471a0cbebdd6e14d9f090a2f681b  gcc/m2/gm2-compiler/Lists.mod
  01d6bbc3d6e795097ffb673b5fa56f9c  gcc/m2/gm2-compiler/M2ALU.def
*************** bf0e20ecbf824e3b6bf0ca20254dd411  gcc/m2
*** 6806,6813 ****
  fb654df9d5b01b8f6938f603dd535968  gcc/m2/gm2-compiler/M2DriverOptions.mod
  97166c0dc9b86d66390f1042e7c0cf4b  gcc/m2/gm2-compiler/M2Emit.def
  a88bada4bde294ba2d6c281460e7ec5e  gcc/m2/gm2-compiler/M2Emit.mod
! 14926412ceb494a304374da9cb6ee2f0  gcc/m2/gm2-compiler/M2Error.def
! b4e391c1ddae004fac25cedc60eb3925  gcc/m2/gm2-compiler/M2Error.mod
  f2f6ad340399124ac1dd7765e1b675a5  gcc/m2/gm2-compiler/M2EvalSym.def
  9ef5089ff86e26a81035ec039bdc6650  gcc/m2/gm2-compiler/M2FileName.def
  742f1dc44d1ac7917fcbaf8704bdb395  gcc/m2/gm2-compiler/M2FileName.mod
--- 6809,6816 ----
  fb654df9d5b01b8f6938f603dd535968  gcc/m2/gm2-compiler/M2DriverOptions.mod
  97166c0dc9b86d66390f1042e7c0cf4b  gcc/m2/gm2-compiler/M2Emit.def
  a88bada4bde294ba2d6c281460e7ec5e  gcc/m2/gm2-compiler/M2Emit.mod
! be30c8ed1a2833670f02e363367f2368  gcc/m2/gm2-compiler/M2Error.def
! da57fe1579798d414aaa9c98aafc1097  gcc/m2/gm2-compiler/M2Error.mod
  f2f6ad340399124ac1dd7765e1b675a5  gcc/m2/gm2-compiler/M2EvalSym.def
  9ef5089ff86e26a81035ec039bdc6650  gcc/m2/gm2-compiler/M2FileName.def
  742f1dc44d1ac7917fcbaf8704bdb395  gcc/m2/gm2-compiler/M2FileName.mod
*************** b3c98d490dd50cdd4e4de316e0deca54  gcc/m2
*** 6822,6830 ****
  cccf272bab8c31a6af4113dc6a4e7b2d  gcc/m2/gm2-compiler/M2Lex.def
  0b2e870715b8c61c0f2f872a91124e0f  gcc/m2/gm2-compiler/M2Lex.mod
  a45ab5cf82c6f9afcaac634dd94f9e74  gcc/m2/gm2-compiler/M2LexBuf.def
! b112f4dc73573695c3456ad0128babea  gcc/m2/gm2-compiler/M2LexBuf.mod
  ebc348963369e8e9da5834ac81e9f37c  gcc/m2/gm2-compiler/M2MetaError.def
! bc495d6e0890b6407ebefcd85af6fb5e  gcc/m2/gm2-compiler/M2MetaError.mod
  30199ab614068ba2ade7649d91420d13  gcc/m2/gm2-compiler/M2Optimize.def
  6b138f381fa3bee219d0c362567bbcb0  gcc/m2/gm2-compiler/M2Optimize.mod
  e56f64013f646609999ce89ae8c3084d  gcc/m2/gm2-compiler/M2Options.def
--- 6825,6833 ----
  cccf272bab8c31a6af4113dc6a4e7b2d  gcc/m2/gm2-compiler/M2Lex.def
  0b2e870715b8c61c0f2f872a91124e0f  gcc/m2/gm2-compiler/M2Lex.mod
  a45ab5cf82c6f9afcaac634dd94f9e74  gcc/m2/gm2-compiler/M2LexBuf.def
! 12f7883768071fdbccde614b41cd757e  gcc/m2/gm2-compiler/M2LexBuf.mod
  ebc348963369e8e9da5834ac81e9f37c  gcc/m2/gm2-compiler/M2MetaError.def
! a3a693189c0c8b5d22b610c59c1a7002  gcc/m2/gm2-compiler/M2MetaError.mod
  30199ab614068ba2ade7649d91420d13  gcc/m2/gm2-compiler/M2Optimize.def
  6b138f381fa3bee219d0c362567bbcb0  gcc/m2/gm2-compiler/M2Optimize.mod
  e56f64013f646609999ce89ae8c3084d  gcc/m2/gm2-compiler/M2Options.def
*************** ffffd6bd10c2f3d61aee939845cdb397  gcc/m2
*** 6836,6842 ****
  5aae879fe93711ac462b3871f94cfdfb  gcc/m2/gm2-compiler/M2Printf.def
  2984233cca97a1078980faba9ae9c1c5  gcc/m2/gm2-compiler/M2Printf.mod
  1f3929030e3dde0bd645746be5c341d3  gcc/m2/gm2-compiler/M2Quads.def
! 3cb35816f18a6cf3dd21625182b751aa  gcc/m2/gm2-compiler/M2Quads.mod
  652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
  fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
  3a524bf1e1843ed3472cde4c27661681  gcc/m2/gm2-compiler/M2Range.def
--- 6839,6845 ----
  5aae879fe93711ac462b3871f94cfdfb  gcc/m2/gm2-compiler/M2Printf.def
  2984233cca97a1078980faba9ae9c1c5  gcc/m2/gm2-compiler/M2Printf.mod
  1f3929030e3dde0bd645746be5c341d3  gcc/m2/gm2-compiler/M2Quads.def
! e66d90374675a01433fe2fd0ea22e5d4  gcc/m2/gm2-compiler/M2Quads.mod
  652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
  fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
  3a524bf1e1843ed3472cde4c27661681  gcc/m2/gm2-compiler/M2Range.def
*************** e4d6174f6234cab567e116421712d7e3  gcc/m2
*** 7244,7249 ****
--- 7247,7254 ----
  6674b91b7efccfe718cf02d990cf3842  gcc/m2/gm2-libs/Args.mod
  a37e5033c9855d1bb38d116cdbe12c15  gcc/m2/gm2-libs/Assertion.def
  aaf3e76436ae06a23600b884df25b479  gcc/m2/gm2-libs/Assertion.mod
+ ca9fe0d054de453724673d48a270aae4  gcc/m2/gm2-libs/BinDict.def
+ 3940d75c4f24e92c6e3381ff191047fd  gcc/m2/gm2-libs/BinDict.mod
  817f607f50dbc5cf31dec9c32c57d162  gcc/m2/gm2-libs/Break.def
  0279b6197a1ac8020581bf9617f096c1  gcc/m2/gm2-libs/Break.mod
  9b18ce2868838c9ac24c173a65f40025  gcc/m2/gm2-libs/Builtins.def
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7726,7732 ****
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! 554965621bafff53fd5b53fa4e0799ee  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
--- 7731,7737 ----
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! 21541081bbf62b5b1999dc14834023d0  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** db351af3c135e85d5daecadfdff02e4a  gcc/om
*** 7772,7778 ****
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
  3f32d99b1fca9c14c8a4a741125be1f0  gcc/omp-general.cc
  cb2a8c86939322e491658cba12c21c2f  gcc/omp-general.h
! e205d3298fff77e06b307fa9232647e7  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
  bf774332919d8fc6ad76372ccefd0aa2  gcc/omp-oacc-kernels-decompose.cc
  51e7c46004876244d3f23ab786112c1a  gcc/omp-oacc-neuter-broadcast.cc
--- 7777,7783 ----
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
  3f32d99b1fca9c14c8a4a741125be1f0  gcc/omp-general.cc
  cb2a8c86939322e491658cba12c21c2f  gcc/omp-general.h
! cc1e50ba6dc2e08f1b9b516e3a0e5368  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
  bf774332919d8fc6ad76372ccefd0aa2  gcc/omp-oacc-kernels-decompose.cc
  51e7c46004876244d3f23ab786112c1a  gcc/omp-oacc-neuter-broadcast.cc
*************** a1718f4e4de96a072fce29c3cef4017a  gcc/op
*** 7796,7802 ****
  933d872e7e60ed7a16f387f74cf5dcd7  gcc/optabs-tree.cc
  295bbec8fcdeeac30d6f914e52d4adc4  gcc/optabs-tree.h
  a783a6e68e704c7198ac0d33a9deb4da  gcc/optabs.cc
! 70eb17ed48f1e60dd40aaeb39756cd36  gcc/optabs.def
  fe27687b66727b0800e152caad7a6829  gcc/optabs.h
  4b8341a8e70bcb44afdbe2e4be1dcc46  gcc/optc-gen.awk
  5c54b7f4a00895eb1ecfb4f8c209dcef  gcc/optc-save-gen.awk
--- 7801,7807 ----
  933d872e7e60ed7a16f387f74cf5dcd7  gcc/optabs-tree.cc
  295bbec8fcdeeac30d6f914e52d4adc4  gcc/optabs-tree.h
  a783a6e68e704c7198ac0d33a9deb4da  gcc/optabs.cc
! c7815d97d0c888c94cdf79840c0e7e1f  gcc/optabs.def
  fe27687b66727b0800e152caad7a6829  gcc/optabs.h
  4b8341a8e70bcb44afdbe2e4be1dcc46  gcc/optc-gen.awk
  5c54b7f4a00895eb1ecfb4f8c209dcef  gcc/optc-save-gen.awk
*************** d869add118f3b4328fb1691092405516  gcc/po
*** 7856,7862 ****
  449bc0bffc750333208eec740b03a2c4  gcc/pointer-query.cc
  9e3a1ed4de088e9a46c7b6839471d431  gcc/pointer-query.h
  91b6348b1e00d92045418095ae4c75b0  gcc/poly-int-types.h
! 49996ef12af53fc104c8c73884c06aa6  gcc/poly-int.h
  475f722ae164d853cf948309392e72fa  gcc/postreload-gcse.cc
  1696ccf7c912de56dfdeaaa05e52380e  gcc/postreload.cc
  844b3e8351cc891efc3de2ba8b6dc7f2  gcc/predict.cc
--- 7861,7867 ----
  449bc0bffc750333208eec740b03a2c4  gcc/pointer-query.cc
  9e3a1ed4de088e9a46c7b6839471d431  gcc/pointer-query.h
  91b6348b1e00d92045418095ae4c75b0  gcc/poly-int-types.h
! e4cbc3dec8ff394525eecb5ab8dda3e0  gcc/poly-int.h
  475f722ae164d853cf948309392e72fa  gcc/postreload-gcse.cc
  1696ccf7c912de56dfdeaaa05e52380e  gcc/postreload.cc
  844b3e8351cc891efc3de2ba8b6dc7f2  gcc/predict.cc
*************** be6c71b25f10a45cfc8d05a37affe9ed  gcc/pt
*** 7884,7890 ****
  555a319d44f0f4857aa378a1691e1d27  gcc/range-op-float.cc
  6b98a6ea5f4292196168184e5e0f4476  gcc/range-op-mixed.h
  111e7e65fb598a1d21148e1b0f23744b  gcc/range-op-ptr.cc
! ebaf12cdc36f0053941f30e4fa5a982d  gcc/range-op.cc
  24fea5bf4be00e9dba7bbeb8d52b4677  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
--- 7889,7895 ----
  555a319d44f0f4857aa378a1691e1d27  gcc/range-op-float.cc
  6b98a6ea5f4292196168184e5e0f4476  gcc/range-op-mixed.h
  111e7e65fb598a1d21148e1b0f23744b  gcc/range-op-ptr.cc
! 1c6382bcceecc38e3891db2679154c58  gcc/range-op.cc
  24fea5bf4be00e9dba7bbeb8d52b4677  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
*************** f917b1b792e38f03fb6b295105203e25  gcc/ta
*** 8550,8556 ****
  598920a18a05f11271f5dd4aa453e76a  gcc/targhooks.cc
  96ddcc694ec42272d51a10664cd73f89  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 388113a344c234c773151ff019835a9c  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8555,8561 ----
  598920a18a05f11271f5dd4aa453e76a  gcc/targhooks.cc
  96ddcc694ec42272d51a10664cd73f89  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 7634d92b2d6a2ab0f6e0f6fbd19a8720  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** e3a0f1c375f36ae3f072b97ca4be8af8  gcc/te
*** 18421,18427 ****
  e90e67eac1e22b125385ecd1ca89b7e4  gcc/testsuite/c-c++-common/goacc/kernels-counter-vars-function-scope.c
  1fb43a4a25ac7b34ab3dcbb454fc6f1e  gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
  b496522e75b29688f78c00a1583acc83  gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
! 4fc17751a19f8c4386f7d2e0302a18b6  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
  81936da55cb1640164626acbe8cd05f8  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c
  6c34e620573d947a285534d49dd6d599  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
  a21f6b470b83e5873fcb2d224710b451  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
--- 18426,18432 ----
  e90e67eac1e22b125385ecd1ca89b7e4  gcc/testsuite/c-c++-common/goacc/kernels-counter-vars-function-scope.c
  1fb43a4a25ac7b34ab3dcbb454fc6f1e  gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
  b496522e75b29688f78c00a1583acc83  gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
! 491ca6d1cdf239fbda6a2254730f447a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
  81936da55cb1640164626acbe8cd05f8  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c
  6c34e620573d947a285534d49dd6d599  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
  a21f6b470b83e5873fcb2d224710b451  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
*************** fe6ba0d7acbbc77e0b1c41bbf1c0f42b  gcc/te
*** 18598,18608 ****
  47aa5a0d0666ea2f83eec37724fd9a0e  gcc/testsuite/c-c++-common/gomp/append-args-dynamic.c
  03c0ab4f1537b1970c672419d7a6c113  gcc/testsuite/c-c++-common/gomp/append-args-interop.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
! c4d9ae6f751ee10992c2299294e7de45  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
  32f71a409194e932942c40570b74b4c1  gcc/testsuite/c-c++-common/gomp/assume-4.c
  fe9e9de178a149d4be1130f4bb6a725d  gcc/testsuite/c-c++-common/gomp/assumes-1.c
! 0afd97dba1a0807ea1f3a404c03ee37a  gcc/testsuite/c-c++-common/gomp/assumes-2.c
  1e08736ed2274dbfec7f233a154f1bff  gcc/testsuite/c-c++-common/gomp/assumes-3.c
  b51a1e730de3aa872bc687140549694a  gcc/testsuite/c-c++-common/gomp/assumes-4.c
  594f9585c33418a75a6d249f9f52a31b  gcc/testsuite/c-c++-common/gomp/atomic-1.c
--- 18603,18613 ----
  47aa5a0d0666ea2f83eec37724fd9a0e  gcc/testsuite/c-c++-common/gomp/append-args-dynamic.c
  03c0ab4f1537b1970c672419d7a6c113  gcc/testsuite/c-c++-common/gomp/append-args-interop.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
! 8b2645274383ff712f17cf9c9ea41def  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
  32f71a409194e932942c40570b74b4c1  gcc/testsuite/c-c++-common/gomp/assume-4.c
  fe9e9de178a149d4be1130f4bb6a725d  gcc/testsuite/c-c++-common/gomp/assumes-1.c
! a04d7de81be62c6f374ee7d4802190c1  gcc/testsuite/c-c++-common/gomp/assumes-2.c
  1e08736ed2274dbfec7f233a154f1bff  gcc/testsuite/c-c++-common/gomp/assumes-3.c
  b51a1e730de3aa872bc687140549694a  gcc/testsuite/c-c++-common/gomp/assumes-4.c
  594f9585c33418a75a6d249f9f52a31b  gcc/testsuite/c-c++-common/gomp/atomic-1.c
*************** dcd88cf4442d15fe1ee6cf0c65bec7ba  gcc/te
*** 18638,18644 ****
  44c94a36e22b6327b21381bcca1c494e  gcc/testsuite/c-c++-common/gomp/attrs-2.c
  b18e853bf462cafe38d3448d58a4e05c  gcc/testsuite/c-c++-common/gomp/attrs-3.c
  5f55dd34d269d2c286bae5200e580724  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-1.c
! e7654509a8694bbd30fb1699591c8a0a  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c
  be58805a59309ad5d71c49c48877eb34  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-3.c
  585d8f7a0b28941f42372f69b9fe2c54  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-4.c
  08ed3f839b805c729a22134e3facfc56  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-5.c
--- 18643,18649 ----
  44c94a36e22b6327b21381bcca1c494e  gcc/testsuite/c-c++-common/gomp/attrs-2.c
  b18e853bf462cafe38d3448d58a4e05c  gcc/testsuite/c-c++-common/gomp/attrs-3.c
  5f55dd34d269d2c286bae5200e580724  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-1.c
! 37772e65160f2740ff271c4db5b1f385  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c
  be58805a59309ad5d71c49c48877eb34  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-3.c
  585d8f7a0b28941f42372f69b9fe2c54  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-4.c
  08ed3f839b805c729a22134e3facfc56  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-5.c
*************** cd3281c05e299a8561bdd4a54afc4344  gcc/te
*** 18660,18666 ****
  da9e724ebf1cfa046b19721a8b466bb9  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-4.c
  5106705e54d915caa043f36d2a6bd90e  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-5.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
! 36d818158bc403b8ef74ae4680093f12  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
  e60d9448f0f0bde479d4c59ba577deac  gcc/testsuite/c-c++-common/gomp/begin-assumes-4.c
  d9d369b57d2dd28df8efeb2f5ecc9a5f  gcc/testsuite/c-c++-common/gomp/begin-declare-target-1.c
--- 18665,18671 ----
  da9e724ebf1cfa046b19721a8b466bb9  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-4.c
  5106705e54d915caa043f36d2a6bd90e  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-5.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
! 846c45b738fd066f81ec08e8734d2785  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
  e60d9448f0f0bde479d4c59ba577deac  gcc/testsuite/c-c++-common/gomp/begin-assumes-4.c
  d9d369b57d2dd28df8efeb2f5ecc9a5f  gcc/testsuite/c-c++-common/gomp/begin-declare-target-1.c
*************** f1e2872c9870ff3696c124d6645f86df  gcc/te
*** 18791,18800 ****
  ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
  1c4197447b9674fb1e39072ef393bbc2  gcc/testsuite/c-c++-common/gomp/imperfect-loop-nest.c
  eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
! 9b2ae27bbb773d4939edc6ab477ba48d  gcc/testsuite/c-c++-common/gomp/imperfect1.c
  0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
  f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
! 537c89654e06278ee903e85a854f5cc5  gcc/testsuite/c-c++-common/gomp/imperfect4.c
  518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
  34fe8adccacf3cb878c5dc72708a48f9  gcc/testsuite/c-c++-common/gomp/interop-1.c
  0765b8f778e0167a47937ba5c8c49a9c  gcc/testsuite/c-c++-common/gomp/interop-2.c
--- 18796,18805 ----
  ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
  1c4197447b9674fb1e39072ef393bbc2  gcc/testsuite/c-c++-common/gomp/imperfect-loop-nest.c
  eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
! b9d88d108c745b4e3081bed63ab09d03  gcc/testsuite/c-c++-common/gomp/imperfect1.c
  0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
  f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
! 8024c1aa80ee63e68c3f195fbc01ef5d  gcc/testsuite/c-c++-common/gomp/imperfect4.c
  518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
  34fe8adccacf3cb878c5dc72708a48f9  gcc/testsuite/c-c++-common/gomp/interop-1.c
  0765b8f778e0167a47937ba5c8c49a9c  gcc/testsuite/c-c++-common/gomp/interop-2.c
*************** cfaa12085558b78e5edbdb4a338479d2  gcc/te
*** 18838,18844 ****
  3b2e33f5ff6d1fab628bbc47b669bb42  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
  8fdb590ce90d1a3c558de7dc81a38d89  gcc/testsuite/c-c++-common/gomp/master-combined-2.c
  12e47fbbab05145794b374e5016428d4  gcc/testsuite/c-c++-common/gomp/metadirective-1.c
! c45748d5db81ae8afdbd43b3671480a6  gcc/testsuite/c-c++-common/gomp/metadirective-2.c
  4064a5f9f31ac05197a3719255169379  gcc/testsuite/c-c++-common/gomp/metadirective-3.c
  c4c693d3bd497dda156e8c80f281ec9f  gcc/testsuite/c-c++-common/gomp/metadirective-4.c
  41fd3da8d6c55ec28cc82c985ac26db9  gcc/testsuite/c-c++-common/gomp/metadirective-5.c
--- 18843,18849 ----
  3b2e33f5ff6d1fab628bbc47b669bb42  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
  8fdb590ce90d1a3c558de7dc81a38d89  gcc/testsuite/c-c++-common/gomp/master-combined-2.c
  12e47fbbab05145794b374e5016428d4  gcc/testsuite/c-c++-common/gomp/metadirective-1.c
! f67e0d223bbb0c16f0c3a7499da55b84  gcc/testsuite/c-c++-common/gomp/metadirective-2.c
  4064a5f9f31ac05197a3719255169379  gcc/testsuite/c-c++-common/gomp/metadirective-3.c
  c4c693d3bd497dda156e8c80f281ec9f  gcc/testsuite/c-c++-common/gomp/metadirective-4.c
  41fd3da8d6c55ec28cc82c985ac26db9  gcc/testsuite/c-c++-common/gomp/metadirective-5.c
*************** e8f7b694ebd3603789b6992bc816222d  gcc/te
*** 18896,18902 ****
  d29126c43ce63e6c41ed6130742b15e2  gcc/testsuite/c-c++-common/gomp/pr118965-1.c
  424bcc14d1a0bf87f576aafc485996e9  gcc/testsuite/c-c++-common/gomp/pr118965-2.c
  c83ce004951a9a0719e190f7457302c7  gcc/testsuite/c-c++-common/gomp/pr119000.c
! dfca692e0ac01a45a3200798a153ebf1  gcc/testsuite/c-c++-common/gomp/pr120180.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
--- 18901,18910 ----
  d29126c43ce63e6c41ed6130742b15e2  gcc/testsuite/c-c++-common/gomp/pr118965-1.c
  424bcc14d1a0bf87f576aafc485996e9  gcc/testsuite/c-c++-common/gomp/pr118965-2.c
  c83ce004951a9a0719e190f7457302c7  gcc/testsuite/c-c++-common/gomp/pr119000.c
! 1afccb27121ecba72d9c1958db9e64a3  gcc/testsuite/c-c++-common/gomp/pr120180-1.c
! 46f67781e5603b2bc3c978d0c4f81881  gcc/testsuite/c-c++-common/gomp/pr120180-2.c
! 5a0fc856eddf5869c1607a51a511b91b  gcc/testsuite/c-c++-common/gomp/pr121452-1.c
! 25357ab83549c772c7f308537e5445cf  gcc/testsuite/c-c++-common/gomp/pr121452-2.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** ce7bdbfa73ff92ed34eac3534df66e86  gcc/te
*** 20257,20264 ****
--- 20265,20278 ----
  c7cf12c0e90e1d426210bb32a56623a3  gcc/testsuite/cobol.dg/group2/Alphanumeric_and_binary_numeric.cob
  738b5e86f6b162a7f4b44d0ecfedf06b  gcc/testsuite/cobol.dg/group2/BLANK_WHEN_ZERO.cob
  b13823e6ef73b208ab307bb3612a5ce8  gcc/testsuite/cobol.dg/group2/BLANK_WHEN_ZERO.out
+ a4281300968e70731988a9ad41094250  gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob
+ 789716db4f40a28d97c707fee16ad524  gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out
  04bb991b042a76cfcf01bc1c8817a56a  gcc/testsuite/cobol.dg/group2/CALL_with_OMITTED_parameter.cob
  56a12a09adb0c17ac03345d06ae419b3  gcc/testsuite/cobol.dg/group2/CALL_with_OMITTED_parameter.out
+ 45a23cbfa83a07f3308b7735822f9264  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob
+ 0af968fb266b24c9fd8e9d594d7e28f3  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out
+ 30c8310881b4d6c04883089b48e22813  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob
+ 0af968fb266b24c9fd8e9d594d7e28f3  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out
  f4905b3cede4cad548e4f57e046904d7  gcc/testsuite/cobol.dg/group2/COMP-6_arithmetic.cob
  4c557552ba46fff61c6bba359bbd2426  gcc/testsuite/cobol.dg/group2/COMP-6_arithmetic.out
  2060aa8f44c5912adef0f47ec97a60cb  gcc/testsuite/cobol.dg/group2/COMP-6_numeric_test.cob
*************** c69954f56fcc483a81f9930ef5a010cc  gcc/te
*** 20333,20338 ****
--- 20347,20354 ----
  e1a5fc78e52a4348f53e9fcdcc6b849c  gcc/testsuite/cobol.dg/group2/DISPLAY_literals__DECIMAL-POINT_is_COMMA.out
  9231024e09658f2c0b51c5863c9ff925  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.cob
  4d861c72470e2812c684041e91621642  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.out
+ 44da1d5b6ac1d7183d8298dcf01b16a2  gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob
+ f721a3936203e66cce524ce56cb80bfc  gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out
  dd8c6393c06b4230c216b0d2985c7d04  gcc/testsuite/cobol.dg/group2/EC-SIZE-TRUNCATION_EC-SIZE-OVERFLOW.cob
  71114c6e947dbc572836dc13b66e981d  gcc/testsuite/cobol.dg/group2/EC-SIZE-TRUNCATION_EC-SIZE-OVERFLOW.out
  b2ddfc5676452eaa657c53fed65d0c04  gcc/testsuite/cobol.dg/group2/EC-SIZE-ZERO-DIVIDE__fixed_and_float.cob
*************** d36f8f9425c4a8000ad9c4a97185aca5  gcc/te
*** 20561,20566 ****
--- 20577,20583 ----
  5f5ef3353680e2b791ea5a108b7f3876  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.cob
  85a1b4e081b0827d61acd2b576f8e44d  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.out
  21310f898eb7367c6b0b6e944a94b53d  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__2_.cob
+ 21310f898eb7367c6b0b6e944a94b53d  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob
  c72d199ef391d7ef4f0dc80fb62d8518  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.cob
  9205da278ccf673e088502edc93ae569  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.out
  411c711305a2c39d1b45ddc6c640bb98  gcc/testsuite/cobol.dg/group2/LOCAL-STORAGE__3__with_recursive_PROGRAM-ID.cob
*************** b7b5c0b13c0986bd9870b8774c94506f  gcc/te
*** 20570,20578 ****
  23e5d4acb2cfe1daabc7c1196edf48e9  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.out
  4ca8d1c9c513d53c80702fd0b0d90ff9  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.cob
! 2cd6ee2c70b0bde53fbe6cac3c8b8bb1  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out
  c37d3a6c238b882f0bdd37216ad6f2e2  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.cob
! 2cd6ee2c70b0bde53fbe6cac3c8b8bb1  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out
  77cbd02141d431cc038db8d3f0b922a6  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.cob
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.out
  6d1a930a76d4ab5cc520ba673d35ff38  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.cob
--- 20587,20595 ----
  23e5d4acb2cfe1daabc7c1196edf48e9  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.out
  4ca8d1c9c513d53c80702fd0b0d90ff9  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out
  c37d3a6c238b882f0bdd37216ad6f2e2  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out
  77cbd02141d431cc038db8d3f0b922a6  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.cob
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.out
  6d1a930a76d4ab5cc520ba673d35ff38  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.cob
*************** d52ba26b5b8852b2b84b61c6178bf74c  gcc/te
*** 20618,20625 ****
  10b319abadd72ac43d077c2c8abc4b29  gcc/testsuite/cobol.dg/group2/OCCURS_clause_with_1_entry.cob
  ffadeb7f068a020678b9d84378d57a88  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.cob
  a190093222cd87b2cfc63630a06ab84f  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.out
  3a7c9ac63710b9bf9e307d6c2a2e15f2  gcc/testsuite/cobol.dg/group2/Offset_overflow.cob
! 1dcca23355272056f04fe8bf20edfce0  gcc/testsuite/cobol.dg/group2/Offset_overflow.out
  9c84934cecd7d57e9badb90f27ae5490  gcc/testsuite/cobol.dg/group2/Offset_underflow.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_underflow.out
  2391a13c48a4188ca206651e9e33fcbb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.cob
--- 20635,20644 ----
  10b319abadd72ac43d077c2c8abc4b29  gcc/testsuite/cobol.dg/group2/OCCURS_clause_with_1_entry.cob
  ffadeb7f068a020678b9d84378d57a88  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.cob
  a190093222cd87b2cfc63630a06ab84f  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.out
+ 5d0a74b0081757ca28c493de8a49a019  gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob
+ e01cd9a3d1291517c38ded7e69c286db  gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out
  3a7c9ac63710b9bf9e307d6c2a2e15f2  gcc/testsuite/cobol.dg/group2/Offset_overflow.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_overflow.out
  9c84934cecd7d57e9badb90f27ae5490  gcc/testsuite/cobol.dg/group2/Offset_underflow.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_underflow.out
  2391a13c48a4188ca206651e9e33fcbb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.cob
*************** e38fa87f68f46664a4a725247faeaab1  gcc/te
*** 20677,20688 ****
--- 20696,20711 ----
  0bba0c9388bb78c11a2533fbadc2974e  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.out
  c63f4ece442994445b3b97fe2a8108dd  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.cob
  43121e1ed7ce9778e6515a6349aeef22  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.out
+ 95d5ab8df73f40c517814ada545f8320  gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob
+ b630df630f52215a3e6b1a070180b6dd  gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out
  2abb04d0384876e94a8ebacbc571d302  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.cob
  ed75a024a3fc8efd498fecff6e287928  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.out
  7bf14a602d7a0547e0f9f2164a3df0c3  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.cob
  0a74c346e7576df97fc8cd5eda3c6f43  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.out
  3a05b449be7a9a0c7692038ca6fa06e2  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.cob
  295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.out
+ a3c9d42c871825b188e93e4cff8b8184  gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob
+ ed5c320db3471d6e1070b74811413e2f  gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out
  551208604a39f8c738cb04d9f3974c15  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__1_.cob
  5bf43d6c0e0a558aadbd49c154ddb2c2  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__2_.cob
  67b7a6e377e56135eafa5ca5bee77713  gcc/testsuite/cobol.dg/group2/SORT__table_sort.cob
*************** da9195f694cdf531af045955fcb1be4f  gcc/te
*** 20714,20719 ****
--- 20737,20749 ----
  fb4f975832cfa17a33f58aba4b9cb092  gcc/testsuite/cobol.dg/group2/Static_CALL_with_ON_EXCEPTION__with_-fno-static-call_.out
  7f3d1774a5a66e799e1f242a238d9ead  gcc/testsuite/cobol.dg/group2/Static_reference_modification.cob
  935e5657c4ee72898cfbc35dcd96645b  gcc/testsuite/cobol.dg/group2/Static_reference_modification.out
+ 00feed421d0edeeff3b4cd9f90984d6d  gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob
+ 4ab94301c55f6fc4cfbfdedd8dda4ff1  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob
+ f4bf7714751b5c243be1e2155d688d25  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out
+ 25f1095c6dc77de2d16689f74bab7923  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob
+ f4bf7714751b5c243be1e2155d688d25  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out
+ eebd95e37e76d5e7bfd4398552d1701a  gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob
+ 4557bd302c04d024835bc49cfad8d183  gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out
  f63ca4b717f71c2f2a1bf43cab87b9fe  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.cob
  65c9d9840c5da4c3d0e64102c2a20dee  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.out
  d29bb749d19881aed3f136d1f97f8e91  gcc/testsuite/cobol.dg/group2/UDF_fibonacci_recursion.cob
*************** dd53d7fb55d0e27adf37351af8df5cf2  gcc/te
*** 20756,20765 ****
--- 20786,20799 ----
  1c314570f7cbb362dd3e7e739487c960  gcc/testsuite/cobol.dg/group2/floating-point_literals.cob
  96b2c647c950f5d1637c902171619577  gcc/testsuite/cobol.dg/group2/floating-point_literals.out
  d23088a98a20d2069d7fb0cad5a416f7  gcc/testsuite/cobol.dg/group2/integer_arithmetic_on_floating-point_var.cob
+ 485a46d485361b3b618c4705dcd36210  gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob
+ 5eb817262236b0ba59a5015d171025fb  gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out
+ 285be9aed0693bd7a17971c0b0d45f14  gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob
  c834ffdd674f78d7b72f01018a77ff6a  gcc/testsuite/cobol.dg/literal1.cob
  3cc71e02a97975e9e88d7c2952f11912  gcc/testsuite/cobol.dg/output1.cob
  3615bcff9cca29fcbf752691f3481ef9  gcc/testsuite/cobol.dg/pass.cob
  0e8414de6bdad0be36fa5537e3256943  gcc/testsuite/cobol.dg/pr119229.cob
+ baa1ff9d67a227d88f5f4a3377afb275  gcc/testsuite/cobol.dg/typo-1.cob
  977b5f3add2848ab82340c2f0b4b9cbb  gcc/testsuite/config/default.exp
  8024a8d05ac43431e4b1302cfb4f3a39  gcc/testsuite/g++.dg/20090107-1.C
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
*************** b8d20ab3fff2d35109e30a6a907845f1  gcc/te
*** 22255,22260 ****
--- 22289,22295 ----
  4722600ae996f63d5b716eb7620443ab  gcc/testsuite/g++.dg/cpp/embed-24.C
  4983500878e03a3abd76e7f7b681a086  gcc/testsuite/g++.dg/cpp/embed-25.C
  1cd2ff1ccb4cd02ce8ce68e808b8bc3e  gcc/testsuite/g++.dg/cpp/embed-26.C
+ 54f4ee2696995576c4c5fce0f28eb708  gcc/testsuite/g++.dg/cpp/embed-27.C
  518db3b2c551f0072b476c131c511910  gcc/testsuite/g++.dg/cpp/embed-3.C
  39e59b8a50db7adc52db30aeffc92f5c  gcc/testsuite/g++.dg/cpp/embed-4.C
  71d36e829a98f52caa2a8f034296db7c  gcc/testsuite/g++.dg/cpp/embed-5.C
*************** c261319c4540e21ce17bbed8a6a44f40  gcc/te
*** 24446,24451 ****
--- 24481,24487 ----
  fadcff10fef6007880be1e8b89051f65  gcc/testsuite/g++.dg/cpp0x/pr118923.C
  c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/testsuite/g++.dg/cpp0x/pr119123.C
  b4c316ecfeb0a9b078a76b658ed94668  gcc/testsuite/g++.dg/cpp0x/pr119563.C
+ 9598abf127e6826158d64ee6b05b0791  gcc/testsuite/g++.dg/cpp0x/pr122302.C
  26dea799d49ce223a0c4130a3c955271  gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
  4d1da29b669bf3178b3987abce4d58b1  gcc/testsuite/g++.dg/cpp0x/pr31431.C
  d65e06a3830e2b511cc25692b94615a1  gcc/testsuite/g++.dg/cpp0x/pr31432.C
*************** aa081a16610eaae6eaa83ad85ce8aa33  gcc/te
*** 29776,29781 ****
--- 29812,29818 ----
  9c4168f06e4b4e0721a2821a1bdd02c0  gcc/testsuite/g++.dg/ext/is_enum2.C
  37398fff65ce2d16df6f0cb340b97987  gcc/testsuite/g++.dg/ext/is_final.C
  3702c5ca025df0d43d103161203f0ddf  gcc/testsuite/g++.dg/ext/is_function.C
+ 421f56d6828967eabadae2f63452e22d  gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C
  04356e7583c2b33f9d0c90103c46653f  gcc/testsuite/g++.dg/ext/is_invocable1.C
  0da83314cec6d313a123af04a33e386b  gcc/testsuite/g++.dg/ext/is_invocable2.C
  a880bbf4a2491686f32ef99587f1d5d7  gcc/testsuite/g++.dg/ext/is_invocable3.C
*************** a4b430bf429ba39a09c902c162007710  gcc/te
*** 30356,30365 ****
  7e432872df1fa2926d351f6505b74cf5  gcc/testsuite/g++.dg/gomp/attrs-7.C
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
  5789aa804503a25767f6b8f6508f55b9  gcc/testsuite/g++.dg/gomp/attrs-9.C
! e55bf3f24d851b0fc8d533f3b1e6fdac  gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
  c934a2db60dd428eef745c2a71dc985b  gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
  facc0feac01669ce68a86b330fcd9db6  gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
! 0eb3667f98012146ed9ff45d1f33581e  gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
  494e9cab1f4f6546b335227f5bcc57c4  gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
  97e643cbd5bffe9ddc22832bf00e482c  gcc/testsuite/g++.dg/gomp/bad-array-section-1.C
  7d9cf46bb11f676019dfa72130d61cb5  gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
--- 30393,30402 ----
  7e432872df1fa2926d351f6505b74cf5  gcc/testsuite/g++.dg/gomp/attrs-7.C
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
  5789aa804503a25767f6b8f6508f55b9  gcc/testsuite/g++.dg/gomp/attrs-9.C
! 198406cbb6b685eb46cdd430bb764765  gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
  c934a2db60dd428eef745c2a71dc985b  gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
  facc0feac01669ce68a86b330fcd9db6  gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
! a20f699bfc93319b13a27dcb9bef0c26  gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
  494e9cab1f4f6546b335227f5bcc57c4  gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
  97e643cbd5bffe9ddc22832bf00e482c  gcc/testsuite/g++.dg/gomp/bad-array-section-1.C
  7d9cf46bb11f676019dfa72130d61cb5  gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
*************** a8cfc657234f5f421b289d2fa6196965  gcc/te
*** 30545,30550 ****
--- 30582,30588 ----
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
  26a3372fea4c1feb18b0081e1b3f169f  gcc/testsuite/g++.dg/gomp/pr118876.C
  d03592521d487e264b0b5e3ef6f3dfb8  gcc/testsuite/g++.dg/gomp/pr119370.C
+ 44956ee7048ef4daaa13755b811fe3ca  gcc/testsuite/g++.dg/gomp/pr120180-1.C
  996def323ebaae8304a543404625c64a  gcc/testsuite/g++.dg/gomp/pr121977.C
  539bba6df5330b7a6631eca5665a0899  gcc/testsuite/g++.dg/gomp/pr24849.C
  78ea34fd7a1a2767f61a703271e7070a  gcc/testsuite/g++.dg/gomp/pr25874.C
*************** f678b424d2148346313809851fbbe611  gcc/te
*** 35694,35699 ****
--- 35732,35738 ----
  665d46641e66feec86e6007d6a6a9128  gcc/testsuite/g++.dg/pr112822.C
  6aff6ca7cddcaa75a97c54158353102d  gcc/testsuite/g++.dg/pr113217.C
  adfc90a4ec5f7e6acacbdafc592a2862  gcc/testsuite/g++.dg/pr113673.C
+ 0d8a07ea8cac23cae017f961577f3b8c  gcc/testsuite/g++.dg/pr114025.C
  6431e5522e8138d482199836afdeb823  gcc/testsuite/g++.dg/pr114501_0.C
  ad9259e6bdf3bdde202871cc62bd27bb  gcc/testsuite/g++.dg/pr115232.C
  d817d87f4590a7694dcb15ea0a0856a3  gcc/testsuite/g++.dg/pr115605.C
*************** d7d81744846ecefe8f7677db1eb870be  gcc/te
*** 43592,43598 ****
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! b1a1a720453738aacc7a693bb2965f80  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
--- 43631,43637 ----
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! 6c7612441ca801174198d7aa9b453e69  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
*************** e958a6c84b6c4bddff027d2eb58fa62f  gcc/te
*** 50514,50519 ****
--- 50553,50562 ----
  3b637fe4a5a85647b2b98c7a38f85d19  gcc/testsuite/gcc.dg/c23-static-assert-2.c
  e76c7613e08d9be9fd22a634a8e630c2  gcc/testsuite/gcc.dg/c23-static-assert-3.c
  375ec5c262f63ebb0db351c9dfa205d6  gcc/testsuite/gcc.dg/c23-static-assert-4.c
+ 293e42337dab72a627e3831c54ca3f6e  gcc/testsuite/gcc.dg/c23-static-assert-5.c
+ ead067ee79d188adabd09d746dea8811  gcc/testsuite/gcc.dg/c23-static-assert-6.c
+ c88c4b1eb0ad2103e072181c168bc875  gcc/testsuite/gcc.dg/c23-static-assert-7.c
+ 5574cbc8590cff623d41be6e165fe1f9  gcc/testsuite/gcc.dg/c23-static-assert-8.c
  e2f7b6f80f4e3f26cdae30d836c2bd71  gcc/testsuite/gcc.dg/c23-stdarg-1.c
  4adf5b256bfda9a8b69296115e125d44  gcc/testsuite/gcc.dg/c23-stdarg-10.c
  522c6f2f0e0582bfdffa2f93a5852e3a  gcc/testsuite/gcc.dg/c23-stdarg-11.c
*************** f2a473638b83447f8d1205f5d6251d92  gcc/te
*** 50604,50609 ****
--- 50647,50654 ----
  5d33469235b824c78f73c5152cc25218  gcc/testsuite/gcc.dg/c2y-generic-3.c
  8a980c49506a6eafac197032debd2d37  gcc/testsuite/gcc.dg/c2y-generic-4.c
  61e426c807f07249b33bc48fcb2c13de  gcc/testsuite/gcc.dg/c2y-generic-5.c
+ 82a47163df4d1981a696041136143bda  gcc/testsuite/gcc.dg/c2y-generic-6.c
+ 9c6e1c749b0bcd5c4744884c34b3499d  gcc/testsuite/gcc.dg/c2y-generic-7.c
  98704a88665294812bcac95656b06058  gcc/testsuite/gcc.dg/c2y-if-decls-1.c
  48d839375c465a02424ec02f3ce5039e  gcc/testsuite/gcc.dg/c2y-if-decls-10.c
  2b576c06f00d531cb0473cc879db458c  gcc/testsuite/gcc.dg/c2y-if-decls-11.c
*************** ae93aae7f7b6e46952f9aada1a846a03  gcc/te
*** 50655,50660 ****
--- 50700,50708 ----
  1d8585ebd75d9d65e8c701ca2c704a84  gcc/testsuite/gcc.dg/c2y-register-array-2.c
  6e588677d43bb7ff98d01a88480060fc  gcc/testsuite/gcc.dg/c2y-register-array-3.c
  2b7359e19e88c655c7a556e8dd93dc49  gcc/testsuite/gcc.dg/c2y-static-assert-1.c
+ 240341bb941102d611552e8ac1f27f16  gcc/testsuite/gcc.dg/c2y-static-assert-2.c
+ b61f5235794003acf6c8d45f08a31523  gcc/testsuite/gcc.dg/c2y-static-assert-3.c
+ 77265c96a036bfbd59c9e3edb4e03785  gcc/testsuite/gcc.dg/c2y-static-assert-4.c
  01e04472b1c1f83f93ccb20602c5ddee  gcc/testsuite/gcc.dg/c2y-storage-class-1.c
  a12d7d6a5d3610300ee36a0d18f2abf3  gcc/testsuite/gcc.dg/c2y-struct-empty-1.c
  7b91caa232dcb33030877f5bf290f5da  gcc/testsuite/gcc.dg/c2y-switch-1.c
*************** e402946ef4c438476731cd807abb0d0b  gcc/te
*** 52898,52907 ****
--- 52946,52957 ----
  76f7470b6189ce228d02129a9dfc4c00  gcc/testsuite/gcc.dg/fold-reassoc-3.c
  0aa598ad8e6c4c320f618d9c96e61a6d  gcc/testsuite/gcc.dg/fold-reduc-1.c
  536db83e6ff0dfa4712a9eeb27f67863  gcc/testsuite/gcc.dg/fold-rotate-1.c
+ 45f862e7a0eb58a934d20e0a3268358b  gcc/testsuite/gcc.dg/fold-round-1.c
  443a53fe759251a4e155769053066cfb  gcc/testsuite/gcc.dg/fold-stringops-1.c
  8bbad26c96bd55f1858e4bdfca0ae1c7  gcc/testsuite/gcc.dg/fold-stringops-2.c
  ab16f59df61d1fa7462735be7c89e03e  gcc/testsuite/gcc.dg/fold-stringops-3.c
  4f2210865daf0cf05e105331c6f9aa8b  gcc/testsuite/gcc.dg/fold-sub.c
+ ce78a769d9b55143ac9c7b2fd6ca342a  gcc/testsuite/gcc.dg/fold-vecperm-1.c
  c90dbb8934ec1b212a0e4ecc9b3ca3d5  gcc/testsuite/gcc.dg/fold-xor-1.c
  7d493f5554d1ace59edbb4ff7c5827d9  gcc/testsuite/gcc.dg/fold-xor-2.c
  df2f1c4756e53a97a67a96197444b1c1  gcc/testsuite/gcc.dg/fold-xor-3.c
*************** b30637ee2dfddd2f33e1f6f41de2efa3  gcc/te
*** 54402,54410 ****
  3cbca90b547c38415ee1ca57ae01192c  gcc/testsuite/gcc.dg/ipa/ipcp-agg-7.c
  0afe2a5faa6c65c05824d4ff42bb549b  gcc/testsuite/gcc.dg/ipa/ipcp-agg-8.c
  92494975f86350b030e5c00f76095aa8  gcc/testsuite/gcc.dg/ipa/ipcp-agg-9.c
- 0be7b4168859c7fdc935647d38a1243c  gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec1.c
- 167594cb924bb2bbf89a602ff11a5ba5  gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec2.c
- 1d9b8cb8ea7aa55edcbea1a90ef9e9f9  gcc/testsuite/gcc.dg/ipa/ipcp-cb1.c
  24a9ebe968c2d5aad84520657228eb49  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-1.c
  504899d6e8adecbea2a964feab263d64  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c
  10ce49b0da2d906c60c994881d2f1e6d  gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-3.c
--- 54452,54457 ----
*************** fa2fa7c87accd361a3ffc55669286d2b  gcc/te
*** 56025,56030 ****
--- 56072,56078 ----
  fc2d5987f0935ba7fb72456a74052a3a  gcc/testsuite/gcc.dg/pr110266.c
  df6d4a5a1ae23e4c54fe887c609a4b7c  gcc/testsuite/gcc.dg/pr110279-1.c
  4d010b0a841ae58fbceaa23059d37d44  gcc/testsuite/gcc.dg/pr110279-2.c
+ 1050781a889340be9d24578e2787c40d  gcc/testsuite/gcc.dg/pr110405.c
  44cc8bdb8e24be94e67c6e9b8820384b  gcc/testsuite/gcc.dg/pr110436.c
  1bfa7501393c86817caa57b323c5f302  gcc/testsuite/gcc.dg/pr110461.c
  d7d11e1fe70efcc887bf72a552f64cdb  gcc/testsuite/gcc.dg/pr110496.c
*************** b200221e1cccaf2dc905de01fccdb601  gcc/te
*** 56129,56134 ****
--- 56177,56183 ----
  5f50cdb1b2a60a511ba8bff25319527f  gcc/testsuite/gcc.dg/pr114211.c
  6c8f2e684eee8bd8983196eac859b465  gcc/testsuite/gcc.dg/pr114293.c
  7cd5609790e8cb3ba4ad54ccf122a48a  gcc/testsuite/gcc.dg/pr114310.c
+ 515c43500db3a26f76f2414cea3d0aae  gcc/testsuite/gcc.dg/pr114331.c
  4940ffe18e12cb373bdf01efe4350809  gcc/testsuite/gcc.dg/pr114361.c
  e99866ca9e56b885a0004e2f573a6158  gcc/testsuite/gcc.dg/pr114493-1.c
  a9aec6149bb0f845a5689f70e87d6879  gcc/testsuite/gcc.dg/pr114493-2.c
*************** c55a5bd235aa037a0b2b6c77b9b5c9da  gcc/te
*** 56139,56144 ****
--- 56188,56194 ----
  8d675fa965ab88a772c5a3c7d82c11e3  gcc/testsuite/gcc.dg/pr114605.c
  1a8b1f5632629c5678465877e9a08481  gcc/testsuite/gcc.dg/pr114661.c
  e9b4e6a3163919c9542ac3ea134e8c03  gcc/testsuite/gcc.dg/pr114713.c
+ 9b1141e2dd4b26b07c548dec717acdc1  gcc/testsuite/gcc.dg/pr114725.c
  7cd2e921ecf04e193b97e3f54d49fb3c  gcc/testsuite/gcc.dg/pr114727.c
  18db873e30d811e6904623797ead2825  gcc/testsuite/gcc.dg/pr114753.c
  278b6ea6998e142ef9ecea8b30a97701  gcc/testsuite/gcc.dg/pr114768.c
*************** fd22cdc8f5c1d5a0506c32e0942e724b  gcc/te
*** 56217,56222 ****
--- 56267,56273 ----
  35ebbd529a45964e8eadd10e9c3a0561  gcc/testsuite/gcc.dg/pr118081.c
  798b5b539c31a7cb9030cd143870282e  gcc/testsuite/gcc.dg/pr118207.c
  81146ef53dd64af6e946aea09bb38c81  gcc/testsuite/gcc.dg/pr118224.c
+ 848cc41b568ca24609cd5ca056833d13  gcc/testsuite/gcc.dg/pr118254.c
  a76b575ed115f3b030187e2b490b147c  gcc/testsuite/gcc.dg/pr118288.c
  4abff84379a45f296022062f3b8cb5a9  gcc/testsuite/gcc.dg/pr118325.c
  f5dcfb06fbf4ecf1c229e05c21143475  gcc/testsuite/gcc.dg/pr118376.c
*************** d870c565ecc3624fb4fbcb1510c36484  gcc/te
*** 61190,61195 ****
--- 61241,61247 ----
  bd588e9316f28797985023db337c730b  gcc/testsuite/gcc.dg/torture/va-arg-25.c
  5c82e599e9517c158609d3871bb6ab3f  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
+ d78a2ef37d672306b0b94ccae92d42cf  gcc/testsuite/gcc.dg/torture/vect-permute-ice.c
  b8ce84a799f856b87c466889006803da  gcc/testsuite/gcc.dg/torture/vector-1.c
  8f292f1e4488a6043de93ca455705faf  gcc/testsuite/gcc.dg/torture/vector-2.c
  1068f619a2d020c28178195b20b8ecd8  gcc/testsuite/gcc.dg/torture/vector-shift2.c
*************** bc51e4802e1c8004fa81811aa33d2f94  gcc/te
*** 61533,61539 ****
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
! 742f567216c0be2caa14fcbafbc39587  gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
  477c9bbae1c44b978deaeeea49bbc1c3  gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
  6456c884df1bb657483d18f1928e9b0e  gcc/testsuite/gcc.dg/tree-ssa/bool-14.c
  877dfe3646023f8ad0a722fb9f947d04  gcc/testsuite/gcc.dg/tree-ssa/bool-15.c
--- 61585,61591 ----
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
! 2d0d1468044ef4b898eecd52b032d962  gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
  477c9bbae1c44b978deaeeea49bbc1c3  gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
  6456c884df1bb657483d18f1928e9b0e  gcc/testsuite/gcc.dg/tree-ssa/bool-14.c
  877dfe3646023f8ad0a722fb9f947d04  gcc/testsuite/gcc.dg/tree-ssa/bool-15.c
*************** f0d0f5ce7e02f1935c0890532a1e742e  gcc/te
*** 62285,62290 ****
--- 62337,62343 ----
  716a24cb96a9a81fe87f8660900098d4  gcc/testsuite/gcc.dg/tree-ssa/pow_fold_1.c
  0341d659d040511e18c036b7dd477420  gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
  6804f4f388ad8b533f34eb3de20dac4d  gcc/testsuite/gcc.dg/tree-ssa/pr100794.c
+ 41bae7edef09ff93179fecf381ed4683  gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
  cc9f8c702d219c1fe6887d926a6617f8  gcc/testsuite/gcc.dg/tree-ssa/pr101856.c
  c3925f4a4c97c2d1ae9800c4011550d8  gcc/testsuite/gcc.dg/tree-ssa/pr101941-1.c
*************** c894a43d6d18577fb0be67375fb6fe32  gcc/te
*** 62366,62371 ****
--- 62419,62425 ----
  3adb7e9f8a25b141deab6a826dbf4d2a  gcc/testsuite/gcc.dg/tree-ssa/pr109934.c
  59a24d80466c265cf89ff1a407f6bc52  gcc/testsuite/gcc.dg/tree-ssa/pr109938.c
  867364fc143bc4b929132a4541e2c148  gcc/testsuite/gcc.dg/tree-ssa/pr109986.c
+ c69223b14227dd48ef984ddebea146e9  gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c
  d858508cab283f80f2c10b71c55f18cf  gcc/testsuite/gcc.dg/tree-ssa/pr110269.c
  1a43d4aa287797f77da28ba29ac7e784  gcc/testsuite/gcc.dg/tree-ssa/pr110293-1.c
  cf18292fc8e047eca4019ed9a5986464  gcc/testsuite/gcc.dg/tree-ssa/pr110334.c
*************** fd7e1b94d8c4315a2364eebdd0c788df  gcc/te
*** 64739,64775 ****
  5b80820316db69308b9fa48a7a5d642b  gcc/testsuite/gcc.dg/vect/pr103864.c
  0b8307de60b9a1e2b8798ec8a7ad4ad5  gcc/testsuite/gcc.dg/vect/pr104112-1.c
  860f8bb39577a05db59d8465da979c26  gcc/testsuite/gcc.dg/vect/pr104112-2.c
! ca10535d57191339fb3614bd8a9e26d1  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c
! 493cbbe5b68b21f8defba34c009531a7  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c
! c911fcbb7c23175ebb3d430beb210dae  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c
! bd429cf327f6b8230e510ee3c4b6a0bf  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c
! 299fdb4b2bf5de4a68a74c503c568199  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c
! af3f7c6a2a951683d04834c3d6965f7d  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c
! 5d5c7392d5da63e0c63811b8b98fc979  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c
! e147d701bd28fcd3ce369a71ee6ab5bb  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c
! 5b9f42211f7a599f9dfaa34c6b84cf8c  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c
! e2e934af5a76d86abb305d316174f3ba  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c
! e2e934af5a76d86abb305d316174f3ba  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c
! b24a16db52ca5d1bf00942b1e5cd3956  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c
! 15a2e63a5306eb99b5f542602cac5815  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c
! de246a52e8f254bb6fdaa1a524e83c3e  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c
! 321429cd2ace586339637bc8b6f25d33  gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c
! 3b1886441dc6fa7dbb1a804b4345ca55  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c
! f73b176dd8d9721a116adba9be0b63e2  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c
! 1d0dbf23a067955768102dcff35e380d  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c
! 4a8d64137fc78eb93aed0774314e16df  gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c
! 8e1968f5bccf1870aac77218f08e0b94  gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c
! bc2533f7308e5e6cded6e140e6f69345  gcc/testsuite/gcc.dg/vect/pr104116-round-div.c
! ffd1671fb1c39833f794e47aa97dbfc1  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c
! 6245174a0006b60b4db443ae31837c86  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c
! e4b1568bed8663bacb44ef5b80ee4ecb  gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c
! 030caee17868f7605eaa0f3e2d4a8553  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c
! 0798e5213a3d43fa9fd139db9436ca5a  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c
! b2a2588efb60f917cc18f8cef9ac2ad7  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c
! c4db651cc90e41c4bb85580059060b21  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c
! 45e8ac2ceaed27e8eca95c788f298bca  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c
! 8db28db93c4105f214042083290b664b  gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c
! e91609780df8d58c07b91de08c6e78ab  gcc/testsuite/gcc.dg/vect/pr104116.h
  b53f19c5cce29955511b5d817d2f0418  gcc/testsuite/gcc.dg/vect/pr104152.c
  793fae35b1a1e920435aac3954c23d69  gcc/testsuite/gcc.dg/vect/pr104445.c
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
--- 64793,64829 ----
  5b80820316db69308b9fa48a7a5d642b  gcc/testsuite/gcc.dg/vect/pr103864.c
  0b8307de60b9a1e2b8798ec8a7ad4ad5  gcc/testsuite/gcc.dg/vect/pr104112-1.c
  860f8bb39577a05db59d8465da979c26  gcc/testsuite/gcc.dg/vect/pr104112-2.c
! dd9fc11d6c3252c50cae04f4734dec21  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c
! c19bb5e21bf7b03b23e7367211b38a00  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c
! 440dc8f5df2b0920d2e1c486fa106134  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c
! 40c4076d1601cb89c597b3354dbbb329  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c
! 4831f11c09fd218dce48a9b1e77479cd  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c
! e004728bd4bf944d2ca98bd4acb6cf8a  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c
! b2e5c2bb4c9017285faae05664be16dd  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c
! 4d6898ecb00f735bf17343a458b0523d  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c
! ae680e21f2d1d5ed93b4fca200226304  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c
! fe432babd1083d431d015cb3083b0044  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c
! fe432babd1083d431d015cb3083b0044  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c
! 7a2494fc4aca9d6d7c96efcf34390949  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c
! ae7a7525306aed015d03ef363625984e  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c
! 9ffd059e8babc3dd6860e83269ded50e  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c
! bf33ed024e30dc71909f4049b5e0f545  gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c
! a1066106f2aa0ae1ccc1cdc93da5f0d3  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c
! c1e37f65a1f92194cd825e8330fa2049  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c
! 6ff274327357c894708fcb899c592dd0  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c
! 4d13178f4afcd4e3bca23851d90e8dcc  gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c
! d5b1576ee88109978751bce2af1f01de  gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c
! 29a86c3ac95db3bb437be1ee6344e3ee  gcc/testsuite/gcc.dg/vect/pr104116-round-div.c
! b8ea5a0a556b516efb9bc9c882be0ee3  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c
! 44c41c49de1cff4b0d5ec50e8194ec5c  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c
! b00aacd30590564730d9068718cc072c  gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c
! ab41f9b14a1448aba60aa5eb7a1bba3d  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c
! 0e10379951140a45579580e42c8e4aee  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c
! 11e7f0d6416af787fc63a7d73f028370  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c
! e2d939938d92597fe0b5f74f8b28ce31  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c
! e704e9b0af40ffdb3723ad66a84a65cc  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c
! f8f648788678e6023b9172ae108b1110  gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c
! d33efbcf222533f6785f05ca9292d4c3  gcc/testsuite/gcc.dg/vect/pr104116.h
  b53f19c5cce29955511b5d817d2f0418  gcc/testsuite/gcc.dg/vect/pr104152.c
  793fae35b1a1e920435aac3954c23d69  gcc/testsuite/gcc.dg/vect/pr104445.c
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
*************** a0e208729117f798ee5200a51a9c258b  gcc/te
*** 66225,66230 ****
--- 66279,66288 ----
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
  34f7ddeeced3df59f00aad249918cde2  gcc/testsuite/gcc.dg/vect/vect-pr122301.c
  38b50de096973e5884e0480a8ff70084  gcc/testsuite/gcc.dg/vect/vect-pr122308.c
+ 9b7d08bd46b08a5ff0de86e9089db096  gcc/testsuite/gcc.dg/vect/vect-pr122370.c
+ 33db8d4fdefa7e079cbc466d7bb47c90  gcc/testsuite/gcc.dg/vect/vect-pr122371.c
+ b8e2c3a6d75f12e0a954c022b6f17018  gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c
+ 5981abb0e1e9f12ff678653ca24ba8e8  gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c
  464c872c62ad2fc5d241ed918e0cf5de  gcc/testsuite/gcc.dg/vect/vect-pr61247.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
*************** afaa45daeb6740febad38b149bba00f4  gcc/te
*** 66254,66262 ****
--- 66312,66331 ----
  6dfb966ec0651e1f0bfd61ae96ee63b4  gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
  c0dc4d999a9dd3a90639e4eb6b307722  gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
  deb8ecbd7cdb913c066f7d366640b30b  gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
+ 7dcb07a99aa409d47c88828c13a5e626  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c
+ 305dc49d9d54c9d26f184002cdf6913a  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c
+ 31507c476806bed6c83fb87ff29626ab  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c
+ 944aae833aae5153224e35b08e0ea236  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c
+ 93baa7e7c71b404edacf7884d7e5e068  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c
+ b7c24a23aee0d3ac28fa9d2ec4e6a853  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c
+ 0dc7b76abd5a4caf72792d5bea915c03  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c
+ 898c7c93d2596d095c8765dbaa9e94ab  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c
+ afe6347a8709d8ee3ab05fb400dfb21d  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c
  3df909b2097967a2dd822ed4c37cb91f  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-1.c
  ef3d183d97032daec0ec4dd0412e62d6  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-2.c
  2009b4262f91795d01c4086c784d480c  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-3.c
+ 2e35d1b22df9525893973bbb16ad765b  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c
+ eadb7c6a8a2212db42de9f8db55af6c2  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c
  a0fd49ab473516c9610de45e68c1d2a2  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-1.c
  0f4af0d0347b33a4fe5e55c707df1a5d  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-2.c
  190c8787f98acde286950b67d8a0e781  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-3.c
*************** ae513bfb2896c38de994944b104fb7c8  gcc/te
*** 67042,67047 ****
--- 67111,67118 ----
  cb3e8020430a2ad0a4a6603145f25950  gcc/testsuite/gcc.target/aarch64/acle/acle_fma.c
  a398a8cde23b80acd1694d02782f847d  gcc/testsuite/gcc.target/aarch64/acle/acle_sqrt.c
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
+ 0bf250a6d37e5d42c73dac559da5ddce  gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c
+ 25e08e40b9eef0597ddff96b9c752f1c  gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c
  d75448581ffe687b59d90766e852e7df  gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c
  80f5f996bc3addf12ec6ed7a7a97d085  gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
*************** a204aadb3f5fc384dd117c7c09175029  gcc/te
*** 67111,67116 ****
--- 67182,67189 ----
  90a044b6489e0d51268ae3d5ce15dead  gcc/testsuite/gcc.target/aarch64/acle/rwsr-3.c
  07dc62ae2bcf9c8e358ed99fe06cd5d6  gcc/testsuite/gcc.target/aarch64/acle/rwsr-4.c
  8106917e4e230850cff2d4b822ab17d8  gcc/testsuite/gcc.target/aarch64/acle/rwsr-armv8p9.c
+ 4b740eebf57233eb3b1870edc182e194  gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c
+ b0d5a47ed3f3a88ea0ea5945efdeb663  gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c
  b478e4234b2713f0df0d417dd9d13425  gcc/testsuite/gcc.target/aarch64/acle/rwsr-ungated.c
  060ba83ef96f0e9ba1957beb7670ae4f  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
*************** aa553ecd38d6f1390bde2fd58eeb4ba6  gcc/te
*** 67786,67794 ****
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 75bf69853931f2294dca7448c331e569  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
  8617f8a139394f10f8c1a9448a322dc0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! ba17361507bd54cc99fb2816d4863eaa  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
--- 67859,67867 ----
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 59ce76852a41a8dba6f8bbb0b402d4cc  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
  8617f8a139394f10f8c1a9448a322dc0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! c740d070c3520d4e9f09e4e4e4850dca  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
*************** c3c69a71f2670cdbe2550868228987d2  gcc/te
*** 68150,68155 ****
--- 68223,68231 ----
  7b71af44f426c02a57a50cd617031d72  gcc/testsuite/gcc.target/aarch64/fmul_intrinsic_1.c
  465c5e93e0d87400182fa5e10e3467e7  gcc/testsuite/gcc.target/aarch64/fmul_lane_1.c
  182fe810e18e017fc4848760aa7c4615  gcc/testsuite/gcc.target/aarch64/fmul_scvtf_1.c
+ 2e7714cf639e1d62162263ff11337e77  gcc/testsuite/gcc.target/aarch64/fmv_priority.in
+ fd67f7113885f34480eb1b6e6ea6bf51  gcc/testsuite/gcc.target/aarch64/fmv_priority1.c
+ aa2f91f4262e5a5339f11ebd5fa40232  gcc/testsuite/gcc.target/aarch64/fmv_priority2.c
  b075be33bb3dd3fe6cfc7fed03f4e7bd  gcc/testsuite/gcc.target/aarch64/fneg-abs_1.c
  f96e03a40f939bd623a2e40d36788b87  gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c
  0d030dfc7300a0c8f233b0c19df84323  gcc/testsuite/gcc.target/aarch64/fneg-abs_3.c
*************** a67b71d65cb6bd7b6c05a378464741e6  gcc/te
*** 68641,68646 ****
--- 68717,68723 ----
  4c7c0d46a40719aecb2fdb238a2c596c  gcc/testsuite/gcc.target/aarch64/pr122069_2.c
  fd8128a2ace2daef0e57c5d400699061  gcc/testsuite/gcc.target/aarch64/pr122069_3.c
  660be217a5e8446a50ffef18eb8fa6e0  gcc/testsuite/gcc.target/aarch64/pr122069_4.c
+ 00a887e152d5697873b564b81bde2621  gcc/testsuite/gcc.target/aarch64/pr122190.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** cbb22a935d1768837f5969eca674b5f8  gcc/te
*** 73948,73953 ****
--- 74025,74048 ----
  557194fd72124fc531d89b4b9a327081  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1.c
  1fdea20be121da7789c290195705e989  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_single_1_run.c
  0c14cc7eaae54f0f371665d59952475d  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
+ 190b7b40bc5fbd9ecc93b2a8f790fe17  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c
+ 2bbddba6a899298423033b3062a9a381  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c
+ b6981766fe944a9c6c9c51f6a5b66324  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c
+ 67a1d5f12f98b017b1fa2b2a08edcc74  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c
+ c6b0fbb892864462cdca848d2e991908  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c
+ 482ffb7d4fd12112f987b443188eefb4  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c
+ a75e80a6f56f3083cb6d7d2db92cb36c  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c
+ ebb36b287466899ae93cef8461c6dc39  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c
+ edca110eb8b8a42667ca01f1e0d4aaf8  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c
+ bf992986a2da0a21868958cee0d10443  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c
+ 547dd9c0ba17b467338150696968e057  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c
+ 974136ef96e8b61574685039177914b1  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c
+ 6d532b8553d36f2e590e6728927bb649  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c
+ 55ec67030deaea7c01ba0643728aefa3  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c
+ 85f047e48ad9f90d1f0347cb6e532861  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c
+ 7259ef4cdd51092907ceefd84572f162  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c
+ 12978375cb332a3483ab669ce4cc9062  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c
+ a425f478505b12c7af785eb9c7bdc914  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c
  f0756c53ff3a98bc41d556c52afe94e6  gcc/testsuite/gcc.target/aarch64/sve/vusdot-autovec.c
  8f996475a52aff431b850bf794a5aeb4  gcc/testsuite/gcc.target/aarch64/sve/while_1.c
  bf66f155c3e51c7d9f592a9699731758  gcc/testsuite/gcc.target/aarch64/sve/while_10.c
*************** f5f6f291e9c1c848a46c8ef91ca99f58  gcc/te
*** 75396,75402 ****
  429b387819fe31e459436020f966ae50  gcc/testsuite/gcc.target/aarch64/sve2/pr109636_1.c
  b1f13471701b0335894317ae214cc68c  gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
  3fcc51d99dc7ff15a8bb60da25dc470e  gcc/testsuite/gcc.target/aarch64/sve2/pr120999.c
! 1620fd00b76f773c65274065175f0eb2  gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
  0f6c07a30f53dc4aadca1b9cf6c3a8db  gcc/testsuite/gcc.target/aarch64/sve2/pr121604_pmov.c
  71aa3386ca6d074587616bfcb73848d4  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_1.c
  cf400ce94034485f8a16a1cbd287c372  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_2.c
--- 75491,75497 ----
  429b387819fe31e459436020f966ae50  gcc/testsuite/gcc.target/aarch64/sve2/pr109636_1.c
  b1f13471701b0335894317ae214cc68c  gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
  3fcc51d99dc7ff15a8bb60da25dc470e  gcc/testsuite/gcc.target/aarch64/sve2/pr120999.c
! b2d92d06e51698908b628bbf67a8336b  gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
  0f6c07a30f53dc4aadca1b9cf6c3a8db  gcc/testsuite/gcc.target/aarch64/sve2/pr121604_pmov.c
  71aa3386ca6d074587616bfcb73848d4  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_1.c
  cf400ce94034485f8a16a1cbd287c372  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_2.c
*************** c1dc1c8c4bf53ce9009691cb397b17fb  gcc/te
*** 75643,75648 ****
--- 75738,75752 ----
  41ca9099e8b15c49acbe7f753f163047  gcc/testsuite/gcc.target/aarch64/vect-mull.x
  ea006d3da1a52b8f8493d0338ef90b7e  gcc/testsuite/gcc.target/aarch64/vect-pr121754.c
  a5ea701024dc372e404e47fd661308b9  gcc/testsuite/gcc.target/aarch64/vect-prefetch-drop.c
+ 2af99d8dd9ff5822c74d7118a0df5d49  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c
+ 005d82753eef918d295135630e703616  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c
+ 7415d2de2d12bf6469a9cd4c65c0f933  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c
+ 557c2203b7d05dab445f8ab4ae938d65  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c
+ 2e90e6fc0e79b7b9c59cec0c3d2db757  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c
+ 0af0654e0bfbcf9050f318caa335686d  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c
+ 7a6b67c1e320b9b0bb38a2f93b5af8c0  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c
+ d7998cc373ed0d124e6bb2496619f98f  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c
+ ee50d59cde6553fbc8a60b764d8304bf  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c
  ded4af2ae02936eb4be45e9e08f45373  gcc/testsuite/gcc.target/aarch64/vect-reduc-or_1.c
  cbb6981a9f5fba990ee2d0f5e5e38a50  gcc/testsuite/gcc.target/aarch64/vect-shr-reg-run.c
  f0d2e1dd6eaa2c17de51dc5c456d92a1  gcc/testsuite/gcc.target/aarch64/vect-shr-reg.c
*************** ab72cfcef8400549b3b4d4d318e4955e  gcc/te
*** 76703,76709 ****
  4211e73819bb661ddd18271cf8dab0e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr_p.c
  cfb4125c4550d5cf153bac3dcd2886ad  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c
  c6565beafc869833d2a6dd9484818c2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr118332.c
! cbdb577f8bddcbbf5e9737e8a16becef  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c
  b64a60d68e969b641b8652c2bd4eef0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
--- 76807,76813 ----
  4211e73819bb661ddd18271cf8dab0e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr_p.c
  cfb4125c4550d5cf153bac3dcd2886ad  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c
  c6565beafc869833d2a6dd9484818c2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr118332.c
! b52bd79f0b568c75adaa75c022b0e2a0  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c
  b64a60d68e969b641b8652c2bd4eef0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
*************** f800954ed63838e287ff6e1a23290ce0  gcc/te
*** 76775,76782 ****
  ec6423961de9ca5f2cb66d89043d66e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c
  87dfc338f1af58cdf73c1f2e3a644405  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c
  50e0a047cebdb35ac47d77a3b8ce7dd7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq-check-carry.c
! c3a210f46ef57f5388b5b58f4cd62c4a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
! 68c6e1b733e2bc098e19925cadea6d66  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
  90c91eea3a5177e36dd45a9543b728a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c
  15e2481ce5d9bea739ce6b372c3d433e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c
  30849dd964b0e504a851831adfe15591  gcc/testsuite/gcc.target/arm/mve/intrinsics/vaddlvaq_p_s32.c
--- 76879,76886 ----
  ec6423961de9ca5f2cb66d89043d66e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c
  87dfc338f1af58cdf73c1f2e3a644405  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c
  50e0a047cebdb35ac47d77a3b8ce7dd7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq-check-carry.c
! e43c5c55acb5b3a4298f4a7ec83f8eac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
! 546e8e74f477c43934e3b9daf9721338  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
  90c91eea3a5177e36dd45a9543b728a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c
  15e2481ce5d9bea739ce6b372c3d433e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c
  30849dd964b0e504a851831adfe15591  gcc/testsuite/gcc.target/arm/mve/intrinsics/vaddlvaq_p_s32.c
*************** ad0f72f16f1436835769ad26f4554b5b  gcc/te
*** 78756,78763 ****
  fe4b54b2c4e751934615b7c2ebfd87cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c
  f2b889d1844a15b18389534c4050fd3b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c
  ed711f516d90a10c0e04b55f40a058fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c
! eaa0a99fede12292d203687a7a340d00  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
! a9fb7502ff34d8a2053a835fd3f2b45e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
  a42ff09d93993a96614fefa3d6e96505  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c
  a719098a51cc49f83ff59264834d4b4c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c
  af70db4174c1713b590a6d5ba294aa2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f16.c
--- 78860,78867 ----
  fe4b54b2c4e751934615b7c2ebfd87cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c
  f2b889d1844a15b18389534c4050fd3b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c
  ed711f516d90a10c0e04b55f40a058fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c
! eecc04e0264dc2ab8b3824ea39698090  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
! 1bd6cfd4525432a0c7ad3aeac010f72c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
  a42ff09d93993a96614fefa3d6e96505  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c
  a719098a51cc49f83ff59264834d4b4c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c
  af70db4174c1713b590a6d5ba294aa2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f16.c
*************** a9b1dee6ec200856939709d32118cf4d  gcc/te
*** 85379,85385 ****
--- 85483,85499 ----
  98071546dc47914bb36a912c7912aca2  gcc/testsuite/gcc.target/i386/builtin-bswap-3.c
  3605b461ca62ccb4a3f70ccc13695ed5  gcc/testsuite/gcc.target/i386/builtin-bswap-4.c
  aa862ceda0d7a76c1857d703604c7cf7  gcc/testsuite/gcc.target/i386/builtin-bswap-5.c
+ 654b3662e0d1c66895af4e0b4c302291  gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
+ c77edd4d8dc9ee85bf93b6e2c114d962  gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
+ fa6ebeb8a38629b307b197117b388ef7  gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
+ 183539c22965737f5ebca3d3e47d261b  gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
+ 28a4a0d6bd0e09a7f1da7f5515db9c70  gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
+ eeb2c795579e4b693eed6b471e041925  gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
+ 4dde22c7279c7c8e684af5f718431d7d  gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
+ a6cac29ed0855c52ab4ab6fa01911e5f  gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
  04d6147486a507d49f5d165aac499b5d  gcc/testsuite/gcc.target/i386/builtin-copysign.c
+ 7c1badccd4856954ccba2139093860d2  gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
+ eb024e3b157728adf6d4f14b1bd4c69d  gcc/testsuite/gcc.target/i386/builtin-fabs-2.c
  83540904d3592a74a85860a8850ad325  gcc/testsuite/gcc.target/i386/builtin-has-attribute.c
  c9f542098c7044c5b8ac4b18be20d199  gcc/testsuite/gcc.target/i386/builtin-issignaling-1.c
  07c7b1b786ccb4b67484b353aa40d9c7  gcc/testsuite/gcc.target/i386/builtin-ucmp.c
*************** c1320fd604803bc04257c984f1e3ba77  gcc/te
*** 85710,85716 ****
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! 6a515246292a4483c34e35038506249f  gcc/testsuite/gcc.target/i386/funcspec-56.inc
  b954a6c88c30f112db6bd140acb0162c  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
--- 85824,85830 ----
  3dd864a351a6115db6a5b2ea1ee16ece  gcc/testsuite/gcc.target/i386/funcspec-3.c
  5af0527c599bf95f77628d48b1beb0ec  gcc/testsuite/gcc.target/i386/funcspec-4.c
  7568c1249431aafb7f8e2610a1e4a35e  gcc/testsuite/gcc.target/i386/funcspec-5.c
! 91613dd5847aa6776004b163c9757110  gcc/testsuite/gcc.target/i386/funcspec-56.inc
  b954a6c88c30f112db6bd140acb0162c  gcc/testsuite/gcc.target/i386/funcspec-6.c
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  0ba9f1b7368ea580cabab541b451aea8  gcc/testsuite/gcc.target/i386/funcspec-8.c
*************** e0bc688540cd8ed83ce6df81886303a5  gcc/te
*** 86467,86472 ****
--- 86581,86595 ----
  d4e20b825c09cf6794e6e5b597c7335f  gcc/testsuite/gcc.target/i386/pr101504.c
  dc16503e73180cbb7d121cbbe8978dea  gcc/testsuite/gcc.target/i386/pr101617.c
  5d41fc380eccae6344c39847965d0da0  gcc/testsuite/gcc.target/i386/pr101636.c
+ 74510e56c36bf6436d3a857c8f12e09a  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c
+ 6e82ebb2d926f0cc02c7d8d2200e79d3  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c
+ 4f194aefcbc83d33c15b2df662e17c72  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c
+ 836c85d539817aef8556121a3d59d456  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c
+ af6e23fd5453083c4ed2dd493c5754d2  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c
+ 87b04fcd2651035c6e704d956770f789  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c
+ 4e11f543612fd0f86b61353dfd0126a1  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c
+ 3661dab76680ac122fac13334b468383  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c
+ ff4e1d818f49c6a5f38e589da88739b7  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c
  12da55d83461aa19e9bc27fe99056a71  gcc/testsuite/gcc.target/i386/pr101668.c
  b974d1c1eb2c64f7c28acd2f356d3503  gcc/testsuite/gcc.target/i386/pr101685.c
  b34b7e9dae2a643708a6bf0b5f9b5bad  gcc/testsuite/gcc.target/i386/pr101716.c
*************** de69502695dcbc8a5a967bb1c49ea11c  gcc/te
*** 87265,87270 ****
--- 87388,87399 ----
  e5e8ba4f460f32c4d01f7295cd3635e6  gcc/testsuite/gcc.target/i386/pr122150.c
  4ee092e04b4910e875927065ac6cfd1f  gcc/testsuite/gcc.target/i386/pr122180.c
  bc47c79dae6f9fafe54d99c3d5a9a226  gcc/testsuite/gcc.target/i386/pr122266.c
+ 85964ed6a10a9c791bd0dbd8ec2ad31e  gcc/testsuite/gcc.target/i386/pr122320-mask16.c
+ 04bbaaa2b8e4401a6aa49e2c71f2c0b7  gcc/testsuite/gcc.target/i386/pr122320-mask2.c
+ ae9cefa4d949ae63e9380aeb14fae221  gcc/testsuite/gcc.target/i386/pr122320-mask32.c
+ ff0a586f8aaac7078fb79402d3f0df4b  gcc/testsuite/gcc.target/i386/pr122320-mask4.c
+ 9a861d0f957f59a5dc5e7cafeddd1343  gcc/testsuite/gcc.target/i386/pr122320-mask64.c
+ f6a03ec739c3c632b84006aa8e240dae  gcc/testsuite/gcc.target/i386/pr122320-mask8.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
*************** ff4a381ee5305c9a18c5754c13c12790  gcc/te
*** 89985,89990 ****
--- 90114,90122 ----
  e74f5b8f16d9e3c28227ea31186f816a  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3.c
  a2f5b0c7365f7c93751ba3a6aa3eee83  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3a.c
  72524fc8a79531162d13f560e0d144fe  gcc/testsuite/gcc.target/i386/sse4_1-stv-1.c
+ 9ce5a17c10cee7fb9d36935428716f0a  gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c
+ 829dfd2a2a0b2fdc7afb230e794b5e3a  gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c
+ 02b9051251a317f88ea262388e1a7158  gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c
  0d4ea3fb9a13317ac032d3b746eb211a  gcc/testsuite/gcc.target/i386/sse4_1-stv-2.c
  7ccf320367db828d9231b02a5a2706de  gcc/testsuite/gcc.target/i386/sse4_1-stv-3.c
  60adbd8686ae10af58220efca0984cce  gcc/testsuite/gcc.target/i386/sse4_1-stv-4.c
*************** bf8d7c32de15ac1b6b15d33f4c0730e8  gcc/te
*** 90624,90629 ****
--- 90756,90762 ----
  dd89cf931606852d264a068d0da89f48  gcc/testsuite/gcc.target/loongarch/lasx-func-attr-2.c
  50e5afd436ad3b4f977fbbe4b5538229  gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-1.c
  906d80bea4f1077ff428fa3626503bcb  gcc/testsuite/gcc.target/loongarch/lasx-pragma-attr-2.c
+ de06cc3da65946f38baaa81bb163fca6  gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
  dc97748644c9f046ca9df34db59dd8fc  gcc/testsuite/gcc.target/loongarch/loongarch.exp
  d4c4c9d0b9ae0369cd930c837d2425b7  gcc/testsuite/gcc.target/loongarch/lsx-andn-iorn.c
  4000dc14b31fce222ef708b8954c6b31  gcc/testsuite/gcc.target/loongarch/lsx-func-attr-1.c
*************** b3a6b5754323ff046d0acf52bece9724  gcc/te
*** 96909,96915 ****
  544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
  20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
  fa61a6cc5030ebab9e9162f82fc6aa29  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 0245d4ff407ec7c3b0fbf8128a2120f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
  3a2c69eacd5c8132c78e54208d48b0b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
  77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
  200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
--- 97042,97048 ----
  544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
  20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
  fa61a6cc5030ebab9e9162f82fc6aa29  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 60ee52212638b315a8ad9540a60415bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
  3a2c69eacd5c8132c78e54208d48b0b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
  77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
  200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
*************** d52f616fd3b07a4d65fc4fa9119dcfda  gcc/te
*** 97042,97048 ****
  fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
  9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
  f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! d7cfd200b21b79fb968c4f68862d3afb  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
  14ed314f7535c6f005f8429685917cd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
  f43dfb7397c7a585e908a5efd48027ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c
  8215a8ab8bf66854039bf4418480c6bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c
--- 97175,97181 ----
  fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
  9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
  f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! 8896cc2ec1b579581ca3e02c0ee09430  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
  14ed314f7535c6f005f8429685917cd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
  f43dfb7397c7a585e908a5efd48027ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c
  8215a8ab8bf66854039bf4418480c6bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c
*************** abd694235777f7b62db96e3787996c15  gcc/te
*** 99996,100003 ****
  e91b00c5f2ae57cbcc2481ba24b57f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
  23a2401e8a0d3a8966d904a613e17daa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
  38036ffecdbfd641cd09bf4d96837f77  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! 0086f55b1860acb897467cdb85e62b2a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! f008cdc108039e8acfec80c66a29deb7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
  c70d0b9cdaf8882f26b7606e319bc3c3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
  8bb23274aa1549837c9839211712d1f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
  6d8ff049c03f5447bc7a341925c0ad05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr108270.c
--- 100129,100136 ----
  e91b00c5f2ae57cbcc2481ba24b57f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
  23a2401e8a0d3a8966d904a613e17daa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
  38036ffecdbfd641cd09bf4d96837f77  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! ed23e473da64ff540c6b1656e0e3b2a6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! 95c874b82a10943aa01d92ae98a2dfa8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
  c70d0b9cdaf8882f26b7606e319bc3c3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
  8bb23274aa1549837c9839211712d1f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
  6d8ff049c03f5447bc7a341925c0ad05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr108270.c
*************** a84224faacb7d93a1bd4c61397928413  gcc/te
*** 101090,101096 ****
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  5c6f219d3c6f78457ccc2f81108fa5cf  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
! 6727bdb2e2678b27aa57ae036e6b5fc1  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
  82d8412eb43370360f8ac3c0fc0ce4fe  gcc/testsuite/gcc.target/riscv/sign-extend-1.c
  cc32dda6538c5a12c022772b1eb4f6f0  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c
  21c1c7f3bfe8b89696e3a49318610d40  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c
--- 101223,101229 ----
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  5c6f219d3c6f78457ccc2f81108fa5cf  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
! 52ab5a107742fe4b4967ec31e30faef6  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
  82d8412eb43370360f8ac3c0fc0ce4fe  gcc/testsuite/gcc.target/riscv/sign-extend-1.c
  cc32dda6538c5a12c022772b1eb4f6f0  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c
  21c1c7f3bfe8b89696e3a49318610d40  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c
*************** e7110de4ebd4f3cb73cdb7b613277e98  gcc/te
*** 101209,101215 ****
  41d69068183cd3169a41c201bd259262  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-6.c
  922da5bf863dce7cf0e8ab2cdda4b258  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-1.c
  73b8797c006e4c6a9ce935bf4c399367  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-2.c
! b5bdba3943feed2fc5b77f174320a56b  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c
  76b7601388ff5b8a560c86f5a04ec28d  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-10.c
  465a74d8f1553c256b81aff9b796cbf5  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-11.c
  2bc2e8f621e2a2008d3b5feb50ea3fd9  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-2.c
--- 101342,101348 ----
  41d69068183cd3169a41c201bd259262  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-6.c
  922da5bf863dce7cf0e8ab2cdda4b258  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-1.c
  73b8797c006e4c6a9ce935bf4c399367  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-2.c
! f644581474db59b3e3cb0642c5256527  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c
  76b7601388ff5b8a560c86f5a04ec28d  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-10.c
  465a74d8f1553c256b81aff9b796cbf5  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-11.c
  2bc2e8f621e2a2008d3b5feb50ea3fd9  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-2.c
*************** bcff008fda796aaaa4aa0c808a1cf8da  gcc/te
*** 111478,111485 ****
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! 81a9d786c28a3ef62fb9b97631a45143  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
! df331bd4212e4a6cbc0e794b7eb5ac88  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
  1c8256ee6ef1a6a182d532c7902f031d  gcc/testsuite/gfortran.dg/gomp/declare-variant-21.f90
  a00784a7c97219249c4d304acc76bce8  gcc/testsuite/gfortran.dg/gomp/declare-variant-22.f90
  0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
--- 111611,111618 ----
  7f0e276222c8af41d530e09021a3eded  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! ed683a89c7027522aeb6eeffa4f9eb50  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
! 603fe8503ea79621c6ae2bea1b62521f  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
  1c8256ee6ef1a6a182d532c7902f031d  gcc/testsuite/gfortran.dg/gomp/declare-variant-21.f90
  a00784a7c97219249c4d304acc76bce8  gcc/testsuite/gfortran.dg/gomp/declare-variant-22.f90
  0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
*************** edeec1fe2488c7117f56e10734af03dc  gcc/te
*** 111701,111706 ****
--- 111834,111846 ----
  7e57554851ec1cc8a84c063d08c5e85b  gcc/testsuite/gfortran.dg/gomp/pr118790.f90
  6b771a999bde94f57725dc0bd1605b06  gcc/testsuite/gfortran.dg/gomp/pr118965-1.f90
  a4c8e1c741144a0563b7496c35105b96  gcc/testsuite/gfortran.dg/gomp/pr118965-2.f90
+ 519e028cf612ea2d3d6381668ebefc55  gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90
+ d8441305cc895069c13e58f9c1ac4a87  gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90
+ 92194975f61318898bc23ee16a7cd111  gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90
+ 65ede81e6274b2feb64f3e425568715b  gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90
+ 9c2ce128fe51a9730eeae1c0fbc874c7  gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90
+ e08b5cb5191d39e48e3ab1627a6218e0  gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90
+ e3b3c69a2373d8201d048f4a790adc2d  gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90
  9a6817790a272cd8153d4303d324c00f  gcc/testsuite/gfortran.dg/gomp/pr26224.f
  d2c74a71f2bea0005d853821e6f0142c  gcc/testsuite/gfortran.dg/gomp/pr27573.f90
  a65c4577a606ba1bdab50e690b269b04  gcc/testsuite/gfortran.dg/gomp/pr29759.f90
*************** ae3f6e29ad3108163b5c5c6a5f70ef7c  gcc/te
*** 112730,112735 ****
--- 112870,112876 ----
  ce08d00725a7d8d4e9547e8bf55eaa4b  gcc/testsuite/gfortran.dg/is_contiguous_2.f90
  b6282b55783f0b1b931571f793113587  gcc/testsuite/gfortran.dg/is_contiguous_3.f90
  d64f2f360e5963a4bea9642fa7bf28c2  gcc/testsuite/gfortran.dg/is_contiguous_4.f90
+ ebc7811d4f30308fbc8ee420f6168425  gcc/testsuite/gfortran.dg/is_contiguous_5.f90
  765cb2ca72a98a43c69ea99a61aa0a59  gcc/testsuite/gfortran.dg/is_iostat_end_eor_1.f90
  ca491b51342a862f4f525db35073fe93  gcc/testsuite/gfortran.dg/is_iostat_end_eor_2.f90
  e29de44a3798652da0c04b03153d2639  gcc/testsuite/gfortran.dg/ishft_1.f90
*************** c8268112a25855a7d481b68d88cd5849  gcc/te
*** 113556,113561 ****
--- 113697,113703 ----
  dfae0584c34f174386746029a2bbf0b1  gcc/testsuite/gfortran.dg/pdt_58.f03
  a5070ccaa9b85c10608985b219421c39  gcc/testsuite/gfortran.dg/pdt_59.f03
  65d2ad728417ad3174fc1ce2b51a458d  gcc/testsuite/gfortran.dg/pdt_6.f03
+ 9dbc08fbae591c5a9da5818dd56b234e  gcc/testsuite/gfortran.dg/pdt_60.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
  c621629f10feffbfa9fef1441a610e53  gcc/testsuite/gfortran.dg/pdt_9.f03
*************** c00e10e2dedc2a4d4050941a3ae36ab2  gcc/te
*** 115553,115558 ****
--- 115695,115701 ----
  d175a283aab741037bd1bdee76a76fa5  gcc/testsuite/gfortran.dg/transfer_array_intrinsic_4.f90
  c5cef3aa9c3895b4e6b38e993481ff14  gcc/testsuite/gfortran.dg/transfer_array_intrinsic_5.f90
  446033cb0484da91a769a31c11989942  gcc/testsuite/gfortran.dg/transfer_array_subref.f90
+ f3cfa4f9bf47a8662e4b6c7ad0aaf36f  gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90
  fdabd8c65dcb8fb1bfe06c29c937c219  gcc/testsuite/gfortran.dg/transfer_assumed_size_1.f90
  1c08633181f8b50ad8fd08ed1f4f207f  gcc/testsuite/gfortran.dg/transfer_char_kind4.f90
  0d5a3d18a1eeb0de1ca65d86e1cd68f8  gcc/testsuite/gfortran.dg/transfer_check_1.f90
*************** e6f3c702e8ca5bfbe627dcb752971fdb  gcc/te
*** 116616,116621 ****
--- 116759,116776 ----
  ec56bce7bdde9ba4515172d6349ed250  gcc/testsuite/gm2.dg/pim/fail/dg-pim-fail.exp
  4e88623298e1e2e2a0a5e56077e5f006  gcc/testsuite/gm2.dg/pim/fail/opaquedefs.def
  27a1f5c9aed629a98954f37c54a84552  gcc/testsuite/gm2.dg/pim/fail/opaquedefs.mod
+ bac3b2f6653a8c5706652acb80672851  gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod
+ 629a261c471eee1fd867cb40ab126a66  gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod
+ 36f7e140b207b9b84c44ebecea4be888  gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod
+ edf32dae39d7f97c1f99ea0c9ea39d79  gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod
+ cdb83929f80ad92243c71528cad990f1  gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod
+ a3bbb4dbef969c23d45ab317340d6968  gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod
+ d50214c543cdb5c517b6403b6d22eaa5  gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod
+ a5e57fa132253a43e0c0249910ffd45e  gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod
+ ed18ae57bd12eb7e4afbec5f51238b8f  gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod
+ fba1c621a45c06d14612cfa475f94517  gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod
+ 910ca9bef7c2a9c2b16d30443bcd21c9  gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod
+ 86ad47d8de5e9771b8bf32d07f1b2604  gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp
  2ab249adedfb373731377824dc455f10  gcc/testsuite/gm2/base-lang/pass/SYSTEM.def
  40adc2871213fa7c8622e89378bb8cc5  gcc/testsuite/gm2/base-lang/pass/base-lang-test.sh
  8a285f72f3f20ee3a9c23a9b36bb2e10  gcc/testsuite/gm2/base-lang/pass/globalproctype.def
*************** ac267a2812409b3404f6c1aeba441861  gcc/te
*** 119119,119124 ****
--- 119274,119280 ----
  74ca656bc33692c00600828733edeca3  gcc/testsuite/gnat.dg/complex1.adb
  eabd848befe131fde7677a9da2ddf20b  gcc/testsuite/gnat.dg/complex1_pkg.ads
  0b8796322445f41bce527a08ee2783de  gcc/testsuite/gnat.dg/component_size.adb
+ 13eb5d243ed2779f56be7f0f26132a53  gcc/testsuite/gnat.dg/component_value1.adb
  65f042f7c7f3ba5cd72d9c078386a46e  gcc/testsuite/gnat.dg/compose.adb
  ac069379af0132c56a9f326aa688d9f0  gcc/testsuite/gnat.dg/concat1.adb
  d0d9950b243700f01e3cfad18d2b6139  gcc/testsuite/gnat.dg/concat1_pkg.adb
*************** b0752d6fc68f640a84237fcef9762258  gcc/te
*** 119988,119993 ****
--- 120144,120151 ----
  2ae11fd4a1acf9b36a65534e58e92abb  gcc/testsuite/gnat.dg/machine_attr1.ads
  198e584cc0cef45ce405667052c23e05  gcc/testsuite/gnat.dg/machine_attr2.adb
  a43575908eb1e17e2afdeb4ea7308f2a  gcc/testsuite/gnat.dg/machine_attr2.ads
+ bccaa87c03ccc69e4140839ab7027547  gcc/testsuite/gnat.dg/machine_attr3.adb
+ ff25cfad1be580a61ffb931854f7e942  gcc/testsuite/gnat.dg/machine_attr3.ads
  cc1ed6ae65ad5b0d5af3f2f3767e091e  gcc/testsuite/gnat.dg/machine_code1.adb
  d3f7e556abc113803210eb76117456b0  gcc/testsuite/gnat.dg/matrix1.adb
  ebbd44798662a03d43697c3bec8dc4b4  gcc/testsuite/gnat.dg/max_align.adb
*************** e51121d34de5e0d22067137864528c8a  gcc/te
*** 120528,120533 ****
--- 120686,120692 ----
  b08ade850be1a0a80325c1a93e9c9043  gcc/testsuite/gnat.dg/renaming16.adb
  0278c64b189f758651064d6a8aeac4db  gcc/testsuite/gnat.dg/renaming16_pkg.ads
  5eaaed2371da7238ac1bdfe70068edcc  gcc/testsuite/gnat.dg/renaming17.adb
+ b500c932c841816b5021e1c75ea367c9  gcc/testsuite/gnat.dg/renaming18.adb
  3afb13f37cfc3455f0f0be64d053892f  gcc/testsuite/gnat.dg/renaming2.adb
  1a954da0b1e7e11673319b058eb82146  gcc/testsuite/gnat.dg/renaming3.adb
  9c415422ce59266c9af89e8d3fd1df74  gcc/testsuite/gnat.dg/renaming4.ads
*************** cd1ae8bd0a64f513e4a2f5cf6f3ddf35  gcc/te
*** 121194,121199 ****
--- 121353,121359 ----
  9ea3823af135f00304442c546f455041  gcc/testsuite/gnat.dg/unroll4_pkg.ads
  0c380665cb8866e926609d97d60e74d3  gcc/testsuite/gnat.dg/use_type1.adb
  2ff25aab3331ed26139d02e26ef160d7  gcc/testsuite/gnat.dg/use_type2.adb
+ ca0cc4af1afd7c89b8c00147944eface  gcc/testsuite/gnat.dg/use_type3.adb
  9e88b7ce099b1d8cf08618b19708a2f3  gcc/testsuite/gnat.dg/valid1.adb
  b9b78fbd058ac9dfd657617df5ab8b4c  gcc/testsuite/gnat.dg/valid4.adb
  978b7483f1bef09979e22217b25587be  gcc/testsuite/gnat.dg/valid4_pkg.adb
*************** d19a0449bac1fb497429a88904f3d658  gcc/te
*** 123342,123348 ****
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! ecec5e422a2d2759e48cf898f353bc02  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
  c2ab8a50f6099a876788d5e2b281249b  gcc/testsuite/jit.dg/jit.exp
--- 123502,123508 ----
  50c0f03762d429c13fd0302c79d90157  gcc/testsuite/go.test/test/varinit.go
  6447a99ae1e2eec266af1ceab6a7343c  gcc/testsuite/go.test/test/zerodivide.go
  340e08c9aef97a2da8f4cd4568d52675  gcc/testsuite/jit.dg/add-driver-options-testlib.c
! 09e7666c47077f5afaa2d82b31eb3bba  gcc/testsuite/jit.dg/all-non-failing-tests.h
  7bc42e89ae77872c8fc581b4babf1832  gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h
  6599d673695ac45c69f897e7b9643cdb  gcc/testsuite/jit.dg/harness.h
  c2ab8a50f6099a876788d5e2b281249b  gcc/testsuite/jit.dg/jit.exp
*************** c96b8b75ba517dc647306c0f299c9b2d  gcc/te
*** 123357,123362 ****
--- 123517,123523 ----
  2fdb2d029b4d2ac2ee6075d0b41dd30f  gcc/testsuite/jit.dg/test-always_inline-attribute.c
  c9f821ccc1905c2cf6da3b515300cc71  gcc/testsuite/jit.dg/test-arith-overflow.c
  978312b6ef29d047612e4077b2776108  gcc/testsuite/jit.dg/test-array-as-pointer.c
+ 84aad5caec55ba699bf86ba7d0133998  gcc/testsuite/jit.dg/test-arrays-u64.c
  b6b657ddbcecefb50b21259cc5711010  gcc/testsuite/jit.dg/test-arrays.c
  56ce2077b85dacdbb546575eb90002b6  gcc/testsuite/jit.dg/test-asm.c
  f73f1fd00c548879b2e9693e182a41a6  gcc/testsuite/jit.dg/test-asm.cc
*************** fcf1117c170a5452646f6599908d4d34  gcc/te
*** 123386,123392 ****
  ee645b37b25f2a3eddfb21e8be20336d  gcc/testsuite/jit.dg/test-empty.c
  7e92c7a2ed10887fff56fcf4d7ef3c64  gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
  6eef66aeae471d259e994ed25ea486f5  gcc/testsuite/jit.dg/test-error-array-as-pointer.c
! b501163b23478ab847f9a8fc171c6713  gcc/testsuite/jit.dg/test-error-array-bounds.c
  dfb836afb65b1ee5048efb971be3da83  gcc/testsuite/jit.dg/test-error-assign-readonly.c
  f23891ab41cf83348b68a92bd977a460  gcc/testsuite/jit.dg/test-error-bad-assignment-op.c
  d3cb545cb98c0633bfc443fcdebf1e86  gcc/testsuite/jit.dg/test-error-bad-assignment.c
--- 123547,123553 ----
  ee645b37b25f2a3eddfb21e8be20336d  gcc/testsuite/jit.dg/test-empty.c
  7e92c7a2ed10887fff56fcf4d7ef3c64  gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
  6eef66aeae471d259e994ed25ea486f5  gcc/testsuite/jit.dg/test-error-array-as-pointer.c
! 633cd8e17706507d7ed2c65f11084d28  gcc/testsuite/jit.dg/test-error-array-bounds.c
  dfb836afb65b1ee5048efb971be3da83  gcc/testsuite/jit.dg/test-error-assign-readonly.c
  f23891ab41cf83348b68a92bd977a460  gcc/testsuite/jit.dg/test-error-bad-assignment-op.c
  d3cb545cb98c0633bfc443fcdebf1e86  gcc/testsuite/jit.dg/test-error-bad-assignment.c
*************** e75fb18f9aff909b3c6639a4dac3074c  gcc/te
*** 123511,123516 ****
--- 123672,123678 ----
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
  a5626b9d860be98a2945e6db0103eb86  gcc/testsuite/jit.dg/test-setting-alignment.c
  43c10dea1efb77b54218e22f2b879311  gcc/testsuite/jit.dg/test-signed-char.c
+ d3b508236f8f599ed02eedc6eedec458  gcc/testsuite/jit.dg/test-sized-float.c
  62528d4a27e27c4755becb0dbd93db39  gcc/testsuite/jit.dg/test-sizeof.c
  baa5fe6e699066fd8ffc5bcfe6d2bc19  gcc/testsuite/jit.dg/test-special-chars.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 123612,123618 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 80f506e1ad35dcd293433ff6f0f5b488  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
--- 123774,123780 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! f4b0adafa5d3e6f9f5bea3d9a5e3cb55  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
*************** fbcc93539b376489c1256eb8cf2d4800  gcc/tr
*** 126274,126280 ****
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  8ccf736dffb311078aa79c9036502189  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! c2f4a3a5ea21e27f327b8f3b86e8b03c  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
  45bbadfd0296a849ac6eebf1a85d74ec  gcc/tree-ssa-pre.cc
  090c54ea646b8886730039b6cc16adb6  gcc/tree-ssa-propagate.cc
--- 126436,126442 ----
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  8ccf736dffb311078aa79c9036502189  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! fbb4dbd95b07fb6744745c6d010a7341  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
  45bbadfd0296a849ac6eebf1a85d74ec  gcc/tree-ssa-pre.cc
  090c54ea646b8886730039b6cc16adb6  gcc/tree-ssa-propagate.cc
*************** c98debbdc978c10e8934f3b4fb7e2504  gcc/tr
*** 126316,126330 ****
  6e5dcb1a1ea95d85fd88114bca11a78a  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  f840a486e62fde7baf6f487e0c0912bb  gcc/tree-vect-loop-manip.cc
! 8a3b4af0d7380159874698c7223c0cf2  gcc/tree-vect-loop.cc
! 1a7a2b893d41a2721d6ea36540595bfb  gcc/tree-vect-patterns.cc
  f0e64752211e2caf975148f28e7b4caf  gcc/tree-vect-slp-patterns.cc
! fd431cdf61cd94547eab782d0eb24e06  gcc/tree-vect-slp.cc
  eaef715b393a023fab053a3f3b478097  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
  258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
  cb678f63a201f9ffc105c6c996f2b8f2  gcc/tree-vectorizer.cc
! 5642a75ccd2367aaff5b820e4cd39352  gcc/tree-vectorizer.h
  1bed475667cbd8dee00c3b7da964ca5b  gcc/tree-vrp.cc
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
  151ba8bf004e87cbcab9cdfd5352a3c2  gcc/tree.cc
--- 126478,126492 ----
  6e5dcb1a1ea95d85fd88114bca11a78a  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  f840a486e62fde7baf6f487e0c0912bb  gcc/tree-vect-loop-manip.cc
! 7808985af23240ed3f8b9165d8a70946  gcc/tree-vect-loop.cc
! 04a82f888445c931e0ace82b02b3230b  gcc/tree-vect-patterns.cc
  f0e64752211e2caf975148f28e7b4caf  gcc/tree-vect-slp-patterns.cc
! 216acb496de32b4dbaf3a62bfdcc514c  gcc/tree-vect-slp.cc
  eaef715b393a023fab053a3f3b478097  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
  258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
  cb678f63a201f9ffc105c6c996f2b8f2  gcc/tree-vectorizer.cc
! 6cde1ce2021038e8b506344b57887cea  gcc/tree-vectorizer.h
  1bed475667cbd8dee00c3b7da964ca5b  gcc/tree-vrp.cc
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
  151ba8bf004e87cbcab9cdfd5352a3c2  gcc/tree.cc
*************** df85736a75a28f2d961a417c6edbbeeb  gcc/va
*** 126353,126359 ****
  059762db0b1055bd987008c8461bc04b  gcc/value-range-pretty-print.cc
  5ee1b56a5e76c505c40cf28eb30f62e6  gcc/value-range-pretty-print.h
  6b536deb5ade6571e0988bf82fede1e2  gcc/value-range-storage.cc
! 0b17e8456f7912204776ffd65ac2da59  gcc/value-range-storage.h
  cf9dcaf20713247ef94a676aab661f42  gcc/value-range.cc
  3b8d60c583902ea9ca82298b87a741c3  gcc/value-range.h
  4fcfb97f5fdee9686317186a141f2b4b  gcc/value-relation.cc
--- 126515,126521 ----
  059762db0b1055bd987008c8461bc04b  gcc/value-range-pretty-print.cc
  5ee1b56a5e76c505c40cf28eb30f62e6  gcc/value-range-pretty-print.h
  6b536deb5ade6571e0988bf82fede1e2  gcc/value-range-storage.cc
! 46fa73b8a0c784d01ffa56c8dd1499e4  gcc/value-range-storage.h
  cf9dcaf20713247ef94a676aab661f42  gcc/value-range.cc
  3b8d60c583902ea9ca82298b87a741c3  gcc/value-range.h
  4fcfb97f5fdee9686317186a141f2b4b  gcc/value-relation.cc
*************** cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vt
*** 126379,126385 ****
  112f50026efc86aeff2023a67e87a688  gcc/wide-int-print.cc
  6efef550b675aa93974df4fc59f488df  gcc/wide-int-print.h
  88adca0d34004d3f3c8775540086085e  gcc/wide-int.cc
! 4fc8c5d5a4dbeb10715da964977f1c81  gcc/wide-int.h
  818a3384157138e5a3f6fbc6368d2b11  gcc/xcoff.h
  d4ca2eb60a15b0128ddab26e5f20b5f2  gcc/xml-printer.h
  ca67d74ae827adbfd37f3c19a9a686f7  gcc/xml.cc
--- 126541,126547 ----
  112f50026efc86aeff2023a67e87a688  gcc/wide-int-print.cc
  6efef550b675aa93974df4fc59f488df  gcc/wide-int-print.h
  88adca0d34004d3f3c8775540086085e  gcc/wide-int.cc
! 770f324ff5fe7a38ff7b357344ea78b3  gcc/wide-int.h
  818a3384157138e5a3f6fbc6368d2b11  gcc/xcoff.h
  d4ca2eb60a15b0128ddab26e5f20b5f2  gcc/xml-printer.h
  ca67d74ae827adbfd37f3c19a9a686f7  gcc/xml.cc
*************** a3eb5dee2788fe0a6c42502ba658eddd  libffi
*** 127185,127191 ****
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! cf3e38cecc8fb02d0c300ca8dc2000f7  libgcc/ChangeLog
  46871f7f435b4902cf5796badf55e199  libgcc/Makefile.in
  3909078d285165298c78eb97ea152e90  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
--- 127347,127353 ----
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! d78b391a719ad3942c14278e87bbe148  libgcc/ChangeLog
  46871f7f435b4902cf5796badf55e199  libgcc/Makefile.in
  3909078d285165298c78eb97ea152e90  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
*************** c9b91505a24abd3bc6b11e0f094edee0  libgcc
*** 127480,127489 ****
  1aa2fed5799ecd25ee8be582d18e7e78  libgcc/config/gthr-lynx.h
  5196a8b77bc387930fd669d289365a0f  libgcc/config/gthr-rtems.h
  7733368685a8a638218391711d144952  libgcc/config/gthr-vxworks-cond.c
! dae646493dc8bf55c589148500356b21  libgcc/config/gthr-vxworks-thread.c
! aa27b5bfc0131bad6a2e347158405b11  libgcc/config/gthr-vxworks-tls.c
  aea1a23d460d879ca86d669a1f8abaee  libgcc/config/gthr-vxworks.c
! 470ee5b0a76fa494b19d4db77d46875a  libgcc/config/gthr-vxworks.h
  796207787c81abf4bfa2b3425f7e8778  libgcc/config/h8300/clzhi2.c
  8e081d4d4a1510cbe1dbdb435a5800f1  libgcc/config/h8300/crti.S
  fd5cee22709cadfe51beb44507b421f4  libgcc/config/h8300/crtn.S
--- 127642,127651 ----
  1aa2fed5799ecd25ee8be582d18e7e78  libgcc/config/gthr-lynx.h
  5196a8b77bc387930fd669d289365a0f  libgcc/config/gthr-rtems.h
  7733368685a8a638218391711d144952  libgcc/config/gthr-vxworks-cond.c
! 6e473c199ae29dacfe8fcbacfb32dccb  libgcc/config/gthr-vxworks-thread.c
! d7334f7274f4ceb39b6164d370a0c76b  libgcc/config/gthr-vxworks-tls.c
  aea1a23d460d879ca86d669a1f8abaee  libgcc/config/gthr-vxworks.c
! e4f756002de9c5963a86a47edaa3d815  libgcc/config/gthr-vxworks.h
  796207787c81abf4bfa2b3425f7e8778  libgcc/config/h8300/clzhi2.c
  8e081d4d4a1510cbe1dbdb435a5800f1  libgcc/config/h8300/crti.S
  fd5cee22709cadfe51beb44507b421f4  libgcc/config/h8300/crtn.S
*************** ff76526856565673089b174b185fab45  libgcc
*** 128488,128494 ****
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
! 68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
  8b0cd746bfd3708d6d816cf9c516e0b7  libgcc/config/unwind-dw2-fde-darwin.c
  b79b6486bdd127f443c42df225c3411d  libgcc/config/v850/lib1funcs.S
--- 128650,128656 ----
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
! 6d1cffc3059ed362901871cde23cc9d4  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
  8b0cd746bfd3708d6d816cf9c516e0b7  libgcc/config/unwind-dw2-fde-darwin.c
  b79b6486bdd127f443c42df225c3411d  libgcc/config/v850/lib1funcs.S
*************** f017ba40c4699f1549cd341ad688007f  libgcc
*** 128754,128793 ****
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! 035ff94539d1c679a384c3fb6cf08244  libgcobol/ChangeLog
  b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
! e5a4ad84e4fa547c96f01437e14de6aa  libgcobol/Makefile.am
! 1764de733c5ca0d6118cc91d5244e750  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
  edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
! 25446229f13be1262682862f733be746  libgcobol/charmaps.cc
! 7e0ca0cb4d9e92a788a54fbb72da4276  libgcobol/charmaps.h
! 6bd30189aa6b54ffda8d080233ee694f  libgcobol/common-defs.h
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
  d23a12226b48001cabd28a835c3cb5fc  libgcobol/configure
  faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
! 97197152858e5b4e291001a9fa6ca1e9  libgcobol/constants.cc
  641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
! c6bdc674909878cfb392d5804d578db8  libgcobol/encodings.h
  fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
  cb865d217e906e6640cddda70970c7a3  libgcobol/gcobolio.h
  6193811aa95461e5b549180318d938bf  libgcobol/gfileio.cc
  4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
  42a0be811da2d9bccec1fc42d43424cb  libgcobol/gmath.cc
  9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 6629970ff7cb82518cfbc5f5aa2536c6  libgcobol/intrinsic.cc
  0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
  b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 0b487576b835968c415ee782daa33404  libgcobol/libgcobol.cc
! 23d227fa7c7a5e0dd99c87141b060c90  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
  569f88db0d90fcf77b2a1a314beb8bcb  libgcobol/stringbin.cc
  179156ad95afd403a9316969a95142f7  libgcobol/stringbin.h
  22c49caac6a8d133de67b63e2cd769d4  libgcobol/valconv.cc
  bf52fdaed06effba57a10e8157bc6930  libgcobol/valconv.h
  6520ed01bbed88782faed4ce1922e024  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
--- 128916,128961 ----
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! 8dad3111905a20866f3a65b045de9e3e  libgcobol/ChangeLog
  b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
! f9f96109d649d17aa66f416364289e35  libgcobol/Makefile.am
! ce6793d8276df5edf60e0c25b277c4b4  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
  edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
! 19338650169503781ed85026d85d5c30  libgcobol/charmaps.cc
! 639e0eec47bba1f1c2353e2b9bcd6851  libgcobol/charmaps.h
! e44c6fe97350bdd7eff39bd00d594918  libgcobol/common-defs.h
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
  d23a12226b48001cabd28a835c3cb5fc  libgcobol/configure
  faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
! b7eded6395ef32819ecac70ac1aac697  libgcobol/constants.cc
  641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
! 3342a345db42ab91272459e68fbdd833  libgcobol/encodings.h
  fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
  cb865d217e906e6640cddda70970c7a3  libgcobol/gcobolio.h
  6193811aa95461e5b549180318d938bf  libgcobol/gfileio.cc
  4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
  42a0be811da2d9bccec1fc42d43424cb  libgcobol/gmath.cc
  9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! c013f16811f039868a850fed652b77bf  libgcobol/intrinsic.cc
  0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
  b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 7e86294843c58d255c23a41133ec50d3  libgcobol/libgcobol.cc
! dea38a785d1e8a09b58ae36a103c5ac2  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
+ c057a9c0bf247b066e7de6f079edb2f6  libgcobol/posix/errno.cc
+ a7b68930ae7325253870cb373c7849f6  libgcobol/posix/localtime.cc
+ 003f5498172a1df4ca6ac91fc5958ba5  libgcobol/posix/stat.cc
+ 61022abbb1cd6771520af70d813f0b02  libgcobol/posix/stat.h
+ feda976b2ecc3ba909f736aeb43feb48  libgcobol/posix/tm.h
  569f88db0d90fcf77b2a1a314beb8bcb  libgcobol/stringbin.cc
  179156ad95afd403a9316969a95142f7  libgcobol/stringbin.h
  22c49caac6a8d133de67b63e2cd769d4  libgcobol/valconv.cc
  bf52fdaed06effba57a10e8157bc6930  libgcobol/valconv.h
+ c37e1eaa544154df2818d5a9cb35d6bc  libgcobol/xmlparse.cc
  6520ed01bbed88782faed4ce1922e024  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
*************** f63a06d746592d67d8c161bc2461a24e  libgfo
*** 129814,129820 ****
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 90a07dbd3587aa60f2a729ef9ef545fa  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
  f26132364738756eeee0acf44fb5aadf  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
--- 129982,129988 ----
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 59d609340df520b24e9393ec34a4d55d  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
  f26132364738756eeee0acf44fb5aadf  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
*************** ba2db7fd78510ae0ff3e50d0d57c1b8d  libgm2
*** 129842,129849 ****
  e5756f3cdacda041a35b9820c00f7639  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
  672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
! 2c2dfd30d20bfb2b232b7518576739a2  libgm2/libm2pim/Makefile.am
! e6207f009e6321bb0b2847885daf8859  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
--- 130010,130017 ----
  e5756f3cdacda041a35b9820c00f7639  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
  672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
! 046a1a48a047fa7c014c3e3250c97e29  libgm2/libm2pim/Makefile.am
! 359fb87a5851f47033dfb5c4e9aadcd8  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 135351,135360 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 2d5b2f7b3c5a8518562ed51a92af6a55  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! 883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
! c834e979cda0723dbda4835927287e3b  libgomp/Makefile.in
  f931a90a01b7668928d9f7fcd5c7f3fb  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
  0630eb0d021f598b58704f3aed8ad2a2  libgomp/aclocal.m4
--- 135519,135528 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! d099e9f994b2ec90f5a78502c5a57856  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! 714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
! 3c91d539fc9934b5095923265d09ec8f  libgomp/Makefile.in
  f931a90a01b7668928d9f7fcd5c7f3fb  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
  0630eb0d021f598b58704f3aed8ad2a2  libgomp/aclocal.m4
*************** d8aa8371c40b734ac5451e05f1ec3ffd  libgom
*** 135364,135370 ****
  94bb34cb9fc447759270a29394905c04  libgomp/allocator.c
  4ade656c74aa8fd959caf250378befab  libgomp/atomic.c
  5948a82c8edeab7b492b99495b93c1c4  libgomp/barrier.c
! 654ad0ee054a67331ba12bff0e9b71d3  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
  bff4908f94ab6414754d17e7bdb16d9d  libgomp/config/accel/lock.c
--- 135532,135538 ----
  94bb34cb9fc447759270a29394905c04  libgomp/allocator.c
  4ade656c74aa8fd959caf250378befab  libgomp/atomic.c
  5948a82c8edeab7b492b99495b93c1c4  libgomp/barrier.c
! 0713423029d36c11e39a37bd70ec2121  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
  bff4908f94ab6414754d17e7bdb16d9d  libgomp/config/accel/lock.c
*************** c3776c498c46e83053f937447aeb6007  libgom
*** 135406,135412 ****
  08f45643e2ed98e1720544184d88dd55  libgomp/config/gcn/time.c
  ce0a50bc726967d0319a49c79324bfb7  libgomp/config/hpux/plugin-suffix.h
  2feb00269ee4729b72057dd715498c70  libgomp/config/linux/affinity.c
! 7c84aaf81209fc6e75f2a0f6a6216001  libgomp/config/linux/allocator.c
  92db90a3fbac3defcfefb84928fb1c70  libgomp/config/linux/alpha/futex.h
  1c2049dcd1f949262571445fd76ca9e4  libgomp/config/linux/bar.c
  0f9a450d13be243bdc3d9c724a7f84a5  libgomp/config/linux/bar.h
--- 135574,135580 ----
  08f45643e2ed98e1720544184d88dd55  libgomp/config/gcn/time.c
  ce0a50bc726967d0319a49c79324bfb7  libgomp/config/hpux/plugin-suffix.h
  2feb00269ee4729b72057dd715498c70  libgomp/config/linux/affinity.c
! b6b0e9d510693876f779d4c29c3f4ad2  libgomp/config/linux/allocator.c
  92db90a3fbac3defcfefb84928fb1c70  libgomp/config/linux/alpha/futex.h
  1c2049dcd1f949262571445fd76ca9e4  libgomp/config/linux/bar.c
  0f9a450d13be243bdc3d9c724a7f84a5  libgomp/config/linux/bar.h
*************** f4c32f19e8df86d2ac9c3d4cc4e788f1  libgom
*** 135490,135500 ****
  c798aea0a594e97c71edb3bd8cb93579  libgomp/iter.c
  c3d837ee5481f078c8b7875c1c8306be  libgomp/iter_ull.c
  0214d07a09a5c6e422ca9541c3f6cba4  libgomp/libgomp-plugin.c
! ca30439efac08d7424bfe64b90c7f766  libgomp/libgomp-plugin.h
! b5ba8a8b2b31f2f9bd9ac0760b81da9f  libgomp/libgomp.h
  cd6a22eaa3c99a58084ad32602f087b4  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 165f5d7716f89ec2a7a5dc8f67627b24  libgomp/libgomp.texi
  519d28879206bae759d85cd3bb7b493b  libgomp/libgomp_f.h.in
  fdadcc861565b686070908326f5e5914  libgomp/libgomp_g.h
  a5060d745455b036a62cc46de1fe0576  libgomp/lock.c
--- 135658,135668 ----
  c798aea0a594e97c71edb3bd8cb93579  libgomp/iter.c
  c3d837ee5481f078c8b7875c1c8306be  libgomp/iter_ull.c
  0214d07a09a5c6e422ca9541c3f6cba4  libgomp/libgomp-plugin.c
! e1c93fe55a6502d58b8db2e5556de8e9  libgomp/libgomp-plugin.h
! d5080c9b24fc2086ff1cdc09d1f6f0b0  libgomp/libgomp.h
  cd6a22eaa3c99a58084ad32602f087b4  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! dfe58129aeb2299e168ba696c92644ff  libgomp/libgomp.texi
  519d28879206bae759d85cd3bb7b493b  libgomp/libgomp_f.h.in
  fdadcc861565b686070908326f5e5914  libgomp/libgomp_g.h
  a5060d745455b036a62cc46de1fe0576  libgomp/lock.c
*************** b62a5d146dc237f28322cddf18c8a8bc  libgom
*** 135524,135541 ****
  5a5c5a37c066333fa237c308a243cda1  libgomp/plugin/configfrag.ac
  b8346079425832c85a1dfc7ac3ab0286  libgomp/plugin/cuda-lib.def
  fafa9c3e545d79d7206b51c518169ab7  libgomp/plugin/plugin-gcn.c
! 7a1851776fbe5f9ebfbd76763d770bc1  libgomp/plugin/plugin-nvptx.c
  0f2fc4f7d0850afd090ba2bb43681c8a  libgomp/priority_queue.c
  5c28f5f7bbc16dada259efc296bbe9f3  libgomp/priority_queue.h
  f1eee47026bb1c516cd1b3a9b9c1c5fa  libgomp/scope.c
  9ffecc292626b5af7bc2f960a91a888c  libgomp/sections.c
  861663907e49ce3b02add14fc05a078c  libgomp/secure_getenv.h
  1a659741443df556b83c96cee6a23405  libgomp/single.c
  6197f832f373fba082a73a413e58be94  libgomp/splay-tree.c
  6562eda8ef1a1fd0a2a0a9e5621f684b  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! 7e62e13c6b8754a60716c147f91f8b24  libgomp/target.c
  8f03749b5187ce4fb4dce3f7d5b2d9f7  libgomp/task.c
  865cdfdff84a15247efff279e8aca77f  libgomp/taskloop.c
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
--- 135692,135710 ----
  5a5c5a37c066333fa237c308a243cda1  libgomp/plugin/configfrag.ac
  b8346079425832c85a1dfc7ac3ab0286  libgomp/plugin/cuda-lib.def
  fafa9c3e545d79d7206b51c518169ab7  libgomp/plugin/plugin-gcn.c
! a42509a73ff4df4d971f1962ecadf50f  libgomp/plugin/plugin-nvptx.c
  0f2fc4f7d0850afd090ba2bb43681c8a  libgomp/priority_queue.c
  5c28f5f7bbc16dada259efc296bbe9f3  libgomp/priority_queue.h
  f1eee47026bb1c516cd1b3a9b9c1c5fa  libgomp/scope.c
  9ffecc292626b5af7bc2f960a91a888c  libgomp/sections.c
  861663907e49ce3b02add14fc05a078c  libgomp/secure_getenv.h
+ 2d0a58628ab05794e636d12072e30552  libgomp/simple-allocator.c
  1a659741443df556b83c96cee6a23405  libgomp/single.c
  6197f832f373fba082a73a413e58be94  libgomp/splay-tree.c
  6562eda8ef1a1fd0a2a0a9e5621f684b  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! 908aab038f46f547ea8ec03282a3ccda  libgomp/target.c
  8f03749b5187ce4fb4dce3f7d5b2d9f7  libgomp/task.c
  865cdfdff84a15247efff279e8aca77f  libgomp/taskloop.c
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
*************** ec937bfca18dd06fec284c99ab526c23  libgom
*** 135834,135840 ****
  3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  b83d91a3813efbf02b55efe0117eff39  libgomp/testsuite/libgomp.c++/target-flex-10.C
  1990d65ffda2ff57200ec61c5027c0bd  libgomp/testsuite/libgomp.c++/target-flex-100.C
! 8b43f813306c222879f3b03bd3e728cc  libgomp/testsuite/libgomp.c++/target-flex-101.C
  fe4d74edf4ec5a3375e54ddd28a8796a  libgomp/testsuite/libgomp.c++/target-flex-11.C
  0a4ab3e4091f832114123d88913f8a70  libgomp/testsuite/libgomp.c++/target-flex-12.C
  5ff5527ae7d116bd8013ae15730da4b2  libgomp/testsuite/libgomp.c++/target-flex-2000.C
--- 136003,136009 ----
  3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  b83d91a3813efbf02b55efe0117eff39  libgomp/testsuite/libgomp.c++/target-flex-10.C
  1990d65ffda2ff57200ec61c5027c0bd  libgomp/testsuite/libgomp.c++/target-flex-100.C
! a8dd26147de28a91290fbc5cc546736c  libgomp/testsuite/libgomp.c++/target-flex-101.C
  fe4d74edf4ec5a3375e54ddd28a8796a  libgomp/testsuite/libgomp.c++/target-flex-11.C
  0a4ab3e4091f832114123d88913f8a70  libgomp/testsuite/libgomp.c++/target-flex-12.C
  5ff5527ae7d116bd8013ae15730da4b2  libgomp/testsuite/libgomp.c++/target-flex-2000.C
*************** abc1f024f366b278405b58df17afe0cd  libgom
*** 135881,135888 ****
  31a5c6ae9e1ebbc7d44b7d279bd40b98  libgomp/testsuite/libgomp.c++/target-std__complex.C
  983898d3a6fba310a33cc99a690e61cd  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent-usm.C
  38a9fa8246afedbc1c1efbe0e9ec1e36  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
! 004d662871b98820d0b7077a8db62a9f  libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
! 9284d636ffccb124c0191ed0a94dfb39  libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
  1f377677e5b07bccd785fa7f52568e33  libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
  d9a8a0d044e2015bfbdf791ead014021  libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
  35f877f9bcff198b68b3c7adbe76cc90  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C
--- 136050,136057 ----
  31a5c6ae9e1ebbc7d44b7d279bd40b98  libgomp/testsuite/libgomp.c++/target-std__complex.C
  983898d3a6fba310a33cc99a690e61cd  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent-usm.C
  38a9fa8246afedbc1c1efbe0e9ec1e36  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
! f57f5eff5728eebc9b6e6d8b443459f4  libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
! 94776317db2fe825d2635d29d6769208  libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
  1f377677e5b07bccd785fa7f52568e33  libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
  d9a8a0d044e2015bfbdf791ead014021  libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
  35f877f9bcff198b68b3c7adbe76cc90  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C
*************** caca1aa745e9df985dc965e87fc08c02  libgom
*** 136331,136342 ****
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
  35d465afcc91bf0b02e92e10cee649bb  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
! 1b1448194a2648787b620162406ed357  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
! 2e4c784bf6bd6891b8037bd6337a9224  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
! 5a9f7f1502d9a434247172a6c00396d6  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
! f4542a5373ce7b71dc15b9236833757f  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
! e8a461cfa8220a9d4229d0f8b11288fa  libgomp/testsuite/libgomp.c/alloc-pinned-5.c
! 9207105618a50b5da9c6ac47f84ec3a7  libgomp/testsuite/libgomp.c/alloc-pinned-6.c
  fcaebb2fe201ab9ca6d533e58c770386  libgomp/testsuite/libgomp.c/allocate-4.c
  c0ceb47334b72704392f09754c63b979  libgomp/testsuite/libgomp.c/allocate-5.c
  d0031291832976a7279d71c7c7337482  libgomp/testsuite/libgomp.c/allocate-6.c
--- 136500,136512 ----
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
  35d465afcc91bf0b02e92e10cee649bb  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
! 72954694e3579e47a13b08306be48420  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
! ad1652b5597cee1d0b32c5a47dde101b  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
! 237dd2407f06187c8d624632bc613b94  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
! 69a212f1a032283f3a6c6a993af6f94c  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
! b337fafcc4aab6ca2cf6819ff7155330  libgomp/testsuite/libgomp.c/alloc-pinned-5.c
! 8c364567b9614616b3e1cc9937fd6a6f  libgomp/testsuite/libgomp.c/alloc-pinned-6.c
! 45e5d9ef68ea13e0845f6e419a059d85  libgomp/testsuite/libgomp.c/alloc-pinned-8.c
  fcaebb2fe201ab9ca6d533e58c770386  libgomp/testsuite/libgomp.c/allocate-4.c
  c0ceb47334b72704392f09754c63b979  libgomp/testsuite/libgomp.c/allocate-5.c
  d0031291832976a7279d71c7c7337482  libgomp/testsuite/libgomp.c/allocate-6.c
*************** ee1bca91c6e853556cd65170329412cb  libgom
*** 136529,136534 ****
--- 136699,136707 ----
  ee6acb3089ae16656715ede5acd4a769  libgomp/testsuite/libgomp.c/interop-hipblas-nvidia-no-hip-header.c
  73994b391db11a9fa8269d17021fc731  libgomp/testsuite/libgomp.c/interop-hipblas.h
  b892336be3124a54b2f99643e2295959  libgomp/testsuite/libgomp.c/interop-hsa.c
+ 0be7b4168859c7fdc935647d38a1243c  libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c
+ 167594cb924bb2bbf89a602ff11a5ba5  libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c
+ 1d9b8cb8ea7aa55edcbea1a90ef9e9f9  libgomp/testsuite/libgomp.c/ipcp-cb1.c
  60295e2f73526594a93b118333ca7ff3  libgomp/testsuite/libgomp.c/lib-1.c
  af9d852282ae3da623a0727f1df789ab  libgomp/testsuite/libgomp.c/lib-2.c
  954e001a86eca6e39424518360cc7b36  libgomp/testsuite/libgomp.c/linear-1.c
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 140434,140440 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 955289057db8c1182b9403d0efb5b326  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 140607,140613 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 4f340cb0553e8e3e545eaff87dc4b073  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** ed199f6700a016816d625b286bf25ead  libstd
*** 140657,140664 ****
  8913cf14e458f9cfae745a0d939c97e4  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  e29a526ec89ed09bf39b0aa4fd4c5d79  libstdc++-v3/config/os/vxworks/ctype_inline.h
  788b66dfe66c25c24ff60bf253c9c7ff  libstdc++-v3/config/os/vxworks/os_defines.h
! f38ad30a37abf805519c886e83a40323  libstdc++-v3/configure
! 9cf09f646585c31e16aff1677b791b46  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
  55ecb88d091a7c97abd35f475cf97c2b  libstdc++-v3/doc/Makefile.am
--- 140830,140837 ----
  8913cf14e458f9cfae745a0d939c97e4  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  e29a526ec89ed09bf39b0aa4fd4c5d79  libstdc++-v3/config/os/vxworks/ctype_inline.h
  788b66dfe66c25c24ff60bf253c9c7ff  libstdc++-v3/config/os/vxworks/os_defines.h
! 354ac6316e291b8feb9cb3ef5957429c  libstdc++-v3/configure
! d1b8e66f3a21a1e0ec3fdd829dea566c  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
  55ecb88d091a7c97abd35f475cf97c2b  libstdc++-v3/doc/Makefile.am
*************** b3da24b61a3e8219dde982b2734707ec  libstd
*** 141144,141150 ****
  02a8c025eda02a35e6a87a42955684fc  libstdc++-v3/include/bits/funcref_impl.h
  bda3ca60f2214f1bd6656e6612aff428  libstdc++-v3/include/bits/functexcept.h
  68bc2b242e62bd27a00ee3f202c736de  libstdc++-v3/include/bits/functional_hash.h
! 76e7e84f1fdf371c5315513dc4ba2f07  libstdc++-v3/include/bits/funcwrap.h
  f656180781457f5f36a26b5902da4b6f  libstdc++-v3/include/bits/gslice.h
  a94b98a38c3eb27aa6644a5fb468c9de  libstdc++-v3/include/bits/gslice_array.h
  bd1878ee12df5790539afd0dae94ae20  libstdc++-v3/include/bits/hashtable.h
--- 141317,141323 ----
  02a8c025eda02a35e6a87a42955684fc  libstdc++-v3/include/bits/funcref_impl.h
  bda3ca60f2214f1bd6656e6612aff428  libstdc++-v3/include/bits/functexcept.h
  68bc2b242e62bd27a00ee3f202c736de  libstdc++-v3/include/bits/functional_hash.h
! 3283c5ed367802f57dec4ff2994a8f85  libstdc++-v3/include/bits/funcwrap.h
  f656180781457f5f36a26b5902da4b6f  libstdc++-v3/include/bits/gslice.h
  a94b98a38c3eb27aa6644a5fb468c9de  libstdc++-v3/include/bits/gslice_array.h
  bd1878ee12df5790539afd0dae94ae20  libstdc++-v3/include/bits/hashtable.h
*************** ca1849d33a84098658d3310146abebf0  libstd
*** 141225,141231 ****
  ce452f748be2c455c1ac0f358be411e7  libstdc++-v3/include/bits/stl_function.h
  741f55b507d0ff8007014ce8927ac8d8  libstdc++-v3/include/bits/stl_heap.h
  7f15896f0e815aaa22a610841ad076bd  libstdc++-v3/include/bits/stl_iterator.h
! 87d9f025d723b4f65e48c95384b31c20  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  54bf96df9d7600b71ab8d00f28c7e6de  libstdc++-v3/include/bits/stl_iterator_base_types.h
  4f93444bfce714698d1c4bd36a134164  libstdc++-v3/include/bits/stl_list.h
  557f6acdb64d284dc278855f99d7d509  libstdc++-v3/include/bits/stl_map.h
--- 141398,141404 ----
  ce452f748be2c455c1ac0f358be411e7  libstdc++-v3/include/bits/stl_function.h
  741f55b507d0ff8007014ce8927ac8d8  libstdc++-v3/include/bits/stl_heap.h
  7f15896f0e815aaa22a610841ad076bd  libstdc++-v3/include/bits/stl_iterator.h
! 8985b7e75e42ac4e5951cc4e88df3455  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  54bf96df9d7600b71ab8d00f28c7e6de  libstdc++-v3/include/bits/stl_iterator_base_types.h
  4f93444bfce714698d1c4bd36a134164  libstdc++-v3/include/bits/stl_list.h
  557f6acdb64d284dc278855f99d7d509  libstdc++-v3/include/bits/stl_map.h
*************** a229b5c8ad2904a3b3173239225596c4  libstd
*** 141264,141271 ****
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  6adf2ccea897e9d5fc8e7650eceac96f  libstdc++-v3/include/bits/vector.tcc
! 942870c0f95747e137e62c708c887d7b  libstdc++-v3/include/bits/version.def
! d4831fb06d804438780988da7f8bc822  libstdc++-v3/include/bits/version.h
  602b081d70553843ef4511ca8ec803c9  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
--- 141437,141444 ----
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  6adf2ccea897e9d5fc8e7650eceac96f  libstdc++-v3/include/bits/vector.tcc
! c8ed4dd1823de639d469ab2d591170e9  libstdc++-v3/include/bits/version.def
! 6857bbb75fc262ffe484082f2b7ee3b9  libstdc++-v3/include/bits/version.h
  602b081d70553843ef4511ca8ec803c9  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
*************** c2e511ae49957a9f02446e544d201582  libstd
*** 141835,141841 ****
  344cb326ef175bcef751ab8a66184c26  libstdc++-v3/include/std/format
  fa4316749922813b44f2ee282452813b  libstdc++-v3/include/std/forward_list
  e790ae6877466aa86b47f36d201e8563  libstdc++-v3/include/std/fstream
! 2e2a3e068304b1e949291e4e2e32c780  libstdc++-v3/include/std/functional
  d472ad4b1b5c12e2f731980802d15b50  libstdc++-v3/include/std/future
  d91bc94f2a9c1ff7f642d23c27ec66ae  libstdc++-v3/include/std/generator
  5e8806ffa7fe2e4b79b8323d11609fda  libstdc++-v3/include/std/inplace_vector
--- 142008,142014 ----
  344cb326ef175bcef751ab8a66184c26  libstdc++-v3/include/std/format
  fa4316749922813b44f2ee282452813b  libstdc++-v3/include/std/forward_list
  e790ae6877466aa86b47f36d201e8563  libstdc++-v3/include/std/fstream
! d967de4f74a729cb13cc8a72d4808846  libstdc++-v3/include/std/functional
  d472ad4b1b5c12e2f731980802d15b50  libstdc++-v3/include/std/future
  d91bc94f2a9c1ff7f642d23c27ec66ae  libstdc++-v3/include/std/generator
  5e8806ffa7fe2e4b79b8323d11609fda  libstdc++-v3/include/std/inplace_vector
*************** f4af31191dea172207576960ad71d42d  libstd
*** 141856,141867 ****
  154adad15522042ed2886d969f645c0b  libstdc++-v3/include/std/mutex
  ef0d0725f5b70a4c1b5b62b84b2b63f7  libstdc++-v3/include/std/numbers
  b944796362aa39fc1cba3747d2247464  libstdc++-v3/include/std/numeric
! 5d818ee7f1f99ab14a672f8417eadf33  libstdc++-v3/include/std/optional
  050dc2c12dd36f95d5fbe750ff182a38  libstdc++-v3/include/std/ostream
  fd773662a4b346f11b66520f34a8898e  libstdc++-v3/include/std/print
  ba14be3c6ffe74b2ec997245d3a94e3d  libstdc++-v3/include/std/queue
  553e2f4fd74c3e0258a774ab683470fd  libstdc++-v3/include/std/random
! b2c8adc712b229eb8f3ea4f887d6c1ad  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
--- 142029,142040 ----
  154adad15522042ed2886d969f645c0b  libstdc++-v3/include/std/mutex
  ef0d0725f5b70a4c1b5b62b84b2b63f7  libstdc++-v3/include/std/numbers
  b944796362aa39fc1cba3747d2247464  libstdc++-v3/include/std/numeric
! e36e42fb83bce12c59044770c8daa047  libstdc++-v3/include/std/optional
  050dc2c12dd36f95d5fbe750ff182a38  libstdc++-v3/include/std/ostream
  fd773662a4b346f11b66520f34a8898e  libstdc++-v3/include/std/print
  ba14be3c6ffe74b2ec997245d3a94e3d  libstdc++-v3/include/std/queue
  553e2f4fd74c3e0258a774ab683470fd  libstdc++-v3/include/std/random
! 83e2be1a27094f36ebe067f1b410258f  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
*************** b9cf79d1edae688927d40109f321047a  libstd
*** 141884,141890 ****
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  0ed8103f880c65d72326076bb36a84d2  libstdc++-v3/include/std/thread
! 6a912165950b41a11eba8f84922e548d  libstdc++-v3/include/std/tuple
  5ea768fa6c707d59799120d2c8762c2a  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
--- 142057,142063 ----
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  0ed8103f880c65d72326076bb36a84d2  libstdc++-v3/include/std/thread
! 2edc4f11cac1e8041949b063fc20d943  libstdc++-v3/include/std/tuple
  5ea768fa6c707d59799120d2c8762c2a  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
*************** ba1de75ac9c1bb7d2506c503fe17708a  libstd
*** 142198,142204 ****
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 02539ea06c5b53986174eb3467525d25  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  757f1e829f27dedf5e8d7d83b358ad27  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
--- 142371,142377 ----
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! eb4547a8640586c199c26fbc28917563  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  757f1e829f27dedf5e8d7d83b358ad27  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
*************** cf0e17bbd866d9cd26def3c1b550256c  libstd
*** 142918,142924 ****
  bb5934b398d6cba561011cc412b7862b  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
  a170197e1c15888e69e8f42454c4eb22  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
  2f63cd2255fde6cd4f014efb1ad34b27  libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
! bdc579b4b0831d9096219b9607d91d1d  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc
  a41d567a9f64dcc981f9f9fab7c2aa14  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp_neg.cc
  3069d4262424e54c9e41d54964effde3  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
  b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
--- 143091,143097 ----
  bb5934b398d6cba561011cc412b7862b  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
  a170197e1c15888e69e8f42454c4eb22  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
  2f63cd2255fde6cd4f014efb1ad34b27  libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
! 9e7467b91efad6132ff91d5e3fb0bc19  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc
  a41d567a9f64dcc981f9f9fab7c2aa14  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp_neg.cc
  3069d4262424e54c9e41d54964effde3  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
  b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
*************** b7e1e25aa8f6fddecd578ce1c23b63e2  libstd
*** 142927,142933 ****
  1a693160b90575d90d17b98c05d54334  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
  ca6516aefe54fd40ebaa1dafa0a11255  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
  3cfdb7914d47020c2f60f9d7e8289c83  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! a2cabdd81f7ffaa735fea49d1b3a8b76  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc
  28e8e9561e8b06ee357778c9794a1e18  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp_neg.cc
  24b9567e8fc21dd935610beedfbf85aa  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
  6bab66b664cfd3bdfffcc4a40e8765c9  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
--- 143100,143106 ----
  1a693160b90575d90d17b98c05d54334  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
  ca6516aefe54fd40ebaa1dafa0a11255  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
  3cfdb7914d47020c2f60f9d7e8289c83  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! e3d35ce505614a2cbd727c54c5b9a1dd  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc
  28e8e9561e8b06ee357778c9794a1e18  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp_neg.cc
  24b9567e8fc21dd935610beedfbf85aa  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
  6bab66b664cfd3bdfffcc4a40e8765c9  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
*************** ff6c4579fd9a68a2d44a0b8d16f91b70  libstd
*** 142959,142965 ****
  aa8d69634a029bc703f7e9108347b384  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
  09052f313029340fd1ab81b3fb208f6e  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
  09755c5f4b9f88cb66ad1af5db8c2de8  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 6e30c5232d6e71264472803c49008e6f  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
  3410c0de8790ca4226e2476bce02a139  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp_neg.cc
  e5ccaf5a6309a0cce460a0f74c59eeac  libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
  91cfdce8c977003b54d30276c3da4de7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
--- 143132,143138 ----
  aa8d69634a029bc703f7e9108347b384  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
  09052f313029340fd1ab81b3fb208f6e  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
  09755c5f4b9f88cb66ad1af5db8c2de8  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 93973eb2b0b058ba2f9918668a0cb089  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
  3410c0de8790ca4226e2476bce02a139  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp_neg.cc
  e5ccaf5a6309a0cce460a0f74c59eeac  libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
  91cfdce8c977003b54d30276c3da4de7  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
*************** f75ada21895a46443c0cf6c6c4272819  libstd
*** 142975,142981 ****
  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
! 82eda6ef185d2d0d4f09530af8f80924  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
  73764ddebcfc0e9d84061e05bfaa4b19  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
--- 143148,143154 ----
  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
! 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
  73764ddebcfc0e9d84061e05bfaa4b19  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
*************** a97926deeb496a76093d2fc9bb4fd879  libstd
*** 143430,143441 ****
  097a9abad6aa8ccc85f5f05001397c8c  libstdc++-v3/testsuite/20_util/optional/hash.cc
  4bdc5f9e73310dc13e1b0097f1271ee9  libstdc++-v3/testsuite/20_util/optional/hash_abi.cc
  8c2aae92ed69b08f9fc5de1a53024678  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! 093a5d32de57a454ec134f8d7a27885c  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
  711b1737b784a943fe0e18612d0dd1a2  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
  9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
  ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
  abdfe6ec8acaa93c094f5513ee2502e7  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
  72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
  b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
  d329c4116ef0ed3bde8a1621b437e53d  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
  f3be4bce8af5098a64d5fe459b66c06d  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
--- 143603,143616 ----
  097a9abad6aa8ccc85f5f05001397c8c  libstdc++-v3/testsuite/20_util/optional/hash.cc
  4bdc5f9e73310dc13e1b0097f1271ee9  libstdc++-v3/testsuite/20_util/optional/hash_abi.cc
  8c2aae92ed69b08f9fc5de1a53024678  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! d82fac592136454125081215fec7d85b  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
  711b1737b784a943fe0e18612d0dd1a2  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
+ 29ed82d468420f01e3cd6126d951df88  libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc
  9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
  ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
  abdfe6ec8acaa93c094f5513ee2502e7  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
  72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
+ 03e240776f123da22af94871caffdaef  libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc
  b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
  d329c4116ef0ed3bde8a1621b437e53d  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
  f3be4bce8af5098a64d5fe459b66c06d  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
*************** e87baf85f6f908100f4517bca965289b  libstd
*** 143446,143451 ****
--- 143621,143636 ----
  f7bf5549fbdf589877e5795a24ddd3fb  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
  5b53f481fa2d64eb63407e6f157fd182  libstdc++-v3/testsuite/20_util/optional/range.cc
+ 967125dab88015eb452595fd390f0a09  libstdc++-v3/testsuite/20_util/optional/ref/access.cc
+ f53ffa73b0b8e8a9ab79a524894a068b  libstdc++-v3/testsuite/20_util/optional/ref/assign.cc
+ bd414ec4d2462ae7da725365de0f5e90  libstdc++-v3/testsuite/20_util/optional/ref/cons.cc
+ fe19d06d22c3b55b10081f981785a437  libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc
+ 1410a12ff2fd816529907f1f735acf62  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc
+ e469884bd5532d34fd267ed91e027c30  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc
+ 4c85bf82ba5865e9b03b73a26fca6430  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc
+ 99b8425d41c0f1eb2e696b4d80a128c5  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc
+ 229107bde9f6acbba136aef11abecb7e  libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc
+ ae3463f6b09c982867e7bb69cd81b8df  libstdc++-v3/testsuite/20_util/optional/ref/relops.cc
  778cdd933451ff624c66d739396a7772  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
  9b0c6c5d74424693ceca6e756d7db294  libstdc++-v3/testsuite/20_util/optional/relops/104606.cc
  b835a2c9ae7cb087a474e27645b6d22c  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
*************** b835a2c9ae7cb087a474e27645b6d22c  libstd
*** 143455,143469 ****
  dbd726f4171f9408e8c45e2f2b43e9e5  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
  afabd677238f896ac79974ff6bd1b17c  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
  91928ddee4b1d4e6cc7c17b2deab803f  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! 4aa0afbba59f122b3ae230a227cad99e  libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc
  e3f072156342b6c647320bda37312faa  libstdc++-v3/testsuite/20_util/optional/relops/lwg3746.cc
  b236f0aad10a3a47d7a8537aa15ab65d  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! 047a9755231c4d777ed3a37878d2de09  libstdc++-v3/testsuite/20_util/optional/requirements.cc
! dbea899b3c675ff68a2a4b74a3b78bca  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
  0f3d45388c61f51b7f6df124ff507aaa  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
  001a4c1e1cdc738cbb337a561fdf8f1b  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
  87b708c4b560c5395ed1befec2f78c20  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
! d7fb62e17c0645e1ddf77323e882c43f  libstdc++-v3/testsuite/20_util/optional/version.cc
  822529fe3664026abe193e232af92eb1  libstdc++-v3/testsuite/20_util/owner_equal/cmp.cc
  d301a9d092bb6e8452ae1ebce956a4e2  libstdc++-v3/testsuite/20_util/owner_equal/noexcept.cc
  8d07ce272199306a82af04d41bd63384  libstdc++-v3/testsuite/20_util/owner_equal/version.cc
--- 143640,143654 ----
  dbd726f4171f9408e8c45e2f2b43e9e5  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
  afabd677238f896ac79974ff6bd1b17c  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
  91928ddee4b1d4e6cc7c17b2deab803f  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! 753ab76210515e9b25f48ae931061cd4  libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc
  e3f072156342b6c647320bda37312faa  libstdc++-v3/testsuite/20_util/optional/relops/lwg3746.cc
  b236f0aad10a3a47d7a8537aa15ab65d  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! a6e4231f1606e2be084d98550f7242cd  libstdc++-v3/testsuite/20_util/optional/requirements.cc
! 8cf4250c0d3c8da4f54daa35a750a07f  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
  0f3d45388c61f51b7f6df124ff507aaa  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
  001a4c1e1cdc738cbb337a561fdf8f1b  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
  87b708c4b560c5395ed1befec2f78c20  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
! 994370d459890b8851dc8986f1b8a0d4  libstdc++-v3/testsuite/20_util/optional/version.cc
  822529fe3664026abe193e232af92eb1  libstdc++-v3/testsuite/20_util/owner_equal/cmp.cc
  d301a9d092bb6e8452ae1ebce956a4e2  libstdc++-v3/testsuite/20_util/owner_equal/noexcept.cc
  8d07ce272199306a82af04d41bd63384  libstdc++-v3/testsuite/20_util/owner_equal/version.cc
*************** dc21c20f2d7856e37948bf45ae121685  libstd
*** 146171,146176 ****
--- 146356,146362 ----
  eae00516950607c685e378a89490d58a  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
  b66bcfae0b08efa092a933f5fe5f3c8f  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
  7c1d12ad44406aeb78b3ade48a98809e  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
+ dc380b1b03a5539c127b54a32a8d85b8  libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
  156b154caf5f9ae3faee45845e073878  libstdc++-v3/testsuite/23_containers/unordered_map/115420.cc
  f9ade43cfbd598c0df31fad70de89cb8  libstdc++-v3/testsuite/23_containers/unordered_map/115939.cc
*************** a7fdd4ef46d148c07b2306186a300c7e  libstd
*** 147024,147029 ****
--- 147210,147216 ----
  ccbbe51e2f862feaa3f4e717ef2f1cd6  libstdc++-v3/testsuite/24_iterators/range_generators/subrange.cc
  176a646a1b7559b26db737da71d00cd9  libstdc++-v3/testsuite/24_iterators/range_generators/synopsis.cc
  02f28e9c43d1c6870cb37adefe922b06  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
+ fac581d78e5a7c5f9a935172c7cda695  libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc
  5cbf58c7adc2c15f1617c8ae864e0224  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
  cd26960c17e204b57f33cfd344c760f5  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
  f3e9bd715fe13148d21f32ce807ccb06  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
*************** c1b23609040e813a09294f54b708a162  libstd
*** 151604,151609 ****
--- 151791,151797 ----
  7fdf1d111e43ff7fc5474a37da96e300  libstdc++-v3/testsuite/std/ranges/conv/version.cc
  d903595f1086b1a93019d4c8a97f5dad  libstdc++-v3/testsuite/std/ranges/empty_view.cc
  d3bf5960bbf322a75ce617acc8293723  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
+ 91eec91ca964d2a4edb128e7615988b2  libstdc++-v3/testsuite/std/ranges/indices/1.cc
  458c2a38c3af3c51339166319d994f97  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
  ace05307666a5a3bcf5266016bd4c004  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
  7edf268c8652a4341005faa640aef60b  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
diff -Nrcpad gcc-16-20251019/Makefile.in gcc-16-20251026/Makefile.in
*** gcc-16-20251019/Makefile.in	Sun Oct 19 22:33:15 2025
--- gcc-16-20251026/Makefile.in	Sun Oct 26 22:33:29 2025
*************** configure-target-libgcobol: maybe-all-ta
*** 69400,72642 ****
  
  configure-target-libstdc++-v3: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libsanitizer: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libvtv: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
- 
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
- 
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
  
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
  
  configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libobjc: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgo: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
- 
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
  
  configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libffi: maybe-all-target-libstdc++-v3
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-zlib: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-rda: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgm2: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libitm: maybe-all-target-libstdc++-v3
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libssp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libssp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libssp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libssp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic
- configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic
- configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic
- configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic
- configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic
- configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic
- configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgo: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgo: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgo: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgo: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic
- configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic
- configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic
- configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-winsup: maybe-all-stage1-target-libatomic
- configure-stage2-target-winsup: maybe-all-stage2-target-libatomic
- configure-stage3-target-winsup: maybe-all-stage3-target-libatomic
- configure-stage4-target-winsup: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libffi: maybe-all-stage1-target-libatomic
- configure-stage2-target-libffi: maybe-all-stage2-target-libatomic
- configure-stage3-target-libffi: maybe-all-stage3-target-libatomic
- configure-stage4-target-libffi: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-rda: maybe-all-stage1-target-libatomic
- configure-stage2-target-rda: maybe-all-stage2-target-libatomic
- configure-stage3-target-rda: maybe-all-stage3-target-libatomic
- configure-stage4-target-rda: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libada: maybe-all-stage1-target-libatomic
- configure-stage2-target-libada: maybe-all-stage2-target-libatomic
- configure-stage3-target-libada: maybe-all-stage3-target-libatomic
- configure-stage4-target-libada: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libitm: maybe-all-stage1-target-libatomic
- configure-stage2-target-libitm: maybe-all-stage2-target-libatomic
- configure-stage3-target-libitm: maybe-all-stage3-target-libatomic
- configure-stage4-target-libitm: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss
  
- @if gcc-bootstrap
- configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
- configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
- configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
- configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
- configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
- configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
- configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
- configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
- configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
- configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
- configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
- configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
- configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
- configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
- configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
- configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
- configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
- configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
- configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
- configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
- configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
- configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
- configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
- configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
- configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
- configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
- configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
- configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
- @endif gcc-bootstrap
- 
- @if gcc-no-bootstrap
- configure-target-libstdc++-v3: maybe-all-target-libatomic
- configure-target-libsanitizer: maybe-all-target-libatomic
- configure-target-libvtv: maybe-all-target-libatomic
- configure-target-libssp: maybe-all-target-libatomic
- configure-target-libbacktrace: maybe-all-target-libatomic
- configure-target-libquadmath: maybe-all-target-libatomic
- configure-target-libgfortran: maybe-all-target-libatomic
- configure-target-libobjc: maybe-all-target-libatomic
- configure-target-libgo: maybe-all-target-libatomic
- configure-target-libphobos: maybe-all-target-libatomic
- configure-target-libtermcap: maybe-all-target-libatomic
- configure-target-winsup: maybe-all-target-libatomic
- configure-target-libffi: maybe-all-target-libatomic
- configure-target-zlib: maybe-all-target-libatomic
- configure-target-rda: maybe-all-target-libatomic
- configure-target-libada: maybe-all-target-libatomic
- configure-target-libgm2: maybe-all-target-libatomic
- configure-target-libgomp: maybe-all-target-libatomic
- configure-target-libitm: maybe-all-target-libatomic
- configure-target-libgrust: maybe-all-target-libatomic
- @endif gcc-no-bootstrap
- 
  configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libgcobol: maybe-all-target-libstdc++-v3
  
  @if gcc-bootstrap
  configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
  configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
--- 69400,69454 ----
  
  configure-target-libstdc++-v3: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libsanitizer: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libvtv: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss
  
  
  
  configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libobjc: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgo: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
  
  
  configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libffi: maybe-all-target-libstdc++-v3
  
  configure-target-zlib: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-rda: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgm2: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libitm: maybe-all-target-libstdc++-v3
  
  configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss
  configure-target-libgcobol: maybe-all-target-libstdc++-v3
  
+ 
  @if gcc-bootstrap
  configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
  configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
*************** configure-target-libitm: maybe-all-targe
*** 72726,72732 ****
  configure-target-libgrust: maybe-all-target-libatomic
  @endif gcc-no-bootstrap
  
- 
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
  INSTALL_GDB_TK = @INSTALL_GDB_TK@
--- 69538,69543 ----
diff -Nrcpad gcc-16-20251019/Makefile.tpl gcc-16-20251026/Makefile.tpl
*** gcc-16-20251019/Makefile.tpl	Sun Oct 19 22:32:11 2025
--- gcc-16-20251026/Makefile.tpl	Sun Oct 26 22:32:31 2025
*************** configure-target-[+module+]: maybe-all-t
*** 2122,2127 ****
--- 2122,2128 ----
    ENDIF +][+ IF (lang-dep "cxx") +]
  configure-target-[+module+]: maybe-all-target-libstdc++-v3[+
    ENDIF +]
+ [+ ENDFOR target_modules +]
  
  @if gcc-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_atomic"))
    +][+ IF bootstrap +][+ FOR bootstrap_stage +]
*************** configure-stage[+id+]-target-[+module+]:
*** 2133,2139 ****
  configure-target-[+module+]: maybe-all-target-libatomic[+
    ENDIF +][+ ENDFOR target_modules +]
  @endif gcc-no-bootstrap
- [+ ENDFOR target_modules +]
  
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
--- 2134,2139 ----
diff -Nrcpad gcc-16-20251019/gcc/ChangeLog gcc-16-20251026/gcc/ChangeLog
*** gcc-16-20251019/gcc/ChangeLog	Sun Oct 19 22:32:11 2025
--- gcc-16-20251026/gcc/ChangeLog	Sun Oct 26 22:32:31 2025
***************
*** 1,3 ****
--- 1,468 ----
+ 2025-10-25  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/extend.texi (nocf_check): Fix syntax errors in example.
+ 
+ 2025-10-25  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_extract<mode><lasxhalf>): New define_expand.
+ 	(vec_extract_lo_<mode>): New define_insn_and_split.
+ 	(vec_extract_hi_<mode>): New define_insn.
+ 	* config/loongarch/loongarch-protos.h (loongarch_check_vect_par_cnst_half)
+ 	New function prototype.
+ 	* config/loongarch/loongarch.cc (loongarch_split_reduction):
+ 	Implement TARGET_VECTORIZE_SPLIT_REDUCTION.
+ 	(loongarch_check_vect_par_cnst_half): New function.
+ 	* config/loongarch/predicates.md
+ 	(vect_par_cnst_low_half): New predicate.
+ 	(vect_par_cnst_high_half): New predicate.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/114025
+ 	* gimple-range-fold.cc (fold_using_range::condexpr_adjust): Handle
+ 	the same ssa_name in the condition and the COND_EXPR better.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (operator_bitwise_and::wi_fold): Split signed
+ 	operations crossing zero into 2 operations.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/118254
+ 	PR tree-optimization/114331
+ 	* range-op.cc (operator_cast::fold_range): When VARYING is
+ 	reached, update the bitmask if we reach VARYING.
+ 	(operator_cast::op1_range): For truncating casts, create a
+ 	bitmask bit in LHS.
+ 
+ 2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (call_internal, call_value_internal,
+ 	sibcall_internal, sibcall_value_internal): Remove 'n'-constraint.
+ 
+ 2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*addsubx, *subsi3_from_const,
+ 	*xtensa_clamps, *andsi3_const_pow2_minus_one,
+ 	*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
+ 	*splice_bits, extvsi_internal, extzvsi_internal,
+ 	*extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx, insvsi, *lsiu, *ssiu,
+ 	*lsip, *ssip, *shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1,
+ 	*shlrd_const, *shlrd_per_byte_omit_AND, *masktrue_const_bitcmpl,
+ 	*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
+ 	*masktrue_const_shifted_mask, call_internal, call_value_internal,
+ 	sibcall_internal, sibcall_value_internal, entry,
+ 	*eqne_zero_masked_bits, *eqne_in_range): Remove 'i'-constraint.
+ 
+ 2025-10-24  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	PR middle-end/122392
+ 	* attr-callback.cc (callback_build_attr): Remove erroneous
+ 	annotation.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): SLP-ify reduction
+ 	operation processing a bit more.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122406
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Create
+ 	the SLP nodes for the conversions around the reduction
+ 	operation if required.
+ 
+ 2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR fortran/121452
+ 	* omp-low.cc (check_omp_nesting_restrictions): Accept an
+ 	OMP_STRUCTURED_BLOCK in a collapsed simd region and in an ordered loop.
+ 
+ 2025-10-24  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* match.pd: Fold VEC_PERM_EXPR chains implementing vector
+ 	concat-and-extract.
+ 
+ 2025-10-24  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (SET_CMODEL): Undefine before
+ 	(re)defining.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Better handling
+ 	of `((signed)x) < 0`.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/101024
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Special
+ 	case fp `a CMP b ? a : b` when not creating a min/max.
+ 	(strip_bit_not): Remove.
+ 	(invert_minmax_code): Remove.
+ 	(minmax_replacement): Remove.
+ 	(pass_phiopt::execute): Update pass comment.
+ 	Don't call minmax_replacement.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/101024
+ 	* fold-const.cc (minmax_from_comparison): New version that takes widest_int
+ 	instead of tree.
+ 	(minmax_from_comparison):  Call minmax_from_comparison for integer cst case.
+ 	* fold-const.h (minmax_from_comparison): New declaration.
+ 	* match.pd (`((signed)a </>= 0) ? min/max (a, c) : b`): New pattern.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add
+ 	__HAVE_FUNCTION_MULTI_VERSIONING macro.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (dispatch_function_versions): Remove
+ 	unnecessary sorting and data structure.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/122190
+ 	* config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
+ 	Dump function versions and the ordering.
+ 
+ 2025-10-23  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* match.pd: Add new pattern for round.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_loop_vec_info::slp_unrolling_factor): Remove.
+ 	(LOOP_VINFO_SLP_UNROLLING_FACTOR): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Adjust.
+ 	(vect_analyze_loop_2): Likewise.
+ 	* tree-vect-slp.cc (vect_make_slp_decision): Set
+ 	LOOP_VINFO_VECT_FACTOR directly.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Move vect_optimize_slp
+ 	after applying suggested_unroll_factor.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Deal with NULL
+ 	element in SLP_TREE_SCALAR_STMTS.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/101639
+ 	* config/i386/sse.md
+ 	(VI_AVX): New mode iterator.
+ 	(VI_AVX_CMP): Ditto.
+ 	(ssebytemode): Add V16HI, V32QI, V16QI.
+ 	(reduc_sbool_and_scal_<mode>): New expander.
+ 	(reduc_sbool_ior_scal_<mode>): Ditto.
+ 	(reduc_sbool_xor_scal_<mode>): Ditto.
+ 	(*eq<mode>3_2_negate): New pre_reload splitter.
+ 	(*ptest<mode>_ccz): Ditto.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/101639
+ 	* config/i386/sse.md
+ 	(reduc_sbool_and_scal_<mode>): New expander.
+ 	(reduc_sbool_ior_scal_<mode>): Ditto.
+ 	(reduc_sbool_xor_scal_<mode>): Ditto.
+ 
+ 2025-10-22  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
+ 	HOST_WIDE_INT_0U and HOST_WIDE_INT_M1U to initialize unsigned
+ 	HOST_WIDE_INT.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): Use SVE if
+ 	available.
+ 	* config/aarch64/aarch64-sve.md (*cmp<cmp_op><mode>_ptest): Rename ...
+ 	(@aarch64_pred_cmp<cmp_op><mode>_ptest): ... To this.
+ 	(reduc_sbool_xor_scal_<mode>): Rename ...
+ 	(@reduc_sbool_xor_scal_<mode>): ... To this.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.
+ 	* config/aarch64/iterators.md (VALLI): New.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Don't always require
+ 	IFN_VEC_SHL_INSERT when using reduc sbool optabs.
+ 
+ 2025-10-22  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt.urls: Regenerate.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122364
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Re-try
+ 	linearization on a conversion source.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122370
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Also update compute_vectype when demoting masks to an
+ 	integer vector.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122371
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Get
+ 	to the scalar def to replace via the scalar PHI backedge def.
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Do not
+ 	re-associate to for a reduction chain if a fold-left
+ 	reduction is required.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122365
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Convert all inputs.  Use the proper vector element sizes
+ 	for the elementwise reduction.
+ 
+ 2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Nova Lake.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Add Nova Lake.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_types):
+ 	Add INTEL_COREI7_NOVALAKE.
+ 	* config.gcc: Add -march=novalake.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
+ 	novalake.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
+ 	* config/i386/i386-options.cc (processor_cost_table): Ditto.
+ 	(m_NOVALAKE): New.
+ 	(m_CORE_HYBRID): Add novalake.
+ 	* config/i386/i386.h (enum processor_type): Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Correct
+ 	the logic for unknown model number cpu guess value.
+ 
+ 2025-10-22  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/122320
+ 	* config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): New define_insn_and_split.
+ 
+ 2025-10-22  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* config/i386/i386-jit.cc: Mark new float types as supported.
+ 
+ 2025-10-21  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* config.gcc (jit_target_objs): Don't set this variable since
+ 	the object files don't exist.
+ 
+ 2025-10-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (timode_concatdi_p): New
+ 	function to recognize the various variants of *concatditi3_[1-7].
+ 	(scalar_chain::add_insn): Like VEC_SELECT, ZERO_EXTEND and
+ 	timode_concatdi_p instructions don't require their input
+ 	operands to be converted (to TImode).
+ 	(timode_scalar_chain::compute_convert_gain): Split/clone XOR and
+ 	IOR cases from AND case, to handle timode_concatdi_p costs.
+ 	<case PLUS>: Handle timode_concatdi_p conversion costs.
+ 	<case ZERO_EXTEND>: Provide costs of DImode to TImode extension.
+ 	(timode_convert_concatdi): Helper function to transform
+ 	a *concatditi3 instruction into a vec_concatv2di instruction.
+ 	(timode_scalar_chain::convert_insn): Split/clone XOR and IOR
+ 	cases from ANS case, to handle timode_concatdi_p using the new
+ 	timode_convert_concatdi helper function.
+ 	<case ZERO_EXTEND>: Convert zero_extendditi2 to *vec_concatv2di_0.
+ 	<case PLUS>: Handle timode_concatdi_p using the new
+ 	timode_convert_concatdi helper function.
+ 	(timode_scalar_to_vector_candidate_p): Support timode_concatdi_p
+ 	instructions in IOR, XOR and PLUS cases.
+ 	<case ZERO_EXTEND>: Consider zero extension of a register from
+ 	DImode to TImode to be a candidate.
+ 
+ 2025-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120687
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): When
+ 	there's no natural reduction chain see if vect_slp_linearize_chain
+ 	can recover one and built the SLP instance manually in that
+ 	case.
+ 	(vect_schedule_slp): Deal with NULL lanes when looking for
+ 	stores to remove.
+ 	* tree-vect-loop.cc (vect_transform_cycle_phi): Dump when we
+ 	are successfully transforming a reduction chain.
+ 
+ 2025-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_partial_epilog): Pun back
+ 	to the requested type if necessary.
+ 
+ 2025-10-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/95699
+ 	PR tree-optimization/101024
+ 	PR tree-optimization/110068
+ 	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Treat
+ 	`(signed)x </>= 0` as `x >=/< SIGNED_TYPE_MIN`
+ 
+ 2025-10-21  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT):
+ 	Redefine.
+ 
+ 2025-10-21  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC):
+ 	Remove guard on -fself-tests and replace %:getenv(VSB_DIR) by
+ 	sysroot references.
+ 
+ 2025-10-20  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* ipa-fnsummary.cc (redirect_to_unreachable): Purge callback
+ 	edges when redirecting the carrying edge.
+ 	(analyze_function_body): Fix typo.
+ 
+ 2025-10-20  Svante Signell  <svante.signell@gmail.com>
+ 
+ 	PR go/104290
+ 	* config/gnu.h (OPTION_GLIBC_P, OPTION_GLIBC): Define.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/constraints.md (R, U):
+ 	Change define_memory_constraint to define_special_memory_constraint.
+ 	* config/xtensa/xtensa.md
+ 	(movsi_internal, movhi_internal, movqi_internal):
+ 	Rearrange their alternatives in the order of constant assignment, register-
+ 	register move, load, store and special.  And also consolidate overlapping
+ 	alternatives.
+ 	(movsf_internal): Rearrange the alternatives as above, and remove the '^'
+ 	alternative character which is no longer needed.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(constantsynth_method_const16): New.
+ 	(constantsynth_methods): Append constantsynth_method_const16().
+ 	(constantsynth_info): Add cost calculation for full-word constant
+ 	assignment when TARGET_CONST16 is enabled.
+ 	(constantsynth_pass1): Change it so that it works regardless of
+ 	TARGET_CONST16.
+ 	* config/xtensa/xtensa.md (*xtensa_const16): New.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (do_largeconst):
+ 	Change split_DI_SF_DF_const() to be called unconditionally.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config.gcc (powerpc*-wrs-vxworks7r*): Add linux-protos.h
+ 	to tm_p_file.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Only
+ 	builtin_define TOOL and TOOL_FAMILY for !TARGET_VXWORKS7.
+ 	Augment comment on VXWORKS_PERSONALITY.
+ 	* config/vxworks/vxworks-predef.h: Infer TOOL and TOOL_FAMILY
+ 	from the VSB autoconf.h	when we have one, determined by the presence
+ 	of a _VSB_CONFIG_FILE definition.
+ 
+ 2025-10-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro.
+ 	* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p):
+ 	Add feature check condition.
+ 	(aarch64_retrieve_sysreg): Likewise.
+ 	* config/aarch64/aarch64.opt (menable-sysreg-checking):
+ 	Define new flag.
+ 	* doc/invoke.texi (menable-sysreg-checking): Document new flag.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121631
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	When the reduction operation invokes UB on signed overflow
+ 	make sure to perform operations with it on an unsigned type.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/101639
+ 	PR tree-optimization/103495
+ 	* tree-vectorizer.h (vect_reduc_info_s): Add reduc_type_for_mask.
+ 	(VECT_REDUC_INFO_VECTYPE_FOR_MASK): New.
+ 	* tree-vect-patterns.cc (vect_determine_mask_precision):
+ 	Return whether the mask precision changed.
+ 	(vect_determine_precisions): Iterate mask precision computation
+ 	for loop vectorization.
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction): Properly
+ 	convert non-mask initial values to a mask initial def for
+ 	the reduction.
+ 	(sbool_reduction_fn_for_fn): New function.
+ 	(vect_create_epilog_for_reduction): For a mask input convert
+ 	it to the vector type analysis decided to use.  Use a regular
+ 	conversion for the final convert to the scalar code type.
+ 	(vectorizable_reduction): Support mask reductions.  Verify
+ 	we can compute a data vector from the mask result or a direct
+ 	maks reduction is provided by the target.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/md.texi (reduc_sbool_{and,ior,xor}_scal_<mode>): Document.
+ 	* optabs.def (reduc_sbool_and_scal_optab,
+ 	reduc_sbool_ior_scal_optab, reduc_sbool_xor_scal_optab): New.
+ 	* internal-fn.def (REDUC_SBOOL_AND, REDUC_SBOOL_IOR,
+ 	REDUC_SBOO_XOR): Likewise.
+ 	* internal-fn.cc (reduc_sbool_direct): New initializer.
+ 	(expand_reduc_sbool_optab_fn): New expander.
+ 	(direct_reduc_sbool_optab_supported_p): New.
+ 
+ 2025-10-20  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/99930
+ 	PR target/122323
+ 	* config/i386/i386-expand.cc (ix86_expand_copysign): Swap
+ 	operands[1] with operands[2].  Optimize copysign (x, const_double)
+ 	instead of copysign (const_double, x).
+ 	* config/i386/i386.md (copysign<mode>3): Swap constraints for
+ 	operands[1] and operands[2].
+ 
+ 2025-10-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): Also
+ 	handle PLUS.
+ 	* config/avr/avr.md (pixaop): New code iterator for PLUS,
+ 	IOR, XOR, AND.
+ 	(nzb=1 insns): Use pixaop instead of bitop code iterator.
+ 	Handle PLUS in outputs.
+ 
  2025-10-18  Mark Wielaard  <mark@klomp.org>
  
  	* common.opt.urls: Regenerate.
diff -Nrcpad gcc-16-20251019/gcc/DATESTAMP gcc-16-20251026/gcc/DATESTAMP
*** gcc-16-20251019/gcc/DATESTAMP	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/DATESTAMP	Sun Oct 26 22:32:31 2025
***************
*** 1 ****
! 20251019
--- 1 ----
! 20251026
diff -Nrcpad gcc-16-20251019/gcc/ada/ChangeLog gcc-16-20251026/gcc/ada/ChangeLog
*** gcc-16-20251019/gcc/ada/ChangeLog	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/ChangeLog	Sun Oct 26 22:32:31 2025
***************
*** 1,3 ****
--- 1,82 ----
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/80033
+ 	* gcc-interface/Makefile.in (force): Restore.
+ 
+ 2025-10-24  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/80033
+ 	* gcc-interface/Makefile.in (deftarg.o): Delete.
+ 	(init-vxsim.o): Likewise.
+ 	(force): Likewise.
+ 
+ 2025-10-24  Mivirl  <octoberstargazer7405@mivirl.dev>
+ 
+ 	PR ada/122367
+ 	* rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection
+ 	of quoted arguments.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/118782
+ 	* styleg.adb (Is_Box_Comment): Also stop the loop at EOF.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113516
+ 	* s-oscons-tmplt.c [_WIN32]: Undefine POLLPRI before redefining it.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/98879
+ 	* terminals.c (__gnat_setup_child_communication) [_WIN32]: Add else
+ 	blocks in the processing of the data returned by ReadFile.
+ 
+ 2025-10-24  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/81087
+ 	* gnatlink.adb (Is_Prefix): Move around, streamline and return false
+ 	when the prefix is not strict.
+ 	(Gnatlink): Fix other instances of incorrect lower bound assumption.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/102078
+ 	* affinity.c (__gnat_set_affinity_mask): Add U qualifier.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/32318
+ 	* libgnat/g-catiio.adb (Image_Helper) <'c'>: Fix comment.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/68179
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): Build an initialization
+ 	procedure for a type derived from String declared with the aspect
+ 	Default_Aspect_Component_Value.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/52319
+ 	* sem_ch7.adb (Uninstall_Declarations): Use direct test on Nkind
+ 	to spot operators.
+ 	* sem_ch8.adb (End_Use_Package): Also test the Etype of operators
+ 	to spot those which are primitive operators of use-visible types.
+ 
+ 2025-10-20  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/87777
+ 	* gnatchop.adb: Add with clause for Osint.
+ 	(Locate_Executable): Delete.
+ 	(Gnatchop): Use Osint.Program_Name and Locate_Exec_On_Path instead
+ 	of Locate_Executable to locate GCC's driver executable.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/107536
+ 	* exp_ch2.adb (Expand_Renaming): Mark the entity as referenced.
+ 
  2025-10-17  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/122295
diff -Nrcpad gcc-16-20251019/gcc/ada/affinity.c gcc-16-20251026/gcc/ada/affinity.c
*** gcc-16-20251019/gcc/ada/affinity.c	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/affinity.c	Sun Oct 26 22:32:31 2025
*************** __gnat_set_affinity_mask (TASK_ID tid, u
*** 56,62 ****
    CPUSET_ZERO(cpuset);
  
    for (index = 0; index < sizeof (unsigned) * 8; index++)
!     if (mask & (1 << index))
        CPUSET_SET(cpuset, index);
  
    return taskCpuAffinitySet (tid, cpuset);
--- 56,62 ----
    CPUSET_ZERO(cpuset);
  
    for (index = 0; index < sizeof (unsigned) * 8; index++)
!     if (mask & (1U << index))
        CPUSET_SET(cpuset, index);
  
    return taskCpuAffinitySet (tid, cpuset);
diff -Nrcpad gcc-16-20251019/gcc/ada/exp_ch2.adb gcc-16-20251026/gcc/ada/exp_ch2.adb
*** gcc-16-20251019/gcc/ada/exp_ch2.adb	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/exp_ch2.adb	Sun Oct 26 22:32:31 2025
*************** package body Exp_Ch2 is
*** 706,714 ****
        T : constant Entity_Id := Etype (N);
  
     begin
        Rewrite (N, New_Copy_Tree (Renamed_Object (E)));
  
!       --  We mark the copy as unanalyzed, so that it is sure to be reanalyzed
        --  at the top level. This is needed in the packed case since we
        --  specifically avoided expanding packed array references when the
        --  renaming declaration was analyzed.
--- 706,720 ----
        T : constant Entity_Id := Etype (N);
  
     begin
+       --  Mark the entity as referenced since this reference is going away
+ 
+       Set_Referenced (E);
+ 
+       --  Now rewrite the reference as a copy of the renamed object
+ 
        Rewrite (N, New_Copy_Tree (Renamed_Object (E)));
  
!       --  Mark the copy as unanalyzed to make sure that it is reanalyzed
        --  at the top level. This is needed in the packed case since we
        --  specifically avoided expanding packed array references when the
        --  renaming declaration was analyzed.
diff -Nrcpad gcc-16-20251019/gcc/ada/exp_ch3.adb gcc-16-20251026/gcc/ada/exp_ch3.adb
*** gcc-16-20251019/gcc/ada/exp_ch3.adb	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/exp_ch3.adb	Sun Oct 26 22:32:31 2025
*************** package body Exp_Ch3 is
*** 5537,5543 ****
              --  initialize scalars mode, and these types are treated specially
              --  and do not need initialization procedures.
  
!             elsif Is_Standard_String_Type (Base) then
                 null;
  
              --  Otherwise we have to build an init proc for the subtype
--- 5537,5545 ----
              --  initialize scalars mode, and these types are treated specially
              --  and do not need initialization procedures.
  
!             elsif Is_Standard_String_Type (Base)
!               and then No (Default_Aspect_Component_Value (Base))
!             then
                 null;
  
              --  Otherwise we have to build an init proc for the subtype
diff -Nrcpad gcc-16-20251019/gcc/ada/gcc-interface/Makefile.in gcc-16-20251026/gcc/ada/gcc-interface/Makefile.in
*** gcc-16-20251019/gcc/ada/gcc-interface/Makefile.in	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/gcc-interface/Makefile.in	Sun Oct 26 22:32:31 2025
*************** adadecode.o : adadecode.c adadecode.h
*** 905,911 ****
  aux-io.o  : aux-io.c
  argv.o    : argv.c
  cal.o     : cal.c
- deftarg.o : deftarg.c
  errno.o   : errno.c
  exit.o    : adaint.h exit.c
  expect.o  : expect.c
--- 905,910 ----
*************** init.o    : init.c adaint.h raise.h
*** 938,947 ****
  	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
  
- init-vxsim.o : init-vxsim.c
- 	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
- 	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
- 
  initialize.o : initialize.c raise.h
  	$(CC) -c $(ALL_CFLAGS) $(ADA_CFLAGS) \
  	         $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
--- 937,942 ----
diff -Nrcpad gcc-16-20251019/gcc/ada/gnatchop.adb gcc-16-20251026/gcc/ada/gnatchop.adb
*** gcc-16-20251019/gcc/ada/gnatchop.adb	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/gnatchop.adb	Sun Oct 26 22:32:31 2025
*************** with GNAT.OS_Lib;                use GNA
*** 36,41 ****
--- 36,42 ----
  with GNAT.Heap_Sort_G;
  with GNAT.Table;
  
+ with Osint;
  with Switch;                     use Switch;
  with Types;
  
*************** procedure Gnatchop is
*** 44,55 ****
     Config_File_Name : constant String_Access := new String'("gnat.adc");
     --  The name of the file holding the GNAT configuration pragmas
  
!    Gcc : String_Access := new String'("gcc");
     --  May be modified by switch --GCC=
  
-    Gcc_Set : Boolean := False;
-    --  True if a switch --GCC= is used
- 
     Gnat_Cmd : String_Access;
     --  Command to execute the GNAT compiler
  
--- 45,53 ----
     Config_File_Name : constant String_Access := new String'("gnat.adc");
     --  The name of the file holding the GNAT configuration pragmas
  
!    Gcc : String_Access := null;
     --  May be modified by switch --GCC=
  
     Gnat_Cmd : String_Access;
     --  Command to execute the GNAT compiler
  
*************** procedure Gnatchop is
*** 222,233 ****
                                         Integer'Image
                                           (Maximum_File_Name_Length);
  
-    function Locate_Executable
-      (Program_Name    : String;
-       Look_For_Prefix : Boolean := True) return String_Access;
-    --  Locate executable for given program name. This takes into account
-    --  the target-prefix of the current command, if Look_For_Prefix is True.
- 
     subtype EOL_Length is Natural range 0 .. 2;
     --  Possible lengths of end of line sequence
  
--- 220,225 ----
*************** procedure Gnatchop is
*** 492,567 ****
            Unit.Table (Sorted_Units.Table (U + 1)).File_Name.all;
     end Is_Duplicated;
  
-    -----------------------
-    -- Locate_Executable --
-    -----------------------
- 
-    function Locate_Executable
-      (Program_Name    : String;
-       Look_For_Prefix : Boolean := True) return String_Access
-    is
-       Gnatchop_Str    : constant String := "gnatchop";
-       Current_Command : constant String := Normalize_Pathname (Command_Name);
-       End_Of_Prefix   : Natural;
-       Start_Of_Prefix : Positive;
-       Start_Of_Suffix : Positive;
-       Result          : String_Access;
- 
-    begin
-       Start_Of_Prefix := Current_Command'First;
-       Start_Of_Suffix := Current_Command'Last + 1;
-       End_Of_Prefix   := Start_Of_Prefix - 1;
- 
-       if Look_For_Prefix then
- 
-          --  Find Start_Of_Prefix
- 
-          for J in reverse Current_Command'Range loop
-             if Current_Command (J) = '/'                 or else
-                Current_Command (J) = Directory_Separator or else
-                Current_Command (J) = ':'
-             then
-                Start_Of_Prefix := J + 1;
-                exit;
-             end if;
-          end loop;
- 
-          --  Find End_Of_Prefix
- 
-          for J in Start_Of_Prefix ..
-                   Current_Command'Last - Gnatchop_Str'Length + 1
-          loop
-             if Current_Command (J .. J + Gnatchop_Str'Length - 1) =
-                                                                   Gnatchop_Str
-             then
-                End_Of_Prefix := J - 1;
-                exit;
-             end if;
-          end loop;
-       end if;
- 
-       if End_Of_Prefix > Current_Command'First then
-          Start_Of_Suffix := End_Of_Prefix + Gnatchop_Str'Length + 1;
-       end if;
- 
-       declare
-          Command : constant String :=
-                      Current_Command (Start_Of_Prefix .. End_Of_Prefix)
-                        & Program_Name
-                        & Current_Command (Start_Of_Suffix ..
-                                           Current_Command'Last);
-       begin
-          Result := Locate_Exec_On_Path (Command);
- 
-          if Result = null then
-             Error_Msg
-               (Command & ": installation problem, executable not found");
-          end if;
-       end;
- 
-       return Result;
-    end Locate_Executable;
- 
     ---------------
     -- Parse_EOL --
     ---------------
--- 484,489 ----
*************** procedure Gnatchop is
*** 1088,1095 ****
                 exit;
  
              when '-' =>
!                Gcc     := new String'(Parameter);
!                Gcc_Set := True;
  
              when 'c' =>
                 Compilation_Mode := True;
--- 1010,1017 ----
                 exit;
  
              when '-' =>
!                Free (Gcc);
!                Gcc := new String'(Parameter);
  
              when 'c' =>
                 Compilation_Mode := True;
*************** begin
*** 1767,1775 ****
  
     --  Check presence of required executables
  
!    Gnat_Cmd := Locate_Executable (Gcc.all, not Gcc_Set);
  
     if Gnat_Cmd = null then
        goto No_Files_Written;
     end if;
  
--- 1689,1701 ----
  
     --  Check presence of required executables
  
!    if Gcc = null then
!       Gcc := Osint.Program_Name ("gcc", "gnatchop");
!    end if;
!    Gnat_Cmd := Locate_Exec_On_Path (Gcc.all);
  
     if Gnat_Cmd = null then
+       Error_Msg (Gcc.all & ": installation problem, executable not found");
        goto No_Files_Written;
     end if;
  
diff -Nrcpad gcc-16-20251019/gcc/ada/gnatlink.adb gcc-16-20251026/gcc/ada/gnatlink.adb
*** gcc-16-20251019/gcc/ada/gnatlink.adb	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/gnatlink.adb	Sun Oct 26 22:32:31 2025
*************** procedure Gnatlink is
*** 266,271 ****
--- 266,274 ----
     function Index (S, Pattern : String) return Natural;
     --  Return the last occurrence of Pattern in S, or 0 if none
  
+    function Is_Prefix (S, Prefix : String) return Boolean;
+    --  Return whether Prefix is a strict prefix of S
+ 
     procedure Search_Library_Path
       (Next_Line   : String;
        Nfirst      : Integer;
*************** procedure Gnatlink is
*** 395,400 ****
--- 398,413 ----
        return 0;
     end Index;
  
+    ---------------
+    -- Is_Prefix --
+    ---------------
+ 
+    function Is_Prefix (S, Prefix : String) return Boolean is
+    begin
+       return Prefix'Length < S'Length
+         and then S (S'First .. S'First + Prefix'Length - 1) = Prefix;
+    end Is_Prefix;
+ 
     ------------------
     -- Process_Args --
     ------------------
*************** procedure Gnatlink is
*** 1292,1304 ****
                       else
                          for J in reverse 1 .. Linker_Options.Last loop
                             if Linker_Options.Table (J) /= null
!                              and then
!                                Linker_Options.Table (J)'Length
!                                          > Run_Path_Opt'Length
!                              and then
!                                Linker_Options.Table (J)
!                                  (1 .. Run_Path_Opt'Length) =
!                                                   Run_Path_Opt
                             then
                                --  We have found an already specified
                                --  run_path_option: we will add to this switch,
--- 1305,1312 ----
                       else
                          for J in reverse 1 .. Linker_Options.Last loop
                             if Linker_Options.Table (J) /= null
!                              and then Is_Prefix
!                                (Linker_Options.Table (J).all, Run_Path_Opt)
                             then
                                --  We have found an already specified
                                --  run_path_option: we will add to this switch,
*************** begin
*** 1887,1917 ****
           Shared_Libgcc_Seen : Boolean := False;
           Static_Libgcc_Seen : Boolean := False;
  
-          function Is_Prefix
-            (Complete_String : String; Prefix : String) return Boolean;
-          --  Returns whether Prefix is a prefix of Complete_String
- 
-          ---------------
-          -- Is_Prefix --
-          ---------------
- 
-          function Is_Prefix
-            (Complete_String : String; Prefix : String) return Boolean
-          is
-             S : String renames Complete_String;
-             P : String renames Prefix;
-          begin
-             return P'Length <= S'Length
-               and then S (S'First .. S'First + P'Length - 1) = P;
-          end Is_Prefix;
- 
        begin
           J := Linker_Options.First;
           while J <= Linker_Options.Last loop
              if Linker_Options.Table (J).all = "-Xlinker"
                and then J < Linker_Options.Last
!               and then Linker_Options.Table (J + 1)'Length > 8
!               and then Linker_Options.Table (J + 1) (1 .. 8) = "--stack="
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 2) :=
--- 1895,1906 ----
           Shared_Libgcc_Seen : Boolean := False;
           Static_Libgcc_Seen : Boolean := False;
  
        begin
           J := Linker_Options.First;
           while J <= Linker_Options.Last loop
              if Linker_Options.Table (J).all = "-Xlinker"
                and then J < Linker_Options.Last
!               and then Is_Prefix (Linker_Options.Table (J + 1).all, "--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 2) :=
*************** begin
*** 1956,1967 ****
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if Is_Prefix
!                  (Complete_String => Linker_Options.Table (J).all,
!                   Prefix => "-Xlinker --stack=")
!               or else Is_Prefix
!                         (Complete_String => Linker_Options.Table (J).all,
!                          Prefix => "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
--- 1945,1952 ----
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if Is_Prefix (Linker_Options.Table (J).all, "-Xlinker --stack=")
!               or else Is_Prefix (Linker_Options.Table (J).all, "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
diff -Nrcpad gcc-16-20251019/gcc/ada/libgnat/g-catiio.adb gcc-16-20251026/gcc/ada/libgnat/g-catiio.adb
*** gcc-16-20251019/gcc/ada/libgnat/g-catiio.adb	Sun Oct 19 22:32:12 2025
--- gcc-16-20251026/gcc/ada/libgnat/g-catiio.adb	Sun Oct 26 22:32:32 2025
*************** package body GNAT.Calendar.Time_IO is
*** 515,521 ****
                    Result := Result &
                      Image (Month_Name'Image (Month_Name'Val (Month - 1)));
  
!                --  Locale's date and time (Sat Nov 04 12:02:33 EST 1989)
  
                 when 'c' =>
                    case Padding is
--- 515,521 ----
                    Result := Result &
                      Image (Month_Name'Image (Month_Name'Val (Month - 1)));
  
!                --  Locale's date and time (Sat Nov 04 12:02:33 1989)
  
                 when 'c' =>
                    case Padding is
diff -Nrcpad gcc-16-20251019/gcc/ada/rtinit.c gcc-16-20251026/gcc/ada/rtinit.c
*** gcc-16-20251019/gcc/ada/rtinit.c	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/rtinit.c	Sun Oct 26 22:32:32 2025
*************** __gnat_runtime_initialize (int install_h
*** 419,424 ****
--- 419,425 ----
       int last;
       int argc_expanded = 0;
       TCHAR result [MAX_PATH];
+      int arglen;
       int quoted;
  
       __gnat_get_argw (GetCommandLineW (), &wargv, &wargc);
*************** __gnat_runtime_initialize (int install_h
*** 436,442 ****
  
  	 for (k=1; k<wargc; k++)
  	   {
! 	     quoted = (wargv[k][0] == _T('\''));
  
  	     /* Check for wildcard expansion if the argument is not quoted. */
  	     if (!quoted && __gnat_do_argv_expansion
--- 437,446 ----
  
  	 for (k=1; k<wargc; k++)
  	   {
! 	     arglen = _tcslen (wargv[k]);
! 	     quoted = wargv[k][0] == _T('\'')
! 		      && arglen > 1
! 		      && wargv[k][arglen - 1] == _T('\'');
  
  	     /* Check for wildcard expansion if the argument is not quoted. */
  	     if (!quoted && __gnat_do_argv_expansion
diff -Nrcpad gcc-16-20251019/gcc/ada/s-oscons-tmplt.c gcc-16-20251026/gcc/ada/s-oscons-tmplt.c
*** gcc-16-20251019/gcc/ada/s-oscons-tmplt.c	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/s-oscons-tmplt.c	Sun Oct 26 22:32:32 2025
*************** CND(IF_NAMESIZE, "Max size of interface
*** 1882,1887 ****
--- 1882,1888 ----
  #endif
  
  #elif defined(_WIN32)
+ #undef  POLLPRI
  #define POLLPRI 0
  /*  If the POLLPRI flag is set on a socket for the Microsoft Winsock provider,
   *  the WSAPoll function will fail. */
diff -Nrcpad gcc-16-20251019/gcc/ada/sem_ch7.adb gcc-16-20251026/gcc/ada/sem_ch7.adb
*** gcc-16-20251019/gcc/ada/sem_ch7.adb	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/sem_ch7.adb	Sun Oct 26 22:32:32 2025
*************** package body Sem_Ch7 is
*** 3168,3175 ****
           --  the instantiation of the formals appears in the visible part,
           --  but the formals are private and remain so.
  
!          if Ekind (Id) = E_Function
!            and then Is_Operator_Symbol_Name (Chars (Id))
             and then not Is_Hidden (Id)
             and then not Error_Posted (Id)
           then
--- 3168,3174 ----
           --  the instantiation of the formals appears in the visible part,
           --  but the formals are private and remain so.
  
!          if Nkind (Id) = N_Defining_Operator_Symbol
             and then not Is_Hidden (Id)
             and then not Error_Posted (Id)
           then
diff -Nrcpad gcc-16-20251019/gcc/ada/sem_ch8.adb gcc-16-20251026/gcc/ada/sem_ch8.adb
*** gcc-16-20251019/gcc/ada/sem_ch8.adb	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/sem_ch8.adb	Sun Oct 26 22:32:32 2025
*************** package body Sem_Ch8 is
*** 5335,5357 ****
        Id        : Entity_Id;
        Elmt      : Elmt_Id;
  
!       function Is_Primitive_Operator_In_Use
!         (Op : Entity_Id;
!          F  : Entity_Id) return Boolean;
!       --  Check whether Op is a primitive operator of a use-visible type
  
!       ----------------------------------
!       -- Is_Primitive_Operator_In_Use --
!       ----------------------------------
  
!       function Is_Primitive_Operator_In_Use
!         (Op : Entity_Id;
!          F  : Entity_Id) return Boolean
!       is
!          T : constant Entity_Id := Base_Type (Etype (F));
        begin
!          return In_Use (T) and then Scope (T) = Scope (Op);
!       end Is_Primitive_Operator_In_Use;
  
     --  Start of processing for End_Use_Package
  
--- 5335,5353 ----
        Id        : Entity_Id;
        Elmt      : Elmt_Id;
  
!       function Type_In_Use (T : Entity_Id; P : Entity_Id) return Boolean;
!       --  Check whether type T is declared in P and appears in an active
!       --  use_type clause.
  
!       -----------------
!       -- Type_In_Use --
!       -----------------
  
!       function Type_In_Use (T : Entity_Id; P : Entity_Id) return Boolean is
!          BT : constant Entity_Id := Base_Type (T);
        begin
!          return Scope (BT) = P and then (In_Use (T) or else In_Use (BT));
!       end Type_In_Use;
  
     --  Start of processing for End_Use_Package
  
*************** package body Sem_Ch8 is
*** 5381,5392 ****
  
                 if Nkind (Id) = N_Defining_Operator_Symbol
                   and then
!                    (Is_Primitive_Operator_In_Use (Id, First_Formal (Id))
                       or else
                         (Present (Next_Formal (First_Formal (Id)))
                           and then
!                            Is_Primitive_Operator_In_Use
!                              (Id, Next_Formal (First_Formal (Id)))))
                 then
                    null;
                 else
--- 5377,5389 ----
  
                 if Nkind (Id) = N_Defining_Operator_Symbol
                   and then
!                    (Type_In_Use (Etype (Id), Pack)
!                      or else Type_In_Use (Etype (First_Formal (Id)), Pack)
                       or else
                         (Present (Next_Formal (First_Formal (Id)))
                           and then
!                            Type_In_Use
!                              (Etype (Next_Formal (First_Formal (Id))), Pack)))
                 then
                    null;
                 else
diff -Nrcpad gcc-16-20251019/gcc/ada/sem_prag.adb gcc-16-20251026/gcc/ada/sem_prag.adb
*** gcc-16-20251019/gcc/ada/sem_prag.adb	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/sem_prag.adb	Sun Oct 26 22:32:32 2025
*************** package body Sem_Prag is
*** 21867,21874 ****
  
              if Rep_Item_Too_Late (Def_Id, N) then
                 return;
!             else
!                Set_Has_Gigi_Rep_Item (Def_Id);
              end if;
           end Machine_Attribute;
  
--- 21867,21883 ----
  
              if Rep_Item_Too_Late (Def_Id, N) then
                 return;
!             end if;
! 
!             Set_Has_Gigi_Rep_Item (Def_Id);
! 
!             --  The pragma is processed directly by the back end when Def_Id is
!             --  translated. If the argument is not a string literal, it may be
!             --  declared after Def_Id and before the pragma, which requires the
!             --  processing of Def_Id to be delayed for the back end.
! 
!             if Nkind (Get_Pragma_Arg (Arg2)) /= N_String_Literal then
!                Set_Has_Delayed_Freeze (Def_Id);
              end if;
           end Machine_Attribute;
  
diff -Nrcpad gcc-16-20251019/gcc/ada/styleg.adb gcc-16-20251026/gcc/ada/styleg.adb
*** gcc-16-20251019/gcc/ada/styleg.adb	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/styleg.adb	Sun Oct 26 22:32:32 2025
*************** package body Styleg is
*** 330,336 ****
           --  Do we need to worry about UTF_32 line terminators here ???
  
           S := Scan_Ptr + 3;
!          while Source (S) not in Line_Terminator loop
              S := S + 1;
           end loop;
  
--- 330,336 ----
           --  Do we need to worry about UTF_32 line terminators here ???
  
           S := Scan_Ptr + 3;
!          while Source (S) not in EOF | Line_Terminator loop
              S := S + 1;
           end loop;
  
diff -Nrcpad gcc-16-20251019/gcc/ada/terminals.c gcc-16-20251026/gcc/ada/terminals.c
*** gcc-16-20251019/gcc/ada/terminals.c	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/ada/terminals.c	Sun Oct 26 22:32:32 2025
*************** __gnat_setup_child_communication
*** 724,736 ****
      if (bRet == FALSE) {
        cpid = -1;
      }
! 
!     dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
!     if (dwRet != 0) {
!       cpid = -1;
      }
  
-     cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
      process->pid = cpid;
    }
  
--- 724,739 ----
      if (bRet == FALSE) {
        cpid = -1;
      }
!     else {
!       dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
!       if (dwRet != 0) {
! 	cpid = -1;
!       }
!       else {
! 	cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
!       }
      }
  
      process->pid = cpid;
    }
  
diff -Nrcpad gcc-16-20251019/gcc/attr-callback.cc gcc-16-20251026/gcc/attr-callback.cc
*** gcc-16-20251019/gcc/attr-callback.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/attr-callback.cc	Sun Oct 26 22:32:32 2025
*************** callback_build_attr (unsigned fn_idx, un
*** 48,54 ****
      {
        int num = va_arg (args, int);
        tree tnum = build_int_cst (integer_type_node, num);
!       *pp = build_tree_list (NULL, tnum PASS_MEM_STAT);
        pp = &TREE_CHAIN (*pp);
      }
    cblist
--- 48,54 ----
      {
        int num = va_arg (args, int);
        tree tnum = build_int_cst (integer_type_node, num);
!       *pp = build_tree_list (NULL, tnum);
        pp = &TREE_CHAIN (*pp);
      }
    cblist
diff -Nrcpad gcc-16-20251019/gcc/c/ChangeLog gcc-16-20251026/gcc/c/ChangeLog
*** gcc-16-20251019/gcc/c/ChangeLog	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c/ChangeLog	Sun Oct 26 22:32:32 2025
***************
*** 1,3 ****
--- 1,41 ----
+ 2025-10-24  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* c-parser.cc (c_parser_next_tokens_start_typename)
+ 	(c_parser_next_tokens_start_declaration): Add argument for token
+ 	to start from
+ 	(c_parser_next_tokens_start_declaration): Check for whether static
+ 	assertion followed by semicolon.
+ 	(c_parser_check_balanced_raw_token_sequence): Declare earlier.
+ 	(c_parser_compound_statement_nostart, c_parser_for_statement): Use
+ 	c_parser_next_tokens_start_declaration not
+ 	c_token_starts_declaration on second token.
+ 	(c_parser_unary_expression): Handle static assertions.
+ 	* c-parser.h (c_parser_next_tokens_start_declaration): Add
+ 	argument.
+ 
+ 2025-10-21  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* c-decl.cc (build_array_declarator): Remove error.
+ 	(grokgenassoc): New function.
+ 	(grokdeclarator): Add error.
+ 	* c-parser.cc (c_parser_generic_selection): Use grokgenassoc.
+ 	* c-tree.h (grokgenassoc): Add prototype.
+ 
+ 2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR c/120180
+ 	PR fortran/122306
+ 	* c-parser.cc (c_parser_pragma): Accept a subset of non-executable
+ 	OpenMP directives in intervening code.
+ 	(c_parser_omp_error): Reject 'error at(execution)' in intervening code.
+ 	(c_parser_omp_metadirective): Return early if only one selector matches
+ 	and it resolves to 'omp nothing'.
+ 
+ 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-parser.cc (c_parser_omp_assumption_clauses): Switch to
+ 	'unknown' not 'invalid' directive name for end directives.
+ 
  2025-10-08  Joseph Myers  <josmyers@redhat.com>
  
  	* c-typeck.cc (in_generic, save_maybe_used, restore_maybe_used):
diff -Nrcpad gcc-16-20251019/gcc/c/c-decl.cc gcc-16-20251026/gcc/c/c-decl.cc
*** gcc-16-20251019/gcc/c/c-decl.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c/c-decl.cc	Sun Oct 26 22:32:32 2025
*************** enum decl_context
*** 71,77 ****
    FUNCDEF,			/* Function definition */
    PARM,				/* Declaration of parm before function body */
    FIELD,			/* Declaration inside struct or union */
!   TYPENAME};			/* Typename (inside cast or sizeof)  */
  
  /* States indicating how grokdeclarator() should handle declspecs marked
     with __attribute__((deprecated)) or __attribute__((unavailable)).
--- 71,78 ----
    FUNCDEF,			/* Function definition */
    PARM,				/* Declaration of parm before function body */
    FIELD,			/* Declaration inside struct or union */
!   TYPENAME,			/* Typename (inside cast or sizeof)  */
!   GENERIC_ASSOC };		/* Typename in generic association  */
  
  /* States indicating how grokdeclarator() should handle declspecs marked
     with __attribute__((deprecated)) or __attribute__((unavailable)).
*************** build_array_declarator (location_t loc,
*** 5456,5474 ****
  		 "ISO C90 does not support %<static%> or type "
  		 "qualifiers in parameter array declarators");
    if (vla_unspec_p)
-     pedwarn_c90 (loc, OPT_Wpedantic,
- 		 "ISO C90 does not support %<[*]%> array declarators");
-   if (vla_unspec_p)
      {
!       if (!current_scope->parm_flag)
! 	{
! 	  /* C99 6.7.5.2p4 */
! 	  error_at (loc, "%<[*]%> not allowed in other than "
! 		    "function prototype scope");
! 	  declarator->u.array.vla_unspec_p = false;
! 	  return NULL;
! 	}
!       current_scope->had_vla_unspec = true;
      }
    return declarator;
  }
--- 5457,5467 ----
  		 "ISO C90 does not support %<static%> or type "
  		 "qualifiers in parameter array declarators");
    if (vla_unspec_p)
      {
!       pedwarn_c90 (loc, OPT_Wpedantic,
! 		   "ISO C90 does not support %<[*]%> array declarators");
!       if (current_scope->parm_flag)
! 	current_scope->had_vla_unspec = true;
      }
    return declarator;
  }
*************** groktypename (struct c_type_name *type_n
*** 5574,5579 ****
--- 5567,5595 ----
    return type;
  }
  
+ 
+ /* Decode a "typename", such as "int **", returning a ..._TYPE node,
+    as for groktypename but setting the context to GENERIC_ASSOC.  */
+ 
+ tree
+ grokgenassoc (struct c_type_name *type_name)
+ {
+   tree type;
+   tree attrs = type_name->specs->attrs;
+ 
+   type_name->specs->attrs = NULL_TREE;
+ 
+   type = grokdeclarator (type_name->declarator, type_name->specs, GENERIC_ASSOC,
+ 			 false, NULL, &attrs, NULL, NULL, DEPRECATED_NORMAL);
+ 
+   /* Apply attributes.  */
+   attrs = c_warn_type_attributes (type, attrs);
+   decl_attributes (&type, attrs, 0);
+ 
+   return type;
+ }
+ 
+ 
  /* Looks up the most recent pushed declaration corresponding to DECL.  */
  
  static tree
*************** build_arg_spec_attribute (tree type, boo
*** 6772,6777 ****
--- 6788,6794 ----
        or before a function body).  Make a PARM_DECL, or return void_type_node.
       TYPENAME if for a typename (in a cast or sizeof).
        Don't make a DECL node; just return the ..._TYPE node.
+      GENERIC_ASSOC for typenames in a generic association.
       FIELD for a struct or union field; make a FIELD_DECL.
     INITIALIZED is true if the decl has an initializer.
     WIDTH is non-NULL for bit-fields, and is a pointer to an INTEGER_CST node
*************** grokdeclarator (const struct c_declarato
*** 6908,6913 ****
--- 6925,6931 ----
        {
  	gcc_assert (decl_context == PARM
  		    || decl_context == TYPENAME
+ 		    || decl_context == GENERIC_ASSOC
  		    || (decl_context == FIELD
  			&& declarator->kind == cdk_id));
  	gcc_assert (!initialized);
*************** grokdeclarator (const struct c_declarato
*** 7481,7494 ****
  		  itype = build_index_type (NULL_TREE);
  	      }
  
- 	    if (array_parm_vla_unspec_p)
- 	      {
- 		/* C99 6.7.5.2p4 */
- 		if (decl_context == TYPENAME)
- 		  warning (0, "%<[*]%> not in a declaration");
- 		size_varies = true;
- 	      }
- 
  	    /* Complain about arrays of incomplete types.  */
  	    if (!COMPLETE_TYPE_P (type))
  	      {
--- 7499,7504 ----
*************** grokdeclarator (const struct c_declarato
*** 7527,7532 ****
--- 7537,7558 ----
  		  type = c_build_array_type (type, itype);
  	      }
  
+ 	    if (array_parm_vla_unspec_p)
+ 	      {
+ 		/* C99 6.7.5.2p4 */
+ 		if (decl_context == TYPENAME)
+ 		  warning (0, "%<[*]%> not in a declaration");
+ 		else if (decl_context != GENERIC_ASSOC
+ 			 && decl_context != PARM
+ 			 && decl_context != FIELD)
+ 		  {
+ 		    error ("%<[*]%> not allowed in other than function prototype scope "
+ 			   "or generic association");
+ 		    type = error_mark_node;
+ 		  }
+ 		size_varies = true;
+ 	      }
+ 
  	    if (type != error_mark_node)
  	      {
  		/* The GCC extension for zero-length arrays differs from
*************** grokdeclarator (const struct c_declarato
*** 7898,7904 ****
    /* If this is a type name (such as, in a cast or sizeof),
       compute the type and return it now.  */
  
!   if (decl_context == TYPENAME)
      {
        /* Note that the grammar rejects storage classes in typenames
  	 and fields.  */
--- 7924,7930 ----
    /* If this is a type name (such as, in a cast or sizeof),
       compute the type and return it now.  */
  
!   if (decl_context == TYPENAME || decl_context == GENERIC_ASSOC)
      {
        /* Note that the grammar rejects storage classes in typenames
  	 and fields.  */
diff -Nrcpad gcc-16-20251019/gcc/c/c-parser.cc gcc-16-20251026/gcc/c/c-parser.cc
*** gcc-16-20251019/gcc/c/c-parser.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c/c-parser.cc	Sun Oct 26 22:32:32 2025
*************** c_token_starts_typename (c_token *token)
*** 675,688 ****
      }
  }
  
! /* Return true if the next token from PARSER can start a type name,
!    false otherwise.  LA specifies how to do lookahead in order to
     detect unknown type names.  If unsure, pick CLA_PREFER_ID.  */
  
  static inline bool
! c_parser_next_tokens_start_typename (c_parser *parser, enum c_lookahead_kind la)
  {
!   c_token *token = c_parser_peek_token (parser);
    if (c_token_starts_typename (token))
      return true;
  
--- 675,689 ----
      }
  }
  
! /* Return true if the next token from PARSER, starting from token N, can start
!    a type name, false otherwise.  LA specifies how to do lookahead in order to
     detect unknown type names.  If unsure, pick CLA_PREFER_ID.  */
  
  static inline bool
! c_parser_next_tokens_start_typename (c_parser *parser, enum c_lookahead_kind la,
! 				     unsigned int n = 1)
  {
!   c_token *token = c_parser_peek_nth_token (parser, n);
    if (c_token_starts_typename (token))
      return true;
  
*************** c_parser_next_tokens_start_typename (c_p
*** 695,702 ****
        && !parser->objc_could_be_foreach_context
  
        && (la == cla_prefer_type
! 	  || c_parser_peek_2nd_token (parser)->type == CPP_NAME
! 	  || c_parser_peek_2nd_token (parser)->type == CPP_MULT)
  
        /* Only unknown identifiers.  */
        && !lookup_name (token->value))
--- 696,703 ----
        && !parser->objc_could_be_foreach_context
  
        && (la == cla_prefer_type
! 	  || c_parser_peek_nth_token (parser, n + 1)->type == CPP_NAME
! 	  || c_parser_peek_nth_token (parser, n + 1)->type == CPP_MULT)
  
        /* Only unknown identifiers.  */
        && !lookup_name (token->value))
*************** c_parser_next_token_starts_declspecs (c_
*** 892,921 ****
    return c_token_starts_declspecs (token);
  }
  
! /* Return true if the next tokens from PARSER can start declaration
!    specifiers (not including standard attributes) or a static
!    assertion, false otherwise.  */
  bool
! c_parser_next_tokens_start_declaration (c_parser *parser)
  {
!   c_token *token = c_parser_peek_token (parser);
  
    /* Same as above.  */
    if (c_dialect_objc ()
        && token->type == CPP_NAME
        && token->id_kind == C_ID_CLASSNAME
!       && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
    /* Labels do not start declarations.  */
    if (token->type == CPP_NAME
!       && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
      return false;
  
    if (c_token_starts_declaration (token))
      return true;
  
!   if (c_parser_next_tokens_start_typename (parser, cla_nonabstract_decl))
      return true;
  
    return false;
--- 893,939 ----
    return c_token_starts_declspecs (token);
  }
  
! static bool c_parser_check_balanced_raw_token_sequence (c_parser *,
! 							unsigned int *);
! 
! /* Return true if the next tokens from PARSER (starting with token N, 1-based)
!    can start declaration specifiers (not including standard attributes) or a
!    static assertion, false otherwise.  */
  bool
! c_parser_next_tokens_start_declaration (c_parser *parser, unsigned int n)
  {
!   c_token *token = c_parser_peek_nth_token (parser, n);
  
    /* Same as above.  */
    if (c_dialect_objc ()
        && token->type == CPP_NAME
        && token->id_kind == C_ID_CLASSNAME
!       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_DOT)
      return false;
  
    /* Labels do not start declarations.  */
    if (token->type == CPP_NAME
!       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_COLON)
      return false;
  
+   /* A static assertion is only a declaration if followed by a semicolon;
+      otherwise, it may be an expression in C2Y.  */
+   if (token->keyword == RID_STATIC_ASSERT
+       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_OPEN_PAREN)
+     {
+       n += 2;
+       if (!c_parser_check_balanced_raw_token_sequence (parser, &n)
+ 	  || c_parser_peek_nth_token_raw (parser, n)->type != CPP_CLOSE_PAREN)
+ 	/* Invalid static assertion syntax; treat as a declaration and report a
+ 	   syntax error there.  */
+ 	return true;
+       return c_parser_peek_nth_token_raw (parser, n + 1)->type == CPP_SEMICOLON;
+     }
+ 
    if (c_token_starts_declaration (token))
      return true;
  
!   if (c_parser_next_tokens_start_typename (parser, cla_nonabstract_decl, n))
      return true;
  
    return false;
*************** c_parser_balanced_token_sequence (c_pars
*** 5855,5863 ****
      }
  }
  
- static bool c_parser_check_balanced_raw_token_sequence (c_parser *,
- 							unsigned int *);
- 
  /* Parse arguments of omp::directive or omp::decl attribute.
  
     directive-name ,[opt] clause-list[opt]
--- 5873,5878 ----
*************** c_parser_compound_statement_nostart (c_p
*** 7724,7730 ****
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
  	  if (!have_std_attrs
! 	      && (c_token_starts_declaration (c_parser_peek_2nd_token (parser))
  		  || c_parser_nth_token_starts_std_attributes (parser, 2)))
  	    {
  	      int ext;
--- 7739,7745 ----
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
  	  if (!have_std_attrs
! 	      && (c_parser_next_tokens_start_declaration (parser, 2)
  		  || c_parser_nth_token_starts_std_attributes (parser, 2)))
  	    {
  	      int ext;
*************** c_parser_for_statement (c_parser *parser
*** 9132,9138 ****
  		 && (c_parser_peek_2nd_token (parser)->keyword
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
! 	  if (c_token_starts_declaration (c_parser_peek_2nd_token (parser))
  	      || c_parser_nth_token_starts_std_attributes (parser, 2))
  	    {
  	      int ext;
--- 9147,9153 ----
  		 && (c_parser_peek_2nd_token (parser)->keyword
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
! 	  if (c_parser_next_tokens_start_declaration (parser, 2)
  	      || c_parser_nth_token_starts_std_attributes (parser, 2))
  	    {
  	      int ext;
*************** c_parser_cast_expression (c_parser *pars
*** 10513,10520 ****
       _Countof ( type-name )
       sizeof unary-expression
       sizeof ( type-name )
  
!    (_Countof is new in C2y.)
  
     unary-operator: one of
       & * + - ~ !
--- 10528,10536 ----
       _Countof ( type-name )
       sizeof unary-expression
       sizeof ( type-name )
+      static-assert-declaration-no-semi
  
!    (_Countof and the use of static assertions in expressions are new in C2y.)
  
     unary-operator: one of
       & * + - ~ !
*************** c_parser_unary_expression (c_parser *par
*** 10679,10684 ****
--- 10695,10709 ----
  	case RID_TRANSACTION_RELAXED:
  	  return c_parser_transaction_expression (parser,
  	      c_parser_peek_token (parser)->keyword);
+ 	case RID_STATIC_ASSERT:
+ 	  c_parser_static_assert_declaration_no_semi (parser);
+ 	  pedwarn_c23 (op_loc, OPT_Wpedantic,
+ 		       "ISO C does not support static assertions in "
+ 		       "expressions before C2Y");
+ 	  ret.value = void_node;
+ 	  set_c_expr_source_range (&ret, op_loc, op_loc);
+ 	  ret.m_decimal = 0;
+ 	  return ret;
  	default:
  	  return c_parser_postfix_expression (parser);
  	}
*************** c_parser_generic_selection (c_parser *pa
*** 11240,11246 ****
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
  	      return error_expr;
  	    }
! 	  assoc.type = groktypename (type_name, NULL, NULL);
  	  if (assoc.type == error_mark_node)
  	    {
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
--- 11265,11271 ----
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
  	      return error_expr;
  	    }
! 	  assoc.type = grokgenassoc (type_name);
  	  if (assoc.type == error_mark_node)
  	    {
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
*************** c_parser_pragma (c_parser *parser, enum
*** 15787,15797 ****
    gcc_assert (id != PRAGMA_NONE);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_
!       && id <= PRAGMA_OMP__LAST_)
      {
!       error_at (input_location,
! 		"intervening code must not contain OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL);
        return false;
--- 15812,15826 ----
    gcc_assert (id != PRAGMA_NONE);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_ && id <= PRAGMA_OMP__LAST_
!       /* Allow a safe subset of non-executable directives. See classification in
! 	 array c_omp_directives.  */
!       && id != PRAGMA_OMP_METADIRECTIVE && id != PRAGMA_OMP_NOTHING
!       && id != PRAGMA_OMP_ASSUME && id != PRAGMA_OMP_ERROR)
      {
!       error_at (
! 	input_location,
! 	"intervening code must not contain executable OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL);
        return false;
*************** c_parser_omp_error (c_parser *parser, en
*** 29334,29339 ****
--- 29363,29376 ----
  			 "may only be used in compound statements");
  	  return true;
  	}
+       if (parser->omp_for_parse_state
+ 	  && parser->omp_for_parse_state->in_intervening_code)
+ 	{
+ 	  error_at (loc, "%<#pragma omp error%> with %<at(execution)%> clause "
+ 			 "may not be used in intervening code");
+ 	  parser->omp_for_parse_state->fail = true;
+ 	  return true;
+ 	}
        tree fndecl
  	= builtin_decl_explicit (severity_fatal ? BUILT_IN_GOMP_ERROR
  						: BUILT_IN_GOMP_WARNING);
*************** c_parser_omp_assumption_clauses (c_parse
*** 29480,29485 ****
--- 29517,29523 ----
  						      directive[1],
  						      directive[2]);
  		      if (dir
+ 			  && dir->id != PRAGMA_OMP_END
  			  && (dir->kind == C_OMP_DIR_DECLARATIVE
  			      || dir->kind == C_OMP_DIR_INFORMATIONAL
  			      || dir->kind == C_OMP_DIR_META))
*************** c_parser_omp_metadirective (c_parser *pa
*** 29863,29868 ****
--- 29901,29917 ----
      }
    c_parser_skip_to_pragma_eol (parser);
  
+   /* If only one selector matches and it evaluates to 'omp nothing', no need to
+      proceed.  */
+   if (ctxs.length () == 1)
+     {
+       tree ctx = ctxs[0];
+       if (ctx == NULL_TREE
+ 	  || (omp_context_selector_matches (ctx, NULL_TREE, false) == 1
+ 	      && directive_tokens[0].pragma_kind == PRAGMA_OMP_NOTHING))
+ 	return;
+     }
+ 
    if (!default_seen)
      {
        /* Add a default clause that evaluates to 'omp nothing'.  */
*************** c_parser_omp_metadirective (c_parser *pa
*** 29943,29949 ****
  	  if (standalone_body == NULL_TREE)
  	    {
  	      standalone_body = push_stmt_list ();
! 	      c_parser_statement (parser, if_p);
  	      standalone_body = pop_stmt_list (standalone_body);
  	    }
  	  else
--- 29992,29998 ----
  	  if (standalone_body == NULL_TREE)
  	    {
  	      standalone_body = push_stmt_list ();
! 	      c_parser_statement (parser, if_p); // TODO skip this
  	      standalone_body = pop_stmt_list (standalone_body);
  	    }
  	  else
diff -Nrcpad gcc-16-20251019/gcc/c/c-parser.h gcc-16-20251026/gcc/c/c-parser.h
*** gcc-16-20251019/gcc/c/c-parser.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c/c-parser.h	Sun Oct 26 22:32:32 2025
*************** extern void c_parser_skip_until_found (c
*** 156,162 ****
  				       const char *msgid,
  				       location_t = UNKNOWN_LOCATION);
  extern bool c_parser_next_token_starts_declspecs (c_parser *parser);
! bool c_parser_next_tokens_start_declaration (c_parser *parser);
  bool c_token_starts_typename (c_token *token);
  
  /* Abstraction to avoid defining c_parser here which messes up gengtype
--- 156,163 ----
  				       const char *msgid,
  				       location_t = UNKNOWN_LOCATION);
  extern bool c_parser_next_token_starts_declspecs (c_parser *parser);
! bool c_parser_next_tokens_start_declaration (c_parser *parser,
! 					     unsigned int n = 1);
  bool c_token_starts_typename (c_token *token);
  
  /* Abstraction to avoid defining c_parser here which messes up gengtype
diff -Nrcpad gcc-16-20251019/gcc/c/c-tree.h gcc-16-20251026/gcc/c/c-tree.h
*** gcc-16-20251019/gcc/c/c-tree.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c/c-tree.h	Sun Oct 26 22:32:32 2025
*************** extern struct c_arg_info *get_parm_info
*** 713,718 ****
--- 713,719 ----
  extern tree grokfield (location_t, struct c_declarator *,
  		       struct c_declspecs *, tree, tree *, tree *);
  extern tree groktypename (struct c_type_name *, tree *, bool *);
+ extern tree grokgenassoc (struct c_type_name *);
  extern tree grokparm (const struct c_parm *, tree *);
  extern tree implicitly_declare (location_t, tree);
  extern void keep_next_level (void);
diff -Nrcpad gcc-16-20251019/gcc/c-family/ChangeLog gcc-16-20251026/gcc/c-family/ChangeLog
*** gcc-16-20251019/gcc/c-family/ChangeLog	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c-family/ChangeLog	Sun Oct 26 22:32:32 2025
***************
*** 1,3 ****
--- 1,15 ----
+ 2025-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/122302
+ 	* c-common.cc (braced_list_to_string): Call copy_node on RAW_DATA_CST
+ 	before changing RAW_DATA_POINTER and RAW_DATA_LENGTH on it.
+ 
+ 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-omp.cc (c_omp_directives): Uncomment 'declare mapper',
+ 	add comment to 'begin metadirective', add 6.x unimplemented
+ 	directives as comment-out entries.
+ 
  2025-10-17  Josef Melcr  <jmelcr02@gmail.com>
  
  	* c-attribs.cc: Define callback attr.
diff -Nrcpad gcc-16-20251019/gcc/c-family/c-common.cc gcc-16-20251026/gcc/c-family/c-common.cc
*** gcc-16-20251019/gcc/c-family/c-common.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c-family/c-common.cc	Sun Oct 26 22:32:32 2025
*************** braced_list_to_string (tree type, tree c
*** 10296,10301 ****
--- 10296,10302 ----
  		    j = i - start;
  		  else
  		    j -= start;
+ 		  value = copy_node (value);
  		  RAW_DATA_POINTER (value) -= start;
  		  RAW_DATA_LENGTH (value) += start + end;
  		  i += end;
diff -Nrcpad gcc-16-20251019/gcc/c-family/c-omp.cc gcc-16-20251026/gcc/c-family/c-omp.cc
*** gcc-16-20251019/gcc/c-family/c-omp.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/c-family/c-omp.cc	Sun Oct 26 22:32:32 2025
*************** const struct c_omp_directive c_omp_direc
*** 4604,4609 ****
--- 4604,4612 ----
      C_OMP_DIR_DECLARATIVE, false },
    /* { "begin", "declare", "variant", PRAGMA_OMP_BEGIN,
      C_OMP_DIR_DECLARATIVE, false }, */
+   /* 'begin metadirective' is not yet implemented; however,
+      it is only applicable if an end-directive exists, but
+      metadirectives are of limited use for declarative directives.  */
    /* { "begin", "metadirective", nullptr, PRAGMA_OMP_BEGIN,
      C_OMP_DIR_META, false },  */
    { "cancel", nullptr, nullptr, PRAGMA_OMP_CANCEL,
*************** const struct c_omp_directive c_omp_direc
*** 4612,4619 ****
      C_OMP_DIR_STANDALONE, false },
    { "critical", nullptr, nullptr, PRAGMA_OMP_CRITICAL,
      C_OMP_DIR_CONSTRUCT, false },
!   /* { "declare", "mapper", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, false },  */
    { "declare", "reduction", nullptr, PRAGMA_OMP_DECLARE,
      C_OMP_DIR_DECLARATIVE, true },
    { "declare", "simd", nullptr, PRAGMA_OMP_DECLARE,
--- 4615,4624 ----
      C_OMP_DIR_STANDALONE, false },
    { "critical", nullptr, nullptr, PRAGMA_OMP_CRITICAL,
      C_OMP_DIR_CONSTRUCT, false },
!   /* { "declare", "induction", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, true }, */
!   { "declare", "mapper", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, false },
    { "declare", "reduction", nullptr, PRAGMA_OMP_DECLARE,
      C_OMP_DIR_DECLARATIVE, true },
    { "declare", "simd", nullptr, PRAGMA_OMP_DECLARE,
*************** const struct c_omp_directive c_omp_direc
*** 4639,4650 ****
--- 4644,4661 ----
    /* error with at(execution) is C_OMP_DIR_STANDALONE.  */
    { "error", nullptr, nullptr, PRAGMA_OMP_ERROR,
      C_OMP_DIR_UTILITY, false },
+   /* { "flatten", nullptr, nullptr, PRAGMA_OMP_FLATTEN,
+     C_OMP_DIR_CONSTRUCT, true },  */
    { "flush", nullptr, nullptr, PRAGMA_OMP_FLUSH,
      C_OMP_DIR_STANDALONE, false },
    { "for", nullptr, nullptr, PRAGMA_OMP_FOR,
      C_OMP_DIR_CONSTRUCT, true },
+   /* { "fuse", nullptr, nullptr, PRAGMA_OMP_FUSE,
+     C_OMP_DIR_CONSTRUCT, true },  */
    /* { "groupprivate", nullptr, nullptr, PRAGMA_OMP_GROUPPRIVATE,
      C_OMP_DIR_DECLARATIVE, false },  */
+   /* { "interchange", nullptr, nullptr, PRAGMA_OMP_INTERCHANGE,
+     C_OMP_DIR_CONSTRUCT, true },  */
    { "interop", nullptr, nullptr, PRAGMA_OMP_INTEROP,
      C_OMP_DIR_STANDALONE, false },
    { "loop", nullptr, nullptr, PRAGMA_OMP_LOOP,
*************** const struct c_omp_directive c_omp_direc
*** 4676,4681 ****
--- 4687,4696 ----
      C_OMP_DIR_CONSTRUCT, true },
    { "single", nullptr, nullptr, PRAGMA_OMP_SINGLE,
      C_OMP_DIR_CONSTRUCT, false },
+   /* { "split", nullptr, nullptr, PRAGMA_OMP_SPLIT,
+     C_OMP_DIR_CONSTRUCT, true },  */
+   /* { "stripe", nullptr, nullptr, PRAGMA_OMP_STRIPE,
+     C_OMP_DIR_CONSTRUCT, true },  */
    { "target", "data", nullptr, PRAGMA_OMP_TARGET,
      C_OMP_DIR_CONSTRUCT, false },
    { "target", "enter", "data", PRAGMA_OMP_TARGET,
*************** const struct c_omp_directive c_omp_direc
*** 4688,4693 ****
--- 4703,4712 ----
      C_OMP_DIR_CONSTRUCT, true },
    { "task", nullptr, nullptr, PRAGMA_OMP_TASK,
      C_OMP_DIR_CONSTRUCT, false },
+   /* { "task", "iteration", nullptr, PRAGMA_OMP_TASK_ITERATION,
+     C_OMP_DIR_STANDALONE, false },  */
+   /* { "taskgraph", nullptr, nullptr, PRAGMA_OMP_TASKGRAPH,
+     C_OMP_DIR_CONSTRUCT, false },  */
    { "taskgroup", nullptr, nullptr, PRAGMA_OMP_TASKGROUP,
      C_OMP_DIR_CONSTRUCT, false },
    { "taskloop", nullptr, nullptr, PRAGMA_OMP_TASKLOOP,
diff -Nrcpad gcc-16-20251019/gcc/cobol/ChangeLog gcc-16-20251026/gcc/cobol/ChangeLog
*** gcc-16-20251019/gcc/cobol/ChangeLog	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/ChangeLog	Sun Oct 26 22:32:32 2025
***************
*** 1,3 ****
--- 1,105 ----
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* genapi.cc (parser_alphabet): Alphabet encoding.
+ 	(parser_alphabet_use): Likewise.
+ 	(parser_xml_parse): Use correct debugging macro; encoding.
+ 	(parser_xml_on_exception): Likewise.
+ 	(parser_xml_not_exception): Likewise.
+ 	(parser_xml_end): Likewise.
+ 	(initialize_the_data): Encoding.
+ 	(parser_label_label): Debugging macros.
+ 	(parser_label_goto): Likewise.
+ 	(parser_file_add): Encoding.
+ 	(parser_intrinsic_call_1): Special handling for __gg__char.
+ 	(parser_intrinsic_call_2): Formatting.
+ 	* parse.y: Response from FUNCTION ORD is flagged "unsigned".
+ 	* symbols.cc (cbl_alphabet_t::reencode): Establish
+ 	low_char & high_char.
+ 	* symbols.h (struct cbl_alphabet_t): Likewise.
+ 
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 	    James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* Make-lang.in: Incorporate new token_names.h file.
+ 	* cdf.y: Modify tokens.
+ 	* gcobol.1: Document XML PARSE statement
+ 	* genapi.cc (parser_enter_program): Verify that every goto has a
+ 	matching label.
+ 	(parser_end_program): Likewise.
+ 	(parser_alphabet): Refine handling codeset encodings.
+ 	(parser_alphabet_use): Likewise.
+ 	(label_fetch): Moved from later in the source code.
+ 	(parser_xml_parse): New routine for XML PARSE.
+ 	(parser_xml_on_exception): Likewise.
+ 	(parser_xml_not_exception): Likewise.
+ 	(parser_xml_end): Likewise.
+ 	(parser_label_label): Verify goto/label matching.
+ 	(parser_label_goto): Likewise.
+ 	(parser_entry): Minor change to SHOW_PARSE report.
+ 	* genapi.h (parser_alphabet): Set parameter to const.
+ 	(parser_xml_parse): Declare new function.
+ 	(parser_xml_on_exception): Likewise.
+ 	(parser_xml_not_exception): Likewise.
+ 	(parser_xml_end): Likewise.
+ 	(parser_label_addr): Likewise.
+ 	* parse.y: label_pair_t structure; locale processing; new token
+ 	processing for alphabets and XML PARSE.
+ 	* parse_ante.h (name_of): Return field->name when initial is NULL.
+ 	(new_tempnumeric): Make signable_e optional.
+ 	(ast_save_locale): New function.
+ 	(data_division_ready): Warning for "no alphabet".
+ 	* scan.l: Repair interpretation of BINARY, COMP, COMP-4, and
+ 	COMP-5.
+ 	* scan_ante.h (struct bint_t): Likewise.
+ 	* scan_post.h (current_tokens_t::tokenset_t::tokenset_t):
+ 	Include token_names.h.
+ 	* symbols.cc (symbols_alphabet_set): Revert to prior alphabet
+ 	determination.
+ 	(symbol_table_init): New XML special registers.
+ 	(new_temporary): Make signable_e controllable, not fixed.
+ 	* symbols.h (__gg__encoding_iconv_valid): New declaration.
+ 	(enum cbl_label_type_t): New LblXml label type.
+ 	(struct cbl_xml_parse_t):
+ 	(struct cbl_label_t): Implement XML PARSE.
+ 	(new_temporary): Incorporate boolean for signable_e.
+ 	(symbol_elem_of): Change label field type handling.
+ 	(cbl_section_of): Likewise.
+ 	(cbl_field_of): Likewise.
+ 	(cbl_label_of): Likewise.
+ 	(cbl_special_name_of):  Likewise.
+ 	(cbl_alphabet_of):  Likewise.
+ 	(cbl_file_of):  Likewise.
+ 	* token_names.h: New file.
+ 	* util.cc (gcc_location_set_impl): Improve location_t calculations
+ 	when entering and leaving COPYBOOKs.
+ 
+ 2025-10-19  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* genapi.cc (move_tree): Formatting.
+ 	(parser_enter_file): Incorporate global __gg__entry_label.
+ 	(enter_program_common): Remove calls to alphabet overrides.
+ 	(parser_alphabet): Change cbl_alphabet_e handling.
+ 	(parser_alphabet_use): Likewise.
+ 	(initialize_the_data): Likewise.
+ 	(establish_using): Process passed parameters in a subroutine.
+ 	(parser_division): Remove in-line parameter processing;
+ 	call establish_using() instead. Check for __gg__entry_label.
+ 	(parser_file_add): Temporary workaround for charset encoding.
+ 	(parser_file_open): Likewise.
+ 	(create_and_call): Push/pop program state around call to external.
+ 	(parser_entry): Implement new ENTRY statement feature.
+ 	(mh_source_is_literalN): Formatting.
+ 	* genapi.h (parser_entry): New ENTRY statement.
+ 	* gengen.cc (gg_create_goto_pair): Formatting.
+ 	(gg_goto_label_decl): Remove.
+ 	* gengen.h (gg_goto_label_decl): Remove.
+ 	* genutil.cc (internal_codeset_is_ebcdic): Remove.
+ 	* genutil.h (internal_codeset_is_ebcdic): Remove.
+ 	* symbols.cc (symbols_alphabet_set): Restrict alphabet scan to
+ 	program.
+ 	* symbols.h (is_elementary): Use defined constants instead of
+ 	explicit 'A'and 'N'
+ 
  2025-10-10  Robert Dubner  <rdubner@symas.com>
  
  	* cdf.y: In support of the described changes.
diff -Nrcpad gcc-16-20251019/gcc/cobol/Make-lang.in gcc-16-20251026/gcc/cobol/Make-lang.in
*** gcc-16-20251019/gcc/cobol/Make-lang.in	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/Make-lang.in	Sun Oct 26 22:32:32 2025
*************** cobol/scan.o: cobol/scan.cc			\
*** 225,230 ****
--- 225,231 ----
  	$(srcdir)/cobol/scan_post.h		\
  	$(srcdir)/cobol/symbols.h		\
  	$(srcdir)/cobol/util.h			\
+ 	$(srcdir)/cobol/token_names.h		\
  	$(srcdir)/hwint.h			\
  	$(srcdir)/system.h			\
  	$(srcdir)/../include/ansidecl.h		\
*************** cobol/scan.o: cobol/scan.cc			\
*** 241,246 ****
--- 242,256 ----
  	cobol/cdf.cc				\
  	cobol/parse.cc
  
+ # Update token names if the generator script is installed
+ # (by a developer) and there's been a change. 
+ $(srcdir)/cobol/token_names.h: cobol/parse.cc
+ 	@if [ -f $@.gen ]; then			\
+ 		$@.gen $(subst .cc,.h,$^)	\
+ 		| diff -u $@ -			\
+ 		| patch -t --set-time $@ ;	\
+ 	fi
+ 
  #
  # The src<foo> targets are executed if
  # ‘--enable-generated-files-in-srcdir’ was specified as a configure
diff -Nrcpad gcc-16-20251019/gcc/cobol/cdf.y gcc-16-20251026/gcc/cobol/cdf.y
*** gcc-16-20251019/gcc/cobol/cdf.y	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/cdf.y	Sun Oct 26 22:32:32 2025
*************** apply_cdf_turn( const exception_turn_t&
*** 244,264 ****
  %type	<boolean>	     DEFINED
  %token OTHER 699  PARAMETER_kw 369    "PARAMETER"
  %token OFF 688  OVERRIDE 370
! %token THRU 952
! %token TRUE_kw 815    "True"
  
  %token CALL_COBOL 393    "CALL"
  %token CALL_VERBATIM 394    "CALL (as C)"
  
! %token TURN 817  CHECKING 497  LOCATION 650  ON 690  WITH 844
  
! %left OR 953
! %left AND 954
! %right NOT 955
! %left '<'  '>'  '='  NE 956  LE 957  GE 958
  %left '-'  '+'
  %left '*'  '/'
! %right NEG 960
  
  %define api.prefix {ydf}
  %define api.token.prefix{YDF_}
--- 244,264 ----
  %type	<boolean>	     DEFINED
  %token OTHER 699  PARAMETER_kw 369    "PARAMETER"
  %token OFF 688  OVERRIDE 370
! %token THRU 949
! %token TRUE_kw 814    "True"
  
  %token CALL_COBOL 393    "CALL"
  %token CALL_VERBATIM 394    "CALL (as C)"
  
! %token TURN 816  CHECKING 497  LOCATION 650  ON 690  WITH 843
  
! %left OR 950
! %left AND 951
! %right NOT 952
! %left '<'  '>'  '='  NE 953  LE 954  GE 955
  %left '-'  '+'
  %left '*'  '/'
! %right NEG 957
  
  %define api.prefix {ydf}
  %define api.token.prefix{YDF_}
diff -Nrcpad gcc-16-20251019/gcc/cobol/gcobol.1 gcc-16-20251026/gcc/cobol/gcobol.1
*** gcc-16-20251019/gcc/cobol/gcobol.1	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/gcobol.1	Sun Oct 26 22:32:32 2025
*************** resolution of
*** 778,783 ****
--- 778,807 ----
  .Ar filename
  is deferred until runtime, when the name must appear in the program's
  environment.
+ .Ss XML PARSE
+ .Nm
+ emulates the IBM
+ .Sy "XML PARSE"
+ statement.  The following values for
+ .Sy XML-EVENT
+ are defined:
+ .Bl -tag -compact
+ .It Sy COMMENT
+ Text of a comment between "<!--" and "-->"
+ .It Sy CONTENT-CHARACTERS
+ Some or all of the character content of the element between start and end tags.
+ .It Sy END-OF-ELEMENT
+ End-element tag, with name if present in the input.
+ .It Sy PROCESSING-INSTRUCTION-DATA
+ Processing instruction (after the target name), excluding "?>".
+ .It Sy PROCESSING-INSTRUCTION-TARGET
+ The processing instruction target name appears in 
+ .Sy XML-TEXT
+ or
+ .Sy XML-NTEXT .
+ .It Sy START-OF-ELEMENT
+ Name of the start element tag or empty element tag.
+ .El
  .
  .Sh ISO \*[lang] Implementation Status
  .Ss USAGE Data Types
*************** error.  This feature is meant to help di
*** 1480,1485 ****
--- 1504,1521 ----
  errors.
  .El
  .
+ .Ss Variables for Developers
+ .Bl -tag -compact
+ .It Ev GCOBOL_SHOW
+ produces a trace of the internal calls made by the parser to prepare
+ the GENERIC tree.
+ .It Ev GCOBOL_TRACE
+ used at compile time, produces an executable that traces the
+ execution, mapping it back the same code-creation functions as
+ .Ev GCOBOL_SHOW ,
+ as well as the values of data items and branch conditions.
+ .El
+ .
  .Sh FILES
  Executables produced by
  .Nm
diff -Nrcpad gcc-16-20251019/gcc/cobol/genapi.cc gcc-16-20251026/gcc/cobol/genapi.cc
*** gcc-16-20251019/gcc/cobol/genapi.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/genapi.cc	Sun Oct 26 22:32:32 2025
*************** parser_enter_program( const char *funcna
*** 3988,3993 ****
--- 3988,4024 ----
    free(funcname);
    }
  
+ static class label_verify_t {
+   std::set<size_t> lain, dangling;
+   static inline size_t index_of( const cbl_label_t *label ) {
+     return symbol_index(symbol_elem_of(label));
+   }
+ public:
+   void go_to( const cbl_label_t *label ) {
+     auto p = lain.find(index_of(label));
+     if( p == lain.end() ) {
+       dangling.insert(index_of(label));
+     }
+   }
+   bool lay( const cbl_label_t *label ) {
+     auto ok = lain.insert(index_of(label));
+     if( ok.second ) {
+       dangling.erase(index_of(label));
+     }
+     return true;
+   }
+   bool vet() const { // be always agreeable, for now.
+     return dangling.empty();
+   }
+   void dump() const {
+     fprintf(stderr, "%u nonexistent labels called\n", unsigned(dangling.size()) );
+     for( auto sym : dangling ) {
+       const cbl_label_t *label = cbl_label_of(symbol_at(sym));
+       fprintf(stderr, "\t %s\n", label->name);
+     }
+   }
+ } label_verify;
+ 
  void
  parser_end_program(const char *prog_name  )
    {
*************** parser_end_program(const char *prog_name
*** 4014,4019 ****
--- 4045,4057 ----
      TRACE1_END
      }
  
+   if( ! label_verify.vet() )
+     {
+     label_verify.dump();
+     gcc_unreachable();
+     }
+ 
+ 
    if( gg_trans_unit.function_stack.size() )
      {
      // The body has been created by various parser calls.  It's time
*************** parser_accept_date_hhmmssff( struct cbl_
*** 5035,5041 ****
   */
  
  void
! parser_alphabet( cbl_alphabet_t& alphabet )
    {
    Analyze();
    SHOW_PARSE
--- 5073,5079 ----
   */
  
  void
! parser_alphabet( const cbl_alphabet_t& alphabet )
    {
    Analyze();
    SHOW_PARSE
*************** parser_alphabet( cbl_alphabet_t& alphabe
*** 5046,5051 ****
--- 5084,5092 ----
      free(psz);
      switch(alphabet.encoding)
        {
+       case iconv_CP1252_e:
+         psz = xasprintf("CP1252");
+         break;
        case ASCII_e:
          psz = xasprintf("ASCII");
          break;
*************** parser_alphabet( cbl_alphabet_t& alphabe
*** 5074,5079 ****
--- 5115,5121 ----
  
    switch(alphabet.encoding)
      {
+     case iconv_CP1252_e:
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
*************** parser_alphabet( cbl_alphabet_t& alphabe
*** 5082,5087 ****
--- 5124,5130 ----
  
      case custom_encoding_e:
        {
+ #pragma message "Use program-id to disambiguate"
        size_t alphabet_index = symbol_index(symbol_elem_of(&alphabet));
  
        unsigned char ach[256];
*************** parser_alphabet( cbl_alphabet_t& alphabe
*** 5097,5119 ****
          gg_assign(  gg_array_value(table256, ch),
                      build_int_cst_type(UCHAR, (alphabet.alphabet[i])) );
          }
        __gg__alphabet_create(alphabet.encoding,
                              alphabet_index,
                              ach,
!                             alphabet.low_index,
!                             alphabet.high_index);
        gg_call(VOID,
                "__gg__alphabet_create",
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
                gg_get_address_of(table256),
!               build_int_cst_type(INT, alphabet.low_index),
!               build_int_cst_type(INT, alphabet.high_index),
! 
                NULL_TREE );
        break;
        }
      default:
        gcc_unreachable();
      }
    }
--- 5140,5167 ----
          gg_assign(  gg_array_value(table256, ch),
                      build_int_cst_type(UCHAR, (alphabet.alphabet[i])) );
          }
+ 
+       unsigned int low_char  = alphabet.low_char;
+       unsigned int high_char = alphabet.high_char;
        __gg__alphabet_create(alphabet.encoding,
                              alphabet_index,
                              ach,
!                             low_char,
!                             high_char);
        gg_call(VOID,
                "__gg__alphabet_create",
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
                gg_get_address_of(table256),
!               build_int_cst_type(INT, low_char),
!               build_int_cst_type(INT, high_char),
                NULL_TREE );
        break;
        }
      default:
+       fprintf(stderr, "%s: Program ID %s:\n",
+               cobol_filename(),
+               cbl_label_of(symbol_at(current_program_index()))->name);
        gcc_unreachable();
      }
    }
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5130,5135 ****
--- 5178,5186 ----
      free(psz);
      switch(alphabet.encoding)
        {
+       case iconv_CP1252_e:
+         psz = xasprintf("CP1252");
+         break;
        case ASCII_e:
          psz = xasprintf("ASCII");
          break;
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5159,5164 ****
--- 5210,5216 ----
      {
      default:
        gcc_unreachable();
+     case iconv_CP1252_e:
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5167,5173 ****
        __gg__high_value_character = DEGENERATE_HIGH_VALUE;
        gg_call(VOID,
                "__gg__alphabet_use",
!               build_int_cst_type(INT, current_encoding(encoding_display_e)),
                build_int_cst_type(INT, alphabet.encoding),
                null_pointer_node,
                NULL_TREE);
--- 5219,5226 ----
        __gg__high_value_character = DEGENERATE_HIGH_VALUE;
        gg_call(VOID,
                "__gg__alphabet_use",
!               build_int_cst_type(INT, current_encoding(display_encoding_e)),
!               build_int_cst_type(INT, current_encoding(national_encoding_e)),
                build_int_cst_type(INT, alphabet.encoding),
                null_pointer_node,
                NULL_TREE);
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5183,5189 ****
  
        gg_call(VOID,
                "__gg__alphabet_use",
!               build_int_cst_type(INT, current_encoding(encoding_display_e)),
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
                NULL_TREE);
--- 5236,5243 ----
  
        gg_call(VOID,
                "__gg__alphabet_use",
!               build_int_cst_type(INT, current_encoding(display_encoding_e)),
!               build_int_cst_type(INT, current_encoding(national_encoding_e)),
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
                NULL_TREE);
*************** parser_free( size_t n, cbl_refer_t refer
*** 6802,6807 ****
--- 6856,7015 ----
      }
    }
  
+ static
+ cbl_label_addresses_t *
+ label_fetch(struct cbl_label_t *label)
+   {
+   if( !label->structs.goto_trees )
+     {
+     label->structs.goto_trees
+       = static_cast<cbl_label_addresses_t *>
+         (xmalloc(sizeof(struct cbl_label_addresses_t)));
+     gcc_assert(label->structs.goto_trees);
+ 
+     gg_create_goto_pair(&label->structs.goto_trees->go_to,
+                         &label->structs.goto_trees->label);
+     }
+   return label->structs.goto_trees;
+   }
+ 
+ void
+ parser_xml_parse( cbl_label_t *instance,
+                   cbl_refer_t input,
+                   cbl_field_t *encoding,
+                   cbl_field_t *validating,
+                   bool returns_national,
+                   cbl_label_t *from_proc,
+                   cbl_label_t *to_proc )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK("", instance)
+     SHOW_PARSE_REF(" ", input)
+     SHOW_PARSE_END
+     }
+ 
+   TRACE1
+     {
+     TRACE1_HEADER
+     TRACE1_END
+     }
+ 
+   // We know that this routine comes first in the sequence, so we can
+   // create the goto/label pairs here:
+ 
+   instance->structs.xml_parse = static_cast<struct cbl_xml_parse_t *>
+                                   (xmalloc(sizeof(struct cbl_xml_parse_t)));
+   gcc_assert(instance->structs.xml_parse);
+ 
+   gg_create_goto_pair(&instance->structs.xml_parse->over.go_to,
+                       &instance->structs.xml_parse->over.label);
+   gg_create_goto_pair(&instance->structs.xml_parse->exception.go_to,
+                       &instance->structs.xml_parse->exception.label);
+   gg_create_goto_pair(&instance->structs.xml_parse->no_exception.go_to,
+                       &instance->structs.xml_parse->no_exception.label);
+ 
+   // We need to create a COBOL ENTRY point into this function.  That entry
+   // point will be used by __gg__xml_parse to perform from_proc through to_proc
+   // as part of processing the libxml2 callbacks.
+ 
+   char ach[64];
+   static int instance_counter = 1;
+   sprintf(ach,
+           "_%s_xml_callback_%d",
+           current_function->our_name,
+           instance_counter++);
+ 
+   cbl_field_t for_entry = {};
+   for_entry.type = FldAlphanumeric;
+   for_entry.data.capacity = strlen(ach);
+   for_entry.data.initial = ach;
+   for_entry.codeset.encoding = iconv_CP1252_e;
+ 
+   // build an island for the callback:
+   tree island_goto;
+   tree island_label;
+   gg_create_goto_pair(&island_goto,
+                       &island_label);
+ 
+   gg_append_statement(island_goto);
+   // This creates the separate _xml_callback function
+   parser_entry(&for_entry, 0, nullptr);
+   // When invoked, the callback performs the processing procedures
+   parser_perform(from_proc, to_proc);
+   // And then returns back to the caller
+   gg_return(0);
+   gg_append_statement(island_label);
+ 
+   // With the callback in place, we are ready to call the library:
+   tree pcallback = gg_get_function_address(VOID, ach);
+ 
+   tree erc = gg_define_int();
+   gg_assign(erc, gg_call_expr(INT,
+                               "__gg__xml_parse",
+                               gg_get_address_of(input.field->var_decl_node),
+                               refer_offset(input),
+                               refer_size_source(input),
+                               encoding ?
+                                   gg_get_address_of(encoding->var_decl_node)
+                                 : null_pointer_node,
+                               validating ?
+                                   gg_get_address_of(validating->var_decl_node)
+                                 : null_pointer_node,
+                               build_int_cst_type(INT, returns_national),
+                               pcallback,
+                               NULL_TREE));
+   IF( erc, ne_op, integer_zero_node )
+     {
+     //gg_printf("__gg__xml_parse() failed with erc %d\n", erc, NULL_TREE);
+     gg_append_statement(instance->structs.xml_parse->exception.go_to);
+     }
+   ELSE
+     {
+     //gg_printf("__gg__xml_parse() apparently succeeded\n", NULL_TREE);
+     gg_append_statement(instance->structs.xml_parse->no_exception.go_to);
+     }
+   ENDIF
+   }
+ 
+ void
+ parser_xml_on_exception( cbl_label_t *instance )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.go_to);
+   gg_append_statement(instance->structs.xml_parse->exception.label);
+   }
+ 
+ void
+ parser_xml_not_exception( cbl_label_t *instance )
+ {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.go_to);
+   gg_append_statement(instance->structs.xml_parse->no_exception.label);
+   }
+ 
+ void parser_xml_end( cbl_label_t *instance )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.label);
+   }
+ 
  void
  parser_arith_error(cbl_label_t *arithmetic_label)
    {
*************** initialize_the_data()
*** 6933,6939 ****
    // This is one-time initialization of the libgcobol program state stack
    gg_call(VOID,
            "__gg__init_program_state",
!           build_int_cst_type(INT, current_encoding(encoding_display_e)),
            NULL_TREE);
  
    __gg__currency_signs = __gg__ct_currency_signs;
--- 7141,7148 ----
    // This is one-time initialization of the libgcobol program state stack
    gg_call(VOID,
            "__gg__init_program_state",
!           build_int_cst_type(INT, current_encoding(display_encoding_e)),
!           build_int_cst_type(INT, current_encoding(national_encoding_e)),
            NULL_TREE);
  
    __gg__currency_signs = __gg__ct_currency_signs;
*************** parser_see_stop_run(struct cbl_refer_t e
*** 7962,7984 ****
    gg_exit(returned_value);
    }
  
- static
- cbl_label_addresses_t *
- label_fetch(struct cbl_label_t *label)
-   {
-   if( !label->structs.goto_trees )
-     {
-     label->structs.goto_trees
-       = static_cast<cbl_label_addresses_t *>
-         (xmalloc(sizeof(struct cbl_label_addresses_t)));
-     gcc_assert(label->structs.goto_trees);
- 
-     gg_create_goto_pair(&label->structs.goto_trees->go_to,
-                         &label->structs.goto_trees->label);
-     }
-   return label->structs.goto_trees;
-   }
- 
  void
  parser_label_label(struct cbl_label_t *label)
    {
--- 8171,8176 ----
*************** parser_label_label(struct cbl_label_t *l
*** 8009,8014 ****
--- 8201,8218 ----
      }
  
    CHECK_LABEL(label);
+   
+ #if 1
+   // At the present time, label_verify.lay is returning true, so I edited
+   // out the if( !... ) to quiet cppcheck
+   label_verify.lay(label);
+ #else
+   if( ! label_verify.lay(label) )
+     {
+     yywarn("%s: label %qs already exists", __func__, label->name);
+     gcc_unreachable();
+     }
+ #endif
  
    if(strcmp(label->name, "_end_declaratives") == 0 )
      {
*************** parser_label_goto(struct cbl_label_t *la
*** 8048,8053 ****
--- 8252,8261 ----
      }
  
    CHECK_LABEL(label);
+   
+   label_verify.go_to(label);
+ 
+   label_verify.go_to(label);
  
    if( strcmp(label->name, "_end_declaratives") == 0 )
      {
*************** parser_file_add(struct cbl_file_t *file)
*** 9682,9687 ****
--- 9890,9896 ----
            __func__);
      }
  
+ #pragma message "Use program-id to disambiguate"
    size_t symbol_table_index = symbol_index(symbol_elem_of(file));
  
    gg_call(VOID,
*************** parser_file_add(struct cbl_file_t *file)
*** 9708,9714 ****
  /*  Right now, file->codeset.encoding is not being set properly.  Remove this
      comment and fix the following code when that's repaired.  */
  //          build_int_cst_type(INT, (int)file->codeset.encoding),
!           build_int_cst_type(INT, current_encoding(encoding_display_e)),
            build_int_cst_type(INT, (int)file->codeset.alphabet),
            NULL_TREE);
    file->var_decl_node = new_var_decl;
--- 9917,9923 ----
  /*  Right now, file->codeset.encoding is not being set properly.  Remove this
      comment and fix the following code when that's repaired.  */
  //          build_int_cst_type(INT, (int)file->codeset.encoding),
!           build_int_cst_type(INT, current_encoding(display_encoding_e)),
            build_int_cst_type(INT, (int)file->codeset.alphabet),
            NULL_TREE);
    file->var_decl_node = new_var_decl;
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11138,11143 ****
--- 11347,11362 ----
          }
        }
      }
+   else if( strcmp(function_name, "__gg__char") == 0 )
+     {
+     gg_call(VOID,
+             function_name,
+             gg_get_address_of(tgt->var_decl_node),
+             gg_get_address_of(ref1.field->var_decl_node),
+             refer_offset(ref1),
+             refer_size_source(ref1),
+             NULL_TREE);
+     }
    else
      {
      TRACE1
*************** parser_intrinsic_call_2( cbl_field_t *tg
*** 11192,11204 ****
      TRACE1_REFER("parameter 2: ", ref2, "")
      }
    store_location_stuff(function_name);
    gg_call(VOID,
            function_name,
            gg_get_address_of(tgt->var_decl_node),
            gg_get_address_of(ref1.field->var_decl_node),
            refer_offset(ref1),
            refer_size_source(ref1),
!           ref2.field ? gg_get_address_of(ref2.field->var_decl_node) : null_pointer_node,
            refer_offset(ref2),
            refer_size_source(ref2),
            NULL_TREE);
--- 11411,11425 ----
      TRACE1_REFER("parameter 2: ", ref2, "")
      }
    store_location_stuff(function_name);
+ 
    gg_call(VOID,
            function_name,
            gg_get_address_of(tgt->var_decl_node),
            gg_get_address_of(ref1.field->var_decl_node),
            refer_offset(ref1),
            refer_size_source(ref1),
!           ref2.field ? gg_get_address_of(ref2.field->var_decl_node)
!                      : null_pointer_node,
            refer_offset(ref2),
            refer_size_source(ref2),
            NULL_TREE);
*************** parser_entry( const cbl_field_t *name, s
*** 13525,13531 ****
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
!     SHOW_PARSE_FIELD( " ENTRY ", name)
      SHOW_PARSE_END
      }
  
--- 13746,13753 ----
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
!     SHOW_PARSE_TEXT(" ")
!     SHOW_PARSE_TEXT(name->data.initial)
      SHOW_PARSE_END
      }
  
diff -Nrcpad gcc-16-20251019/gcc/cobol/genapi.h gcc-16-20251026/gcc/cobol/genapi.h
*** gcc-16-20251019/gcc/cobol/genapi.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/genapi.h	Sun Oct 26 22:32:32 2025
*************** void parser_accept_date_dow( cbl_field_t
*** 81,87 ****
  void parser_accept_date_hhmmssff( cbl_field_t *tgt );
  
  void
! parser_alphabet( cbl_alphabet_t& alphabet );
  void
  parser_alphabet_use( cbl_alphabet_t& alphabet );
  
--- 81,87 ----
  void parser_accept_date_hhmmssff( cbl_field_t *tgt );
  
  void
! parser_alphabet( const cbl_alphabet_t& alphabet );
  void
  parser_alphabet_use( cbl_alphabet_t& alphabet );
  
*************** parser_allocate( cbl_refer_t size_or_bas
*** 90,95 ****
--- 90,107 ----
  void
  parser_free( size_t n, cbl_refer_t refers[] );
  
+ void parser_xml_parse( cbl_label_t *stmt,
+                        cbl_refer_t input,
+                        cbl_field_t *encoding,
+                        cbl_field_t *validating,
+                        bool returns_national,
+                        cbl_label_t *from_proc,
+                        cbl_label_t *to_proc );
+ 
+ void parser_xml_on_exception( cbl_label_t *name );
+ void parser_xml_not_exception( cbl_label_t *name );
+ void parser_xml_end( cbl_label_t *name );
+ 
  void
  parser_add( size_t nC, cbl_num_result_t *C,
              size_t nA, cbl_refer_t *A,
*************** parser_label_label( struct cbl_label_t *
*** 322,327 ****
--- 334,342 ----
  void
  parser_label_goto( struct cbl_label_t *label );
  
+ callback_t *
+ parser_label_addr( struct cbl_label_t *label );
+ 
  void
  parser_goto( cbl_refer_t value, size_t narg, cbl_label_t * const labels[] );
  
diff -Nrcpad gcc-16-20251019/gcc/cobol/parse.y gcc-16-20251026/gcc/cobol/parse.y
*** gcc-16-20251019/gcc/cobol/parse.y	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/parse.y	Sun Oct 26 22:32:32 2025
***************
*** 55,60 ****
--- 55,95 ----
      const char *alpha, *national; 
    };
  
+   struct label_pair_t {
+     cbl_label_t *from, *to;
+   };
+   
+ class locale_tgt_t {
+   char user_system_default;
+   std::vector<int> categories;
+  public:
+   locale_tgt_t() : user_system_default('\0') {}
+   locale_tgt_t( int category )
+     : user_system_default('\0')
+     , categories(1, category)
+     {}
+   locale_tgt_t operator=( int ch ) {
+     assert(categories.empty());
+     switch(ch) {
+     case 'S': case 'U':
+       user_system_default = ch;
+       return *this;
+     }
+     gcc_unreachable();
+   }
+   locale_tgt_t push_back( int token ) {
+     categories.push_back(token);
+     return *this;
+   }
+   
+   bool is_default() const { return 0 < user_system_default; }
+   char default_of() const {
+     assert(categories.empty());
+     return user_system_default;
+   }
+   const std::vector<int>& lc_categories() const { return categories; }
+ };
+ 
    class literal_t {
      size_t isym;
    public:
***************
*** 65,73 ****
  
      bool empty() const { return data == NULL; }
      size_t isymbol() const { return isym; }
!     const char * symbol_name() const {
!       return isym? cbl_field_of(symbol_at(isym))->name : "";
!     }
  
      literal_t&
      set( size_t len, char *data, const char prefix[] ) {
--- 100,106 ----
  
      bool empty() const { return data == NULL; }
      size_t isymbol() const { return isym; }
!     const char * symbol_name() const;
  
      literal_t&
      set( size_t len, char *data, const char prefix[] ) {
***************
*** 76,92 ****
        return *this;
      }
  
!     literal_t&
!     set( const cbl_field_t * field ) {
!       assert(field->has_attr(constant_e));
!       assert(is_literal(field));
  
-       set_prefix( "", 0 );
-       set_data( field->data.capacity,
-                 const_cast<char*>(field->data.initial),
-                 field_index(field) );
-       return *this;
-     }
      literal_t&
      set_data( size_t len, char *data, size_t isym = 0 ) {
        this->isym = isym;
--- 109,116 ----
        return *this;
      }
  
!     literal_t& set( const cbl_field_t * field );
  
      literal_t&
      set_data( size_t len, char *data, size_t isym = 0 ) {
        this->isym = isym;
***************
*** 99,134 ****
        }
        return *this;
      }
!     literal_t&
!     set_prefix( const char *input, size_t len ) {
!       encoding = current_encoding('A');
!       assert(len < sizeof(prefix));
!       std::fill(prefix, prefix + sizeof(prefix), '\0');
!       std::transform(input, input + len, prefix, toupper);
!       switch(prefix[0]) {
!       case '\0': case 'Z':
!         encoding = current_encoding('A');
!         break;
!       case 'N':
!         encoding = current_encoding('N');
!         if( 'X' == prefix[1] ) {
!           cbl_unimplemented("NX literals");
!         }
!         break;
!       case 'G':
!         cbl_unimplemented("DBCS encoding not supported");
!         break;
!       case 'U':
!         encoding = UTF8_e;
!         break;
!       case 'X':
!           break;
!       default:
!         gcc_unreachable();
!       }
!       assert(encoding <= iconv_YU_e);
!       return *this;
!     }
      bool
      compatible_prefix( const literal_t& that ) const {
        if( prefix[0] != that.prefix[0] ) {
--- 123,130 ----
        }
        return *this;
      }
!     literal_t& set_prefix( const char *input, size_t len );
! 
      bool
      compatible_prefix( const literal_t& that ) const {
        if( prefix[0] != that.prefix[0] ) {
***************
*** 456,462 ****
  			CF CH
  			CHANGED CHAR CHAR_NATIONAL "CHAR-NATIONAL"
  			CHARACTER CHARACTERS CHECKING CLASS
! 			COBOL CODE CODESET COLLATING
  			COLUMN COMBINED_DATETIME "COMBINED-DATETIME"
  			COMMA COMMAND_LINE "COMMAND-LINE"
  			COMMAND_LINE_COUNT "COMMAND-LINE-COUNT"
--- 452,458 ----
  			CF CH
  			CHANGED CHAR CHAR_NATIONAL "CHAR-NATIONAL"
  			CHARACTER CHARACTERS CHECKING CLASS
! 			COBOL CODE CODESET "CODE-SET" COLLATING
  			COLUMN COMBINED_DATETIME "COMBINED-DATETIME"
  			COMMA COMMAND_LINE "COMMAND-LINE"
  			COMMAND_LINE_COUNT "COMMAND-LINE-COUNT"
***************
*** 524,530 ****
  			INTEGER_OF_DAY "INTEGER-OF-DAY"
  			INTEGER_OF_FORMATTED_DATE "INTEGER-OF-FORMATTED-DATE"
  			INTEGER_PART "INTEGER-PART"
! 			INTO INTRINSIC INVOKE IO IO_CONTROL "IO-CONTROL"
  			IS ISNT "IS NOT"
  
  			KANJI KEY
--- 520,526 ----
  			INTEGER_OF_DAY "INTEGER-OF-DAY"
  			INTEGER_OF_FORMATTED_DATE "INTEGER-OF-FORMATTED-DATE"
  			INTEGER_PART "INTEGER-PART"
! 			INTO INTRINSIC INVOKE IO "I-O" IO_CONTROL "I-O-CONTROL"
  			IS ISNT "IS NOT"
  
  			KANJI KEY
***************
*** 600,606 ****
  			STATUS STRONG
  			SUBSTITUTE SUM SYMBOL SYMBOLIC SYNCHRONIZED
  
! 			TALLY TALLYING TAN TERMINATE TEST
  			TEST_DATE_YYYYMMDD "TEST-DATE-YYYYMMDD"
  			TEST_DAY_YYYYDDD "TEST-DAY-YYYYDDD"
  			TEST_FORMATTED_DATETIME "TEST-FORMATTED-DATETIME"
--- 596,602 ----
  			STATUS STRONG
  			SUBSTITUTE SUM SYMBOL SYMBOLIC SYNCHRONIZED
  
! 			TALLYING TAN TERMINATE TEST
  			TEST_DATE_YYYYMMDD "TEST-DATE-YYYYMMDD"
  			TEST_DAY_YYYYDDD "TEST-DAY-YYYYDDD"
  			TEST_FORMATTED_DATETIME "TEST-FORMATTED-DATETIME"
***************
*** 663,668 ****
--- 659,666 ----
  			UNDERLINE UNSIGNED_kw
  			UTF_16 "UTF-16"
  			UTF_8 "UTF-8"
+                         XMLGENERATE "XML GENERATE"
+                         XMLPARSE "XML PARSE"
  
  			ADDRESS
  			END_ACCEPT "END-ACCEPT"
***************
*** 814,819 ****
--- 812,818 ----
  %type   <error>         on_overflow on_overflows
  %type   <error>         arith_err arith_errs
  %type   <error>         accept_except accept_excepts call_except call_excepts
+ 
  %type   <compute_body_t> compute_body
  
  %type   <refer>         ffi_name set_operand set_tgt scalar_arg unstring_src
***************
*** 837,842 ****
--- 836,847 ----
  %type   <number>        mistake globally first_last
  %type   <io_mode>   io_mode
  
+ %type   <label_pair>    xmlprocs
+ %type   <error>         xmlexcept xmlexcepts
+ %type   <field>         xmlencoding xmlvalidating
+ %type   <number>        xmlreturning
+ %type   <label>         xmlparse_body
+ 
  %type   <labels>        labels
  %type   <label>         label_1 section_name
  
***************
*** 868,873 ****
--- 873,880 ----
  %type	<opt_init_sects>	opt_init_sects
  %type	<opt_init_sect>	        opt_init_sect
  %type	<number>        opt_init_value
+ %type	<number>        locale_current loc_category user_default
+ %type   <token_list>    loc_categories locale_tgt
  %type	<opt_round>	rounded round_between rounded_type rounded_mode
  %type	<opt_arith>	opt_arith_type
  %type	<module_type>	module_type
***************
*** 944,950 ****
--- 951,959 ----
      struct { cbl_refer_t *input, *delimiter; } delimited_1;
      struct { cbl_refer_t *from, *len; } refmod_parts;
      struct refer_collection_t *delimiteds;
+ 
      struct { cbl_label_t *on_error, *not_error; } error;
+            label_pair_t label_pair;
      struct { unsigned int nclause; bool tf; } error_clauses;
      struct refer_pair_t { cbl_refer_t *first, *second; } refer2;
      struct { refer_collection_t *inputs; refer_pair_t into; } str_body;
***************
*** 977,982 ****
--- 986,992 ----
             substitution_t substitution;
             substitutions_t  *substitutions;
      struct { bool is_locale; cbl_refer_t *arg2; } numval_locale_t;
+            locale_tgt_t *token_list;
  
      cbl_options_t::arith_t opt_arith;
      cbl_round_t opt_round;
***************
*** 1064,1071 ****
                          SEARCH SET SELECT SORT SORT_MERGE
                          STRING_kw STOP SUBTRACT START
                          UNSTRING WRITE WHEN INVALID
!                         XMLGENERATE "XML GENERATE"
!                         XMLPARSE "XML PARSE"
  
  %left                   ABS ACCESS ACOS ACTUAL ADVANCING AFP_5A AFTER ALL
                          ALLOCATE
--- 1074,1080 ----
                          SEARCH SET SELECT SORT SORT_MERGE
                          STRING_kw STOP SUBTRACT START
                          UNSTRING WRITE WHEN INVALID
!                         XMLGENERATE XMLPARSE
  
  %left                   ABS ACCESS ACOS ACTUAL ADVANCING AFP_5A AFTER ALL
                          ALLOCATE
***************
*** 1241,1247 ****
                          LITERAL SUBSTITUTE SUM SWITCH SYMBOL SYMBOLIC SYNCHRONIZED
                          SYSIN SYSIPT SYSLST SYSOUT SYSPCH SYSPUNCH
  
!                         TALLY TALLYING TAN TERMINATE TEST
  			TEST_DATE_YYYYMMDD
                          TEST_DAY_YYYYDDD
  			TEST_FORMATTED_DATETIME
--- 1250,1256 ----
                          LITERAL SUBSTITUTE SUM SWITCH SYMBOL SYMBOLIC SYNCHRONIZED
                          SYSIN SYSIPT SYSLST SYSOUT SYSPCH SYSPUNCH
  
!                         TALLYING TAN TERMINATE TEST
  			TEST_DATE_YYYYMMDD
                          TEST_DAY_YYYYDDD
  			TEST_FORMATTED_DATETIME
*************** function_id:    FUNCTION NAME program_as
*** 1589,1596 ****
                    if( !current.new_program(@NAME, LblFunction, $NAME,
  		                      $program_as.data,
                                        $attr.common, $attr.initial) ) {
!                     auto L = symbol_program(current_program_index(), $NAME);
!                     assert(L);
                      error_msg(@NAME, "FUNCTION %s already defined on line %d",
                                $NAME, L->line);
                      YYERROR;
--- 1598,1605 ----
                    if( !current.new_program(@NAME, LblFunction, $NAME,
  		                      $program_as.data,
                                        $attr.common, $attr.initial) ) {
!                     auto e = symbol_function(current_program_index(), $NAME);
!                     auto L = cbl_label_of(e);
                      error_msg(@NAME, "FUNCTION %s already defined on line %d",
                                $NAME, L->line);
                      YYERROR;
*************** device_name:	SYSIN           { $$.token
*** 2734,2742 ****
          /*      ENVIRONMENT_VALUE { $$.token=0; $$.id = ENV_VALUE_e; } */
                  ;
  
! alphabet_name:  STANDARD_ALPHABET  { $$ = alphabet_add(@1, ASCII_e); }
          |       NATIVE             { $$ = alphabet_add(@1, EBCDIC_e); }
          |       EBCDIC             { $$ = alphabet_add(@1, EBCDIC_e); }
          |       alphabet_seqs
                  {
                    $1->reencode();
--- 2743,2760 ----
          /*      ENVIRONMENT_VALUE { $$.token=0; $$.id = ENV_VALUE_e; } */
                  ;
  
! alphabet_name:  STANDARD_ALPHABET  { $$ = alphabet_add(@1, CP1252_e); }
          |       NATIVE             { $$ = alphabet_add(@1, EBCDIC_e); }
          |       EBCDIC             { $$ = alphabet_add(@1, EBCDIC_e); }
+         |       LOCALE ctx_name
+                 {
+                   auto e = symbol_alphabet(PROGRAM, $ctx_name);
+                   if( !e ) {
+                     error_msg(@ctx_name, "no such ALPHABET %qs", $ctx_name);
+                     YYERROR;
+                   }
+                   $$ = cbl_alphabet_of(e);
+                 }
          |       alphabet_seqs
                  {
                    $1->reencode();
*************** picture_clause: PIC signed nps[fore] nin
*** 4208,4223 ****
                  {
                    cbl_field_t *field = current_field();
                    field->data.digits = $left + $rdigits;
  
                    if( field->is_binary_integer() ) {
                      field->data.capacity = type_capacity(field->type,
                                                           field->data.digits);
                    } else {
                      if( !field_type_update(field, FldNumericDisplay, @$) ) {
                        YYERROR;
                      }
                      ERROR_IF_CAPACITY(@PIC, field);
-                     field->attr |= $signed;
                      field->data.capacity = field->data.digits;
                      field->data.rdigits = $rdigits;
                    }
--- 4226,4242 ----
                  {
                    cbl_field_t *field = current_field();
                    field->data.digits = $left + $rdigits;
+                   field->attr |= $signed;
  
                    if( field->is_binary_integer() ) {
                      field->data.capacity = type_capacity(field->type,
                                                           field->data.digits);
+                     field->data.rdigits = $rdigits;
                    } else {
                      if( !field_type_update(field, FldNumericDisplay, @$) ) {
                        YYERROR;
                      }
                      ERROR_IF_CAPACITY(@PIC, field);
                      field->data.capacity = field->data.digits;
                      field->data.rdigits = $rdigits;
                    }
*************** usage_clause1:  usage BIT
*** 4487,4494 ****
  			  field->clear_attr(signable_e);
  		        } else {
  			  error_msg(@comp, "numeric USAGE invalid "
! 				           "with Alpnanumeric PICTURE");
! 			  dialect_error(@1, "Alpnanumeric COMP-5 or COMP-X", "mf or gnu");
  			  YYERROR;
  		        }
                          break;
--- 4506,4513 ----
  			  field->clear_attr(signable_e);
  		        } else {
  			  error_msg(@comp, "numeric USAGE invalid "
! 				           "with Alphanumeric PICTURE");
! 			  dialect_error(@1, "Alphanumeric COMP-5 or COMP-X", "mf or gnu");
  			  YYERROR;
  		        }
                          break;
*************** usage_clause1:  usage BIT
*** 4568,4575 ****
  			  field->clear_attr(signable_e);
  		        } else {
  			  error_msg(@comp, "numeric USAGE invalid "
! 				           "with Alpnanumeric PICTURE");
! 			  dialect_error(@1, "Alpnanumeric COMP-5 or COMP-X", "mf or gnu");
  			  YYERROR;
  		        }
                          break;
--- 4587,4594 ----
  			  field->clear_attr(signable_e);
  		        } else {
  			  error_msg(@comp, "numeric USAGE invalid "
! 				           "with Alphanumeric PICTURE");
! 			  dialect_error(@1, "Alphanumeric COMP-5 or COMP-X", "mf or gnu");
  			  YYERROR;
  		        }
                          break;
*************** num_value:      scalar // might actually
*** 7341,7348 ****
          |       DETAIL OF scalar {$$ = $scalar; }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7360,7366 ----
          |       DETAIL OF scalar {$$ = $scalar; }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** num_value:      scalar // might actually
*** 7350,7357 ****
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7368,7374 ----
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** num_value:      scalar // might actually
*** 7359,7366 ****
                  }
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7376,7382 ----
                  }
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** signed_literal:     num_literal
*** 7576,7583 ****
                  }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new_tempnumeric();
! 		  $$->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7592,7598 ----
                  }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new_tempnumeric(none_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** signed_literal:     num_literal
*** 7585,7592 ****
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new_tempnumeric();
! 		  $$->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7600,7606 ----
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new_tempnumeric(none_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** signed_literal:     num_literal
*** 7594,7601 ****
                  }
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new_tempnumeric();
! 		  $$->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 7608,7614 ----
                  }
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new_tempnumeric(none_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** varg1a:         ADDRESS OF scalar {
*** 8146,8153 ****
                  }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 8159,8165 ----
                  }
          |       LENGTH_OF binary_type[size] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** varg1a:         ADDRESS OF scalar {
*** 8155,8162 ****
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 8167,8173 ----
  		}
          |       LENGTH_OF name[val] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** varg1a:         ADDRESS OF scalar {
*** 8164,8171 ****
  		}
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric() );
! 		  $$->field->clear_attr(signable_e);
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
--- 8175,8181 ----
  		}
          |       LENGTH_OF name[val] subscripts[subs] {
                    location_set(@1);
!                   $$ = new cbl_refer_t( new_tempnumeric(none_e) );
                    if( dialect_gcc() ) {
  		    dialect_error(@1, "LENGTH OF", "ibm");
                    }
*************** set:            SET set_tgts[tgts] TO se
*** 8881,8886 ****
--- 8891,8913 ----
                      new_literal($src, quoted_e);
                    ast_set_pointers($tgts->targets, literal);
                  }
+                 // Format 12 (save-locale):
+         |       SET set_tgts[tgts] TO LOCALE locale_current
+                 {
+                   if( $tgts->targets.size() > 1 ) {
+                     error_msg(@tgts, "only 1 save-locale data-item is valid");
+                   }
+                   switch($locale_current) {
+                   case LC_ALL_kw:
+                   case DEFAULT:
+                    ast_save_locale($tgts->targets.front().refer, $locale_current);
+                     break;
+                   default:
+                     gcc_unreachable();
+                   }
+                   cbl_unimplementedw("unimplemented: SET TO LOCALE");
+                 }
+                 ;
          |       SET set_tgts[tgts] UP BY num_operand[src]
                  {
                    statement_begin(@1, SET);
*************** set:            SET set_tgts[tgts] TO se
*** 8939,8944 ****
--- 8966,9007 ----
                                  set_conditional($yn));
                  }
          |       SET { statement_begin(@1, SET); } many_switches
+ 
+                 // Format 11 (set-locale):
+         |       SET LOCALE locale_tgt[tgt] TO locale_src
+                 {
+                   if( $tgt->is_default() ) {
+                     // do something $tgt->default_of()
+                   } else {
+                     // do something $tgt->lc_categories()
+                   }
+                   cbl_unimplementedw("unimplemented: SET LOCALE");
+                 }
+                 ;
+ 
+ locale_tgt:     user_default { $$ = new locale_tgt_t(); *$$ = $1; }
+         |       loc_categories
+                 ;
+ loc_categories: loc_category { $$ = new locale_tgt_t($1); }
+         |       loc_categories loc_category {
+                   $$ = $1;
+                   $$->push_back($2);
+                 }
+                 ;
+ loc_category:   LC_ALL_kw      { $$ = LC_ALL_kw; }
+         |       LC_COLLATE_kw  { $$ = LC_COLLATE_kw; }
+         |       LC_CTYPE_kw    { $$ = LC_CTYPE_kw; }
+         |       LC_MESSAGES_kw { $$ = LC_MESSAGES_kw; }
+         |       LC_MONETARY_kw { $$ = LC_MONETARY_kw; }
+         |       LC_NUMERIC_kw  { $$ = LC_NUMERIC_kw; }
+         |       LC_TIME_kw     { $$ = LC_TIME_kw; }
+                 ;
+ locale_src:     scalar
+         |       DEFAULT { assert($1 == 'U' || $1 == 'S'); }
+                 ;
+ 
+ locale_current: LC_ALL_kw    { $$ = LC_ALL_kw; } // locale to be saved by SET Format 12.
+         |       user_default { $$ = DEFAULT; }
                  ;
  
  many_switches:                set_switches
*************** sort_target:    label_name
*** 9273,9288 ****
  
  release:        RELEASE NAME[record] FROM scalar[name]
                  {
!                   statement_begin(@1, RELEASE);
!                   symbol_elem_t *record = symbol_find(@record, $record);
!                   parser_move(cbl_field_of(record), *$name);
!                   parser_release(cbl_field_of(record));
                  }
          |       RELEASE NAME[record]
                  {
!                   statement_begin(@1, RELEASE);
!                   symbol_elem_t *record = symbol_find(@record, $record);
!                   parser_release(cbl_field_of(record));
                  }
                  ;
  
--- 9336,9355 ----
  
  release:        RELEASE NAME[record] FROM scalar[name]
                  {
!                   if( ! mode_syntax_only() ) {
!                     statement_begin(@1, RELEASE);
!                     symbol_elem_t *record = symbol_find(@record, $record);
!                     parser_move(cbl_field_of(record), *$name);
!                     parser_release(cbl_field_of(record));
!                   }
                  }
          |       RELEASE NAME[record]
                  {
!                   if( ! mode_syntax_only() ) {
!                     statement_begin(@1, RELEASE);
!                     symbol_elem_t *record = symbol_find(@record, $record);
!                     parser_release(cbl_field_of(record));
!                   }
                  }
                  ;
  
*************** intrinsic:      function_udf
*** 10705,10719 ****
                  }
  	|	LENGTH '(' tableish[val] ')' {
                    location_set(@1);
!                   $$ = new_tempnumeric("LENGTH");
! 		  $$->clear_attr(signable_e);
  		  parser_set_numeric($$, $val->field->size());
  		  if( ! intrinsic_call_1($$, LENGTH, $val, @val)) YYERROR;
  		}
  	|	LENGTH '(' varg1a[val] ')' {
                    location_set(@1);
!                   $$ = new_tempnumeric("LENGTH");
! 		  $$->clear_attr(signable_e);
  		  parser_set_numeric($$, $val->field->data.capacity);
  		  if( ! intrinsic_call_1($$, LENGTH, $val, @val)) YYERROR;
  		}
--- 10772,10784 ----
                  }
  	|	LENGTH '(' tableish[val] ')' {
                    location_set(@1);
!                   $$ = new_tempnumeric("LENGTH", none_e);
  		  parser_set_numeric($$, $val->field->size());
  		  if( ! intrinsic_call_1($$, LENGTH, $val, @val)) YYERROR;
  		}
  	|	LENGTH '(' varg1a[val] ')' {
                    location_set(@1);
!                   $$ = new_tempnumeric("LENGTH", none_e);
  		  parser_set_numeric($$, $val->field->data.capacity);
  		  if( ! intrinsic_call_1($$, LENGTH, $val, @val)) YYERROR;
  		}
*************** intrinsic:      function_udf
*** 10738,10744 ****
          |       ORD  '(' alpha_val[r1] ')'
                  {
                    location_set(@1);
!                   $$ = new_tempnumeric("ORD");
                    if( ! intrinsic_call_1($$, ORD, $r1, @r1)) YYERROR;
                  }
          |       RANDOM
--- 10803,10809 ----
          |       ORD  '(' alpha_val[r1] ')'
                  {
                    location_set(@1);
!                   $$ = new_tempnumeric("ORD", none_e);
                    if( ! intrinsic_call_1($$, ORD, $r1, @r1)) YYERROR;
                  }
          |       RANDOM
*************** usage:          %empty
*** 11436,11441 ****
--- 11501,11520 ----
          |       USAGE IS
                  ;
  
+ user_default:   DEFAULT
+                 { // cannot be empty
+                   switch( $1 ) {
+                   case 'U': break;
+                   case 'S':
+                     error_msg(@1, "invalid syntax: SYSTEM-DEFAULT");
+                     break;
+                   default: 
+                     error_msg(@1, "invalid syntax: DEFAULT");
+                     gcc_unreachable();
+                   }
+                 }
+                 ;
+ 
  with:           %empty
          |       WITH
                  ;
*************** xml_generic_numeric:
*** 11689,11728 ****
                  ;
  
  xmlparse:       xmlparse_impl end_xml {
!                   cbl_unimplemented("XML PARSE");
                  }
          |       xmlparse_cond end_xml {
!                   cbl_unimplemented("XML PARSE");
                  }
                  ;
! xmlparse_impl:  XMLPARSE xmlparse_body 
                  ;
  xmlparse_cond:  XMLPARSE xmlparse_body[body] xmlexcepts[err]
                  ;
  
! xmlparse_body:  XMLPARSE name xmlencoding xmlreturning xmlvalidating
!                 PROCESSING PROCEDURE is xmlprocs
                  ;
  
! xmlencoding:    %empty %prec NAME
!         |       with ENCODING name [codepage]
                  ;
  
! xmlreturning:   %empty
!         |       RETURNING NATIONAL
                  ;
! xmlvalidating:  %empty
!         |       VALIDATING with name
!         |       VALIDATING with FILE_KW name
                  ;
! xmlprocs:       label_1[proc]
!         |       label_1[proc1] THRU label_1[proc2]
                  ;
  
  xmlexcepts:     xmlexcept[a] statements %prec XMLPARSE
          |       xmlexcepts[a] xmlexcept[b] statements %prec XMLPARSE
!         ;
  xmlexcept:      EXCEPTION
                  ;
  
  end_xml:        %empty     %prec XMLPARSE
--- 11768,11882 ----
                  ;
  
  xmlparse:       xmlparse_impl end_xml {
!                   auto xml_stmt = xml_statements.top();
!                   parser_xml_end(xml_stmt);
!                   xml_statements.pop();
!                   current.declaratives_evaluate();
                  }
          |       xmlparse_cond end_xml {
!                   auto xml_stmt = xml_statements.top();
!                   parser_xml_end(xml_stmt);
!                   xml_statements.pop();
!                   current.declaratives_evaluate();
                  }
                  ;
! xmlparse_impl:  XMLPARSE xmlparse_body[body]
!                 {
!                   parser_xml_on_exception($body);
!                   parser_xml_not_exception($body);
!                 }
                  ;
  xmlparse_cond:  XMLPARSE xmlparse_body[body] xmlexcepts[err]
+                 {
+                   if( ! $err.on_error )  parser_xml_on_exception($body);
+                   if( ! $err.not_error ) parser_xml_not_exception($body);
+                 }
                  ;
  
! xmlparse_body:  scalar xmlencoding xmlreturning xmlvalidating
!                 PROCESSING PROCEDURE is xmlprocs[procs]
!                 {
!                   $$ = label_add(@$, LblXml, uniq_label("xml"));
!                   xml_statements.push($$);
!                   statement_begin(@$, XMLPARSE);
!                   parser_xml_parse( $$,
!                                     *$scalar,
!                                     $xmlencoding,
!                                     $xmlvalidating,
!                                     $xmlreturning == NATIONAL,
!                                     $procs.from, 
!                                     $procs.to );
!                 }
                  ;
  
! xmlencoding:    %empty %prec NAME { $$ = nullptr; }
!         |       with ENCODING name [codepage] { $$ = $codepage; }
                  ;
  
! xmlreturning:   %empty             { $$ = 0; }
!         |       RETURNING NATIONAL { $$ = NATIONAL; }
                  ;
! xmlvalidating:  %empty                       { $$ = nullptr; }
!         |       VALIDATING with name         { $$ = $name; }
!         |       VALIDATING with FILE_KW name { $$ = $name; }
                  ;
! xmlprocs:       label_1 {
!                   $$ = label_pair_t{$1};
!                 }
!         |       label_1[from] THRU label_1[to] {
!                   $$ = label_pair_t{$from, $to};
!                 }
                  ;
  
  xmlexcepts:     xmlexcept[a] statements %prec XMLPARSE
+                 {
+                   assert( $a.on_error || $a.not_error );
+                   assert( ! ($a.on_error && $a.not_error) );
+                   $$ = $a;
+                 }
          |       xmlexcepts[a] xmlexcept[b] statements %prec XMLPARSE
!                 {
!                   if( $a.on_error && $a.not_error ) {
!                     error_msg(@1, "too many ON ERROR clauses");
!                     YYERROR;
!                   }
!                   // "ON" and "NOT ON" could be reversed, but not duplicated.
!                   if( $a.on_error && $b.on_error ) {
!                     error_msg(@1, "duplicate ON ERROR clauses");
!                     YYERROR;
!                   }
!                   if( $a.not_error && $b.not_error ) {
!                     error_msg(@1, "duplicate NOT ON ERROR clauses");
!                     YYERROR;
!                   }
!                   $$ = $a;
!                   if( $$.on_error ) {
!                     assert($b.not_error);
!                     $$.not_error = $b.not_error;
!                   } else {
!                     assert($b.on_error);
!                     $$.on_error = $b.on_error;
!                   }
!                 }
!                 ;
  xmlexcept:      EXCEPTION
+                 {
+                   auto xml_stmt = xml_statements.top();
+                   // The value of the pointer no longer matters, only NULL or not. 
+                   $$.on_error = $$.not_error = nullptr;
+                   switch($1) {
+                   case EXCEPTION:
+                     $$.on_error = xml_stmt;
+                     parser_xml_on_exception(xml_stmt);
+                     break;
+                   case NOT:
+                     $$.not_error = xml_stmt;
+                     parser_xml_not_exception(xml_stmt);
+                     break;
+                   default:
+                     gcc_unreachable();
+                   }
+                 }
                  ;
  
  end_xml:        %empty     %prec XMLPARSE
*************** bool iso_cobol_word( const std::string&
*** 11864,11875 ****
   * REPOSITORY names.
   */
  
- // tokens.h is generated as needed from parse.h with tokens.h.gen
- current_tokens_t::tokenset_t::tokenset_t() {
- #include "token_names.h"
- }
- 
- 
  // Look up the lowercase form of a keyword, excluding some CDF names.
  int
  current_tokens_t::tokenset_t::find( const cbl_name_t name, bool include_intrinsics ) {
--- 12018,12023 ----
*************** cbl_figconst_field_of( const char *value
*** 13391,13396 ****
--- 13539,13592 ----
    return token == 0 ? nullptr : constant_of(constant_index(token));
  }
  
+ const char *
+ literal_t::symbol_name() const {
+   return isym? cbl_field_of(symbol_at(isym))->name : "";
+ }
+ 
+ literal_t&
+ literal_t::set( const cbl_field_t * field ) {
+   assert(field->has_attr(constant_e));
+   assert(is_literal(field));
+ 
+   set_prefix( "", 0 );
+   set_data( field->data.capacity,
+             const_cast<char*>(field->data.initial),
+             field_index(field) );
+   return *this;
+ }
+ 
+ literal_t&
+ literal_t::set_prefix( const char *input, size_t len ) {
+   encoding = current_encoding('A');
+   assert(len < sizeof(prefix));
+   std::fill(prefix, prefix + sizeof(prefix), '\0');
+   std::transform(input, input + len, prefix, toupper);
+   switch(prefix[0]) {
+   case '\0': case 'Z':
+     encoding = current_encoding('A');
+     break;
+   case 'N':
+     encoding = current_encoding('N');
+     if( 'X' == prefix[1] ) {
+       cbl_unimplemented("NX literals");
+     }
+     break;
+   case 'G':
+     cbl_unimplemented("DBCS encoding not supported");
+     break;
+   case 'U':
+     encoding = UTF8_e;
+     break;
+   case 'X':
+       break;
+   default:
+     gcc_unreachable();
+   }
+   assert(encoding <= iconv_YU_e);
+   return *this;
+ }
+ 
  
  cbl_field_attr_t
  literal_attr( const char prefix[] ) {
*************** eval_subject_t::compare( const cbl_refer
*** 13766,13768 ****
--- 13962,13965 ----
    parser_relop(result, subject, eq_op, object);
    return result;
  }
+ 
diff -Nrcpad gcc-16-20251019/gcc/cobol/parse_ante.h gcc-16-20251026/gcc/cobol/parse_ante.h
*** gcc-16-20251019/gcc/cobol/parse_ante.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/parse_ante.h	Sun Oct 26 22:32:32 2025
*************** name_of( cbl_field_t *field ) {
*** 278,283 ****
--- 278,286 ----
    // associated with returning a static.  I don't actually know. -- RJD.
    static size_t static_length = 0;
    static char * static_buffer = nullptr;
+   
+   if( field->data.initial == nullptr ) return field->name;
+ 
    if( field->name[0] == '_' )
      {
      // Make a copy of .initial
*************** class eval_subject_t {
*** 757,762 ****
--- 760,767 ----
    }
  };
  
+ static std::stack<cbl_label_t *> xml_statements;
+ 
  class evaluate_t : private std::stack<eval_subject_t> {
  public:
    size_t depth() const { return size(); }
*************** char *
*** 2366,2373 ****
  normalize_picture( char picture[] );
  
  static inline cbl_field_t *
! new_tempnumeric(const cbl_name_t name = nullptr) {
!   return new_temporary(FldNumericBin5, name);
  }
  
  static inline cbl_field_t *
--- 2371,2383 ----
  normalize_picture( char picture[] );
  
  static inline cbl_field_t *
! new_tempnumeric(const cbl_name_t name = nullptr, cbl_field_attr_t attr = signable_e ) {
!   return new_temporary(FldNumericBin5, name, attr == signable_e);
! }
! 
! static inline cbl_field_t *
! new_tempnumeric(const cbl_field_attr_t attr ) {
!   return new_temporary(FldNumericBin5, nullptr, attr == signable_e);
  }
  
  static inline cbl_field_t *
*************** ast_set_pointers( const list<cbl_num_res
*** 3183,3188 ****
--- 3193,3208 ----
    parser_set_pointers(nptr, ptrs.data(), src);
  }
  
+ static void
+ ast_save_locale( cbl_refer_t refer, int /* token */ ) {
+   assert( ! refer.addr_of && ! refer.is_reference() );
+   if( ! refer.is_pointer() ) {
+     error_msg(refer.loc, "%s must be USAGE POINTER", refer.name());
+     return;
+   }
+   cbl_unimplemented("SET identifier-11 TO LOCALE");
+ }
+ 
  void
  stringify( refer_collection_t *inputs,
             const cbl_refer_t& into, const cbl_refer_t& pointer,
*************** data_division_ready() {
*** 3269,3275 ****
      const char *name = current.collating_sequence();
  
      if( ! symbols_alphabet_set(PROGRAM, name) ) {
!       error_msg(yylloc, "no alphabet '%s' defined", name);
        return false;
      }
    }
--- 3289,3299 ----
      const char *name = current.collating_sequence();
  
      if( ! symbols_alphabet_set(PROGRAM, name) ) {
!       if( name ) {
!         error_msg(yylloc, "no alphabet '%s' defined", name);
!       } else {
!         error_msg(yylloc, "no alphabet defined");
!       }
        return false;
      }
    }
diff -Nrcpad gcc-16-20251019/gcc/cobol/scan.l gcc-16-20251026/gcc/cobol/scan.l
*** gcc-16-20251019/gcc/cobol/scan.l	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/scan.l	Sun Oct 26 22:32:32 2025
*************** THAN		{ return THAN; }
*** 517,523 ****
  TEST		{ return TEST; }
  TERMINATE	{ return TERMINATE; }
  TALLYING	{ return TALLYING; }
- TALLY		{ return TALLY; }
  SYSPUNCH	{ return SYSPUNCH; }
  SYSOUT		{ return SYSOUT; }
  SYSIN		{ return SYSIN; }
--- 517,522 ----
*************** USE({SPC}FOR)?		{ return USE; }
*** 997,1008 ****
    COMP(UTATIONAL)?-X		{ return ucomputable(FldNumericBin5, 0xFF); }
    COMP(UTATIONAL)?-6		{ return ucomputable(FldPacked, 0); }
    COMP(UTATIONAL)?-5		{ return ucomputable(FldNumericBin5, 0); }
!   COMP(UTATIONAL)?-4		{ return scomputable(FldNumericBinary, 0); }
    COMP(UTATIONAL)?-3		{ return PACKED_DECIMAL; }
    COMP(UTATIONAL)?-2		{ return ucomputable(FldFloat, 8); }
    COMP(UTATIONAL)?-1		{ return ucomputable(FldFloat, 4); }
    COMP(UTATIONAL)?		{ return ucomputable(FldNumericBinary, 0); }
!   BINARY            		{ return scomputable(FldNumericBinary, 0); }
  
    BINARY-CHAR	   		{ return bcomputable(FldNumericBin5, 1); }
    BINARY-SHORT	  		{ return bcomputable(FldNumericBin5, 2); }
--- 996,1007 ----
    COMP(UTATIONAL)?-X		{ return ucomputable(FldNumericBin5, 0xFF); }
    COMP(UTATIONAL)?-6		{ return ucomputable(FldPacked, 0); }
    COMP(UTATIONAL)?-5		{ return ucomputable(FldNumericBin5, 0); }
!   COMP(UTATIONAL)?-4		{ return ucomputable(FldNumericBinary, 0); }
    COMP(UTATIONAL)?-3		{ return PACKED_DECIMAL; }
    COMP(UTATIONAL)?-2		{ return ucomputable(FldFloat, 8); }
    COMP(UTATIONAL)?-1		{ return ucomputable(FldFloat, 4); }
    COMP(UTATIONAL)?		{ return ucomputable(FldNumericBinary, 0); }
!   BINARY            		{ return ucomputable(FldNumericBinary, 0); }
  
    BINARY-CHAR	   		{ return bcomputable(FldNumericBin5, 1); }
    BINARY-SHORT	  		{ return bcomputable(FldNumericBin5, 2); }
*************** BASIS		{ yy_push_state(basis); return BA
*** 2262,2268 ****
    DE		{ return DE; }
    DECIMAL-POINT	{ return DECIMAL_POINT; }
    DECLARATIVES	{ return DECLARATIVES; }
!   DEFAULT	{ return DEFAULT; }
    DELETE	{ return DELETE; }
    DELIMITED	{ return DELIMITED; }
    DELIMITER	{ return DELIMITER; }
--- 2261,2267 ----
    DE		{ return DE; }
    DECIMAL-POINT	{ return DECIMAL_POINT; }
    DECLARATIVES	{ return DECLARATIVES; }
!   DEFAULT	{ yylval.number = 'D'; return DEFAULT; }
    DELETE	{ return DELETE; }
    DELIMITED	{ return DELIMITED; }
    DELIMITER	{ return DELIMITER; }
diff -Nrcpad gcc-16-20251019/gcc/cobol/scan_ante.h gcc-16-20251026/gcc/cobol/scan_ante.h
*** gcc-16-20251019/gcc/cobol/scan_ante.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/scan_ante.h	Sun Oct 26 22:32:32 2025
*************** keyword_alias_add( const std::string& ke
*** 575,610 ****
  struct bint_t {
    int token;
    cbl_field_type_t type;
!   uint32_t capacity;
    bool signable;
  };
  static const std::map <std::string, bint_t > binary_integers {
!   { "COMP-X", { COMPUTATIONAL, FldNumericBin5, 0xFF, false } }, 
!   { "COMP-6", { COMPUTATIONAL, FldPacked, 0, false } }, 
!   { "COMP-5", { COMPUTATIONAL, FldNumericBin5, 0, false } }, 
!   { "COMP-4", { COMPUTATIONAL, FldNumericBinary, 0, true } }, 
!   { "COMP-2", { COMPUTATIONAL, FldFloat, 8, false } }, 
!   { "COMP-1", { COMPUTATIONAL, FldFloat, 4, false } }, 
!   { "COMP", { COMPUTATIONAL, FldNumericBinary, 0, false } }, 
!   { "COMPUTATIONAL-X", { COMPUTATIONAL, FldNumericBin5, 0xFF, false } }, 
!   { "COMPUTATIONAL-6", { COMPUTATIONAL, FldPacked, 0, false } }, 
!   { "COMPUTATIONAL-5", { COMPUTATIONAL, FldNumericBin5, 0, false } }, 
!   { "COMPUTATIONAL-4", { COMPUTATIONAL, FldNumericBinary, 0, true } }, 
!   { "COMPUTATIONAL-2", { COMPUTATIONAL, FldFloat, 8, false } }, 
!   { "COMPUTATIONAL-1", { COMPUTATIONAL, FldFloat, 4, false } }, 
!   { "COMPUTATIONAL", { COMPUTATIONAL, FldNumericBinary, 0, false } }, 
!   { "BINARY", { BINARY_INTEGER, FldNumericBinary, 0, true } }, 
!   { "BINARY-CHAR", { BINARY_INTEGER, FldNumericBin5, 1, true } }, 
!   { "BINARY-SHORT", { BINARY_INTEGER, FldNumericBin5, 2, true } }, 
!   { "BINARY-LONG", { BINARY_INTEGER, FldNumericBin5, 4, true } }, 
!   { "BINARY-DOUBLE", { BINARY_INTEGER, FldNumericBin5, 8, true } }, 
!   { "BINARY-LONG-LONG", { BINARY_INTEGER, FldNumericBin5, 8, true } }, 
!   { "FLOAT-BINARY-32", { COMPUTATIONAL, FldFloat, 4, false } }, 
!   { "FLOAT-BINARY-64", { COMPUTATIONAL, FldFloat, 8, false } }, 
    { "FLOAT-BINARY-128", { COMPUTATIONAL, FldFloat, 16, false } }, 
!   { "FLOAT-EXTENDED", { COMPUTATIONAL, FldFloat, 16, false } }, 
!   { "FLOAT-LONG", { COMPUTATIONAL, FldFloat, 8, false } }, 
!   { "FLOAT-SHORT", { COMPUTATIONAL, FldFloat, 4, false } }, 
  };
  
  static int
--- 575,615 ----
  struct bint_t {
    int token;
    cbl_field_type_t type;
!   uint32_t capacity; // zero means capacity depends on PICTURE
    bool signable;
  };
  static const std::map <std::string, bint_t > binary_integers {
!   { "BINARY",           { COMPUTATIONAL, FldNumericBinary,  0, false } }, 
!   { "COMP",             { COMPUTATIONAL, FldNumericBinary,  0, false } }, 
!   { "COMPUTATIONAL",    { COMPUTATIONAL, FldNumericBinary,  0, false } }, 
!   { "COMP-4",           { COMPUTATIONAL, FldNumericBinary,  0, false } }, 
!   { "COMPUTATIONAL-4",  { COMPUTATIONAL, FldNumericBinary,  0, false } }, 
!   
!   { "BINARY-CHAR",      { BINARY_INTEGER, FldNumericBin5,   1, true } }, 
!   { "BINARY-SHORT",     { BINARY_INTEGER, FldNumericBin5,   2, true } }, 
!   { "BINARY-LONG",      { BINARY_INTEGER, FldNumericBin5,   4, true } }, 
!   { "BINARY-DOUBLE",    { BINARY_INTEGER, FldNumericBin5,   8, true } }, 
!   { "BINARY-LONG-LONG", { BINARY_INTEGER, FldNumericBin5,   8, true } }, 
! 
!   { "COMP-5",           { COMPUTATIONAL, FldNumericBin5,    0, false } }, 
!   { "COMPUTATIONAL-5",  { COMPUTATIONAL, FldNumericBin5,    0, false } }, 
!   { "COMP-X",           { COMPUTATIONAL, FldNumericBin5, 0xFF, false } }, 
!   { "COMPUTATIONAL-X",  { COMPUTATIONAL, FldNumericBin5, 0xFF, false } }, 
! 
!   { "COMP-1",           { COMPUTATIONAL, FldFloat,  4, false } }, 
!   { "COMPUTATIONAL-1",  { COMPUTATIONAL, FldFloat,  4, false } }, 
!   { "FLOAT-BINARY-32",  { COMPUTATIONAL, FldFloat,  4, false } }, 
!   { "FLOAT-SHORT",      { COMPUTATIONAL, FldFloat,  4, false } }, 
! 
!   { "COMP-2",           { COMPUTATIONAL, FldFloat,  8, false } }, 
!   { "COMPUTATIONAL-2",  { COMPUTATIONAL, FldFloat,  8, false } }, 
!   { "FLOAT-BINARY-64",  { COMPUTATIONAL, FldFloat,  8, false } }, 
!   { "FLOAT-LONG",       { COMPUTATIONAL, FldFloat,  8, false } }, 
    { "FLOAT-BINARY-128", { COMPUTATIONAL, FldFloat, 16, false } }, 
!   { "FLOAT-EXTENDED",   { COMPUTATIONAL, FldFloat, 16, false } }, 
! 
!   { "COMP-6",           { COMPUTATIONAL, FldPacked, 0, false } }, 
!   { "COMPUTATIONAL-6",  { COMPUTATIONAL, FldPacked, 0, false } }, 
  };
  
  static int
diff -Nrcpad gcc-16-20251019/gcc/cobol/scan_post.h gcc-16-20251026/gcc/cobol/scan_post.h
*** gcc-16-20251019/gcc/cobol/scan_post.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/scan_post.h	Sun Oct 26 22:32:32 2025
*************** yylex(void) {
*** 401,403 ****
--- 401,412 ----
  
    return token;
  }
+ 
+ /*
+  * Token name<->string utilities
+  */
+ 
+ // tokens.h is generated as needed from parse.h with tokens.h.gen
+ current_tokens_t::tokenset_t::tokenset_t() {
+ #include "token_names.h"
+ };
diff -Nrcpad gcc-16-20251019/gcc/cobol/symbols.cc gcc-16-20251026/gcc/cobol/symbols.cc
*** gcc-16-20251019/gcc/cobol/symbols.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/symbols.cc	Sun Oct 26 22:32:32 2025
*************** extend_66_capacity( cbl_field_t *alias )
*** 1634,1639 ****
--- 1634,1642 ----
  
  bool
  symbols_alphabet_set( size_t program, const char name[]) {
+ 
+ ////////
+ // Older version
    struct alpha {
      void operator()( symbol_elem_t& elem ) const {
        if( elem.type == SymAlphabet ) {
*************** symbols_alphabet_set( size_t program, co
*** 1654,1659 ****
--- 1657,1694 ----
      parser_alphabet_use(*cbl_alphabet_of(e));
    }
    return true;
+ // End older version
+ ////////
+ 
+ ////  // Define alphabets for codegen.
+ ////  const cbl_alphabet_t *alphabet = nullptr;
+ ////  bool supported = true;
+ ////  
+ ////  std::for_each( symbols_begin(program), symbols_end(),
+ ////                 [&alphabet, &supported]( const auto& sym ) {
+ ////                   if( sym.type == SymAlphabet ) {
+ ////                     alphabet = cbl_alphabet_of(&sym);
+ ////                     supported = __gg__encoding_iconv_valid(alphabet->encoding);
+ ////                     if( supported ) {
+ ////                       parser_alphabet( *alphabet );
+ ////                     }
+ ////                   }
+ ////                 } );
+ ////  if( ! supported ) {
+ ////    const char *encoding = __gg__encoding_iconv_name(alphabet->encoding);
+ ////    cbl_unimplemented("alphabet %qs (as %qs)", alphabet->name, encoding);
+ ////    return false;
+ ////  }
+ ////  
+ ////  // Set collation sequence before parser_symbol_add.`
+ ////  if( name ) {
+ ////    symbol_elem_t *e = symbol_alphabet(program, name);
+ ////    if( !e ) {
+ ////      return false;
+ ////    }
+ ////    parser_alphabet_use(*cbl_alphabet_of(e));
+ ////  }
+ ////  return true;
  }
  
  static std::ostream&
*************** symbol_table_init(void) {
*** 2352,2357 ****
--- 2387,2393 ----
    assert(table.nelem < table.capacity);
    std::for_each(debug_start+1, p, parent_elem_set(debug_start - table.elems));
  
+   // special registers
    static cbl_field_t special_registers[] = {
      { FldNumericDisplay, register_e, {2,2,2,0, NULL}, 0, "_FILE_STATUS" },
      { FldNumericBin5,    register_e, {2,2,4,0, NULL}, 0, "UPSI-0" },
*************** symbol_table_init(void) {
*** 2363,2369 ****
      { FldLiteralA, constq|register_e, {0,0,0,0, "/dev/null"},   0, "_dev_null" },
    };
  
-   // special registers
    assert(table.nelem + COUNT_OF(special_registers) < table.capacity);
  
    p = table.elems + table.nelem;
--- 2399,2404 ----
*************** symbol_table_init(void) {
*** 2373,2378 ****
--- 2408,2433 ----
    table.nelem = p - table.elems;
    assert(table.nelem < table.capacity);
  
+   // xml registers
+   static cbl_field_t xml_registers[] = {
+     { FldNumericBin5,  register_e, {4,4,9,0, "0"}, 1, "XML-CODE" },
+     { FldAlphanumeric, register_e, {30,30,0,0, " "}, 1, "XML-EVENT" },
+     { FldNumericBin5,  register_e, {4,4,9,0, "0"}, 1, "XML-INFORMATION" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-NAMESPACE" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-NNAMESPACE" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-NAMESPACE-PREFIX" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-NNAMESPACE-PREFIX" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-TEXT" },
+     { FldAlphanumeric, register_e | based_e | any_length_e, {1,1,0,0, nullptr}, 1, "XML-NTEXT" },
+   }, * const eoxml = xml_registers + COUNT_OF(xml_registers);
+ 
+   assert(table.nelem + COUNT_OF(xml_registers) < table.capacity);
+ 
+   p = table.elems + table.nelem;
+   p = std::transform(xml_registers, eoxml, p, elementize);
+   table.nelem = p - table.elems;
+   assert(table.nelem < table.capacity);
+ 
    // Initialize symbol table.
    symbols = table;
  
*************** cbl_alphabet_t::reencode()  {
*** 3162,3167 ****
--- 3217,3229 ----
    const unsigned char * const pend = alphabet + sizeof(alphabet);
    std::vector<char> tgt(256, (char)0xFF);
  
+   /*  Keep copies of low_index and last_index for use in run-time as LOW-VALUE
+       and HIGH-VALUE, which are kept as globals in the source-code codeset
+       and converted to the display encoding as necessary. */
+ 
+   low_char  = low_index;
+   high_char = last_index;
+ 
    /*
     * For now, assume CP1252 source-code encoding because we're not capturing it
     * anywhere except in cbl_field_t::internalize().  The only known examples of
*************** new_alphanumeric( size_t capacity, const
*** 3533,3544 ****
  
  extern os_locale_t os_locale;
  
! const encodings_t cbl_field_t::codeset_t::standard_internal = { iconv_CP1252_e, "CP1252" };
  #define standard_internal cbl_field_t::codeset_t::standard_internal
  
  cbl_field_t *
! new_temporary( enum cbl_field_type_t type, const char *initial ) {
!   if( ! initial ) {
      assert( ! is_literal(type) ); // Literal type must have literal value.
      return temporaries.acquire(type, initial);
    }
--- 3595,3610 ----
  
  extern os_locale_t os_locale;
  
! const encodings_t cbl_field_t::codeset_t::standard_internal = {
!   true, iconv_CP1252_e, "CP1252"
! };
  #define standard_internal cbl_field_t::codeset_t::standard_internal
  
  cbl_field_t *
! new_temporary( enum cbl_field_type_t type, const char *initial, bool is_signed ) {
!   const bool force_unsigned = type == FldNumericBin5 && ! is_signed;
!   
!   if( ! initial && ! force_unsigned ) {
      assert( ! is_literal(type) ); // Literal type must have literal value.
      return temporaries.acquire(type, initial);
    }
*************** new_temporary( enum cbl_field_type_t typ
*** 3549,3555 ****
      return field;
    }
    cbl_field_t *field = new_temporary_impl(type, initial);
!   temporaries.add(field);
    parser_symbol_add(field);
  
    return field;
--- 3615,3628 ----
      return field;
    }
    cbl_field_t *field = new_temporary_impl(type, initial);
! 
!   // don't reuse unsigned numeric
!   if( force_unsigned ) {
!     field->clear_attr(signable_e);
!   } else {
!     temporaries.add(field);
!   }
! 
    parser_symbol_add(field);
  
    return field;
diff -Nrcpad gcc-16-20251019/gcc/cobol/symbols.h gcc-16-20251026/gcc/cobol/symbols.h
*** gcc-16-20251019/gcc/cobol/symbols.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/symbols.h	Sun Oct 26 22:32:32 2025
*************** struct cbl_subtable_t {
*** 500,505 ****
--- 500,506 ----
  };
  
  const char * __gg__encoding_iconv_name( cbl_encoding_t encoding );
+ bool         __gg__encoding_iconv_valid( cbl_encoding_t encoding );
  
  bool is_elementary( enum cbl_field_type_t type );
  
*************** bool is_elementary( enum cbl_field_type_
*** 507,514 ****
  //    current_encoding('A') and current_encoding('N')
  enum
    {
!   encoding_display_e  = 'A',
!   encoding_national_e = 'N'
    };
  cbl_encoding_t current_encoding( char a_or_n );
  
--- 508,515 ----
  //    current_encoding('A') and current_encoding('N')
  enum
    {
!   display_encoding_e  = 'A',
!   national_encoding_e = 'N'
    };
  cbl_encoding_t current_encoding( char a_or_n );
  
*************** enum cbl_label_type_t {
*** 964,969 ****
--- 965,971 ----
    LblString,
    LblArith,
    LblCompute,
+   LblXml,
  };
  
  struct cbl_proc_addresses_t {
*************** struct cbl_compute_error_t {
*** 1188,1193 ****
--- 1190,1201 ----
      tree compute_error_code;
  };
  
+ struct cbl_xml_parse_t {
+     cbl_label_addresses_t over;
+     cbl_label_addresses_t exception;
+     cbl_label_addresses_t no_exception;
+ };
+ 
  struct cbl_label_t {
    enum cbl_label_type_t type;
    size_t parent;
*************** struct cbl_label_t {
*** 1221,1226 ****
--- 1229,1238 ----
  
      // for parser_op/parser_assign error tracking
      struct cbl_compute_error_t *compute_error;
+     
+     // for parse_xml processing:
+     struct cbl_xml_parse_t *xml_parse;
+     
      } structs;
  
    bool is_function() const { return type == LblFunction; }
*************** struct cbl_label_t {
*** 1239,1244 ****
--- 1251,1257 ----
      case LblString: return "LblString";
      case LblArith: return "LblArith";
      case LblCompute: return "LblCompute";
+     case LblXml: return "LblXml";
      }
      gcc_unreachable();
    }
*************** struct label_cmp_lessthan {
*** 1293,1299 ****
  
  size_t field_index( const cbl_field_t *f );
  
! cbl_field_t * new_temporary( enum cbl_field_type_t type, const char initial[] = NULL );
  cbl_field_t * new_temporary_like( cbl_field_t skel );
  cbl_field_t * new_temporary_clone( const cbl_field_t *orig);
  cbl_field_t * keep_temporary( cbl_field_type_t type );
--- 1306,1314 ----
  
  size_t field_index( const cbl_field_t *f );
  
! cbl_field_t * new_temporary( enum cbl_field_type_t type,
!                              const char initial[] = NULL,
!                              bool attr = false );
  cbl_field_t * new_temporary_like( cbl_field_t skel );
  cbl_field_t * new_temporary_clone( const cbl_field_t *orig);
  cbl_field_t * keep_temporary( cbl_field_type_t type );
*************** struct cbl_alphabet_t {
*** 1532,1537 ****
--- 1547,1553 ----
    cbl_name_t name;
    cbl_encoding_t encoding;
    unsigned char low_index, high_index, last_index, alphabet[256];
+   unsigned char low_char, high_char;
  
    cbl_alphabet_t()
      : loc { 1,1, 1,1 }
*************** struct cbl_alphabet_t {
*** 1539,1544 ****
--- 1555,1562 ----
      , low_index(0)
      , high_index(255)
      , last_index(0)
+     , low_char(0)
+     , high_char(0)
    {
      memset(name, '\0', sizeof(name));
      memset(alphabet, 0xFF, sizeof(alphabet));
*************** struct cbl_alphabet_t {
*** 1550,1555 ****
--- 1568,1575 ----
      , low_index(0)
      , high_index(255)
      , last_index(0)
+     , low_char(0)
+     , high_char(0)
    {
      memset(name, '\0', sizeof(name));
      memset(alphabet, 0xFF, sizeof(alphabet));
*************** struct cbl_alphabet_t {
*** 1562,1567 ****
--- 1582,1589 ----
      , encoding(custom_encoding_e)
      , low_index(low_index), high_index(high_index)
      , last_index(high_index)
+     , low_char(low_index)
+     , high_char(high_index)
    {
      assert(strlen(name) < sizeof(this->name));
      strcpy(this->name, name);
*************** symbol_elem_of( cbl_alphabet_t *alphabet
*** 1953,1958 ****
--- 1975,1988 ----
      reinterpret_cast<symbol_elem_t *>((char*)alphabet - n);
  }
  
+ static inline const symbol_elem_t *
+ symbol_elem_of( const cbl_alphabet_t *alphabet ) {
+   size_t n = offsetof(symbol_elem_t, elem.alphabet);
+   return
+     // cppcheck-suppress cstyleCast
+     reinterpret_cast<const symbol_elem_t *>((const char*)alphabet - n);
+ }
+ 
  static inline symbol_elem_t *
  symbol_elem_of( cbl_file_t *file ) {
    size_t n = offsetof(struct symbol_elem_t, elem.file);
*************** const cbl_field_t *
*** 2027,2040 ****
  symbol_unresolved_file_key( const cbl_file_t * file,
                              const cbl_name_t key_field_name );
  
! static inline struct cbl_section_t *
! cbl_section_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymDataSection);
    return &e->elem.section;
  }
  
! static inline struct cbl_field_t *
! cbl_field_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymField);
    return &e->elem.field;
  }
--- 2057,2070 ----
  symbol_unresolved_file_key( const cbl_file_t * file,
                              const cbl_name_t key_field_name );
  
! static inline cbl_section_t *
! cbl_section_of( symbol_elem_t *e ) {
    assert(e && e->type == SymDataSection);
    return &e->elem.section;
  }
  
! static inline cbl_field_t *
! cbl_field_of( symbol_elem_t *e ) {
    assert(e && e->type == SymField);
    return &e->elem.field;
  }
*************** cbl_field_of( const symbol_elem_t *e ) {
*** 2044,2051 ****
    return &e->elem.field;
  }
  
! static inline struct cbl_label_t *
! cbl_label_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymLabel);
    return &e->elem.label;
  }
--- 2074,2081 ----
    return &e->elem.field;
  }
  
! static inline cbl_label_t *
! cbl_label_of( symbol_elem_t *e ) {
    assert(e && e->type == SymLabel);
    return &e->elem.label;
  }
*************** cbl_label_of( const symbol_elem_t *e ) {
*** 2056,2075 ****
    return &e->elem.label;
  }
  
! static inline struct cbl_special_name_t *
! cbl_special_name_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymSpecial);
    return &e->elem.special;
  }
  
! static inline struct cbl_alphabet_t *
! cbl_alphabet_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymAlphabet);
    return &e->elem.alphabet;
  }
  
! static inline struct cbl_file_t *
! cbl_file_of( struct symbol_elem_t *e ) {
    assert(e && e->type == SymFile);
    return &e->elem.file;
  }
--- 2086,2111 ----
    return &e->elem.label;
  }
  
! static inline cbl_special_name_t *
! cbl_special_name_of( symbol_elem_t *e ) {
    assert(e && e->type == SymSpecial);
    return &e->elem.special;
  }
  
! static inline cbl_alphabet_t *
! cbl_alphabet_of( symbol_elem_t *e ) {
    assert(e && e->type == SymAlphabet);
    return &e->elem.alphabet;
  }
  
! static inline const cbl_alphabet_t *
! cbl_alphabet_of( const symbol_elem_t *e ) {
!   assert(e && e->type == SymAlphabet);
!   return &e->elem.alphabet;
! }
! 
! static inline cbl_file_t *
! cbl_file_of( symbol_elem_t *e ) {
    assert(e && e->type == SymFile);
    return &e->elem.file;
  }
diff -Nrcpad gcc-16-20251019/gcc/cobol/token_names.h gcc-16-20251026/gcc/cobol/token_names.h
*** gcc-16-20251019/gcc/cobol/token_names.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/token_names.h	Sun Oct 26 22:32:32 2025
***************
*** 1,5 ****
! // generated by ./token_names.h.gen ../../build/gcc/cobol/parse.h
! // Mon Sep 15 22:47:12 EDT 2025
  tokens = {
  	{ "identification", IDENTIFICATION_DIV }, // 258
  	{ "environment", ENVIRONMENT_DIV }, // 259
--- 1,5 ----
! // generated by /home/jklowden/projects/3rd/gcc/parser/gcc/cobol/token_names.h.gen cobol/parse.h
! // Mon Oct 20 14:11:39 EDT 2025
  tokens = {
  	{ "identification", IDENTIFICATION_DIV }, // 258
  	{ "environment", ENVIRONMENT_DIV }, // 259
*************** tokens = {
*** 541,711 ****
  	{ "symbol", SYMBOL }, // 790
  	{ "symbolic", SYMBOLIC }, // 791
  	{ "synchronized", SYNCHRONIZED }, // 792
! 	{ "tally", TALLY }, // 793
! 	{ "tallying", TALLYING }, // 794
! 	{ "tan", TAN }, // 795
! 	{ "terminate", TERMINATE }, // 796
! 	{ "test", TEST }, // 797
! 	{ "test-date-yyyymmdd", TEST_DATE_YYYYMMDD }, // 798
! 	{ "test-day-yyyyddd", TEST_DAY_YYYYDDD }, // 799
! 	{ "test-formatted-datetime", TEST_FORMATTED_DATETIME }, // 800
! 	{ "test-numval", TEST_NUMVAL }, // 801
! 	{ "test-numval-c", TEST_NUMVAL_C }, // 802
! 	{ "test-numval-f", TEST_NUMVAL_F }, // 803
! 	{ "than", THAN }, // 804
! 	{ "time", TIME }, // 805
! 	{ "times", TIMES }, // 806
! 	{ "to", TO }, // 807
! 	{ "top", TOP }, // 808
! 	{ "top-level", TOP_LEVEL }, // 809
! 	{ "tracks", TRACKS }, // 810
! 	{ "track-area", TRACK_AREA }, // 811
! 	{ "trailing", TRAILING }, // 812
! 	{ "transform", TRANSFORM }, // 813
! 	{ "trim", TRIM }, // 814
! 	{ "true", TRUE_kw }, // 815
! 	{ "try", TRY }, // 816
! 	{ "turn", TURN }, // 817
! 	{ "type", TYPE }, // 818
! 	{ "typedef", TYPEDEF }, // 819
! 	{ "ulength", ULENGTH }, // 820
! 	{ "unbounded", UNBOUNDED }, // 821
! 	{ "unit", UNIT }, // 822
! 	{ "units", UNITS }, // 823
! 	{ "unit-record", UNIT_RECORD }, // 824
! 	{ "until", UNTIL }, // 825
! 	{ "up", UP }, // 826
! 	{ "upon", UPON }, // 827
! 	{ "upos", UPOS }, // 828
! 	{ "upper-case", UPPER_CASE }, // 829
! 	{ "usage", USAGE }, // 830
! 	{ "using", USING }, // 831
! 	{ "usubstr", USUBSTR }, // 832
! 	{ "usupplementary", USUPPLEMENTARY }, // 833
! 	{ "utility", UTILITY }, // 834
! 	{ "uuid4", UUID4 }, // 835
! 	{ "uvalid", UVALID }, // 836
! 	{ "uwidth", UWIDTH }, // 837
! 	{ "validating", VALIDATING }, // 838
! 	{ "value", VALUE }, // 839
! 	{ "variance", VARIANCE }, // 840
! 	{ "varying", VARYING }, // 841
! 	{ "volatile", VOLATILE }, // 842
! 	{ "when-compiled", WHEN_COMPILED }, // 843
! 	{ "with", WITH }, // 844
! 	{ "working-storage", WORKING_STORAGE }, // 845
! 	{ "year-to-yyyy", YEAR_TO_YYYY }, // 846
! 	{ "yyyyddd", YYYYDDD }, // 847
! 	{ "yyyymmdd", YYYYMMDD }, // 848
! 	{ "arithmetic", ARITHMETIC }, // 849
! 	{ "attribute", ATTRIBUTE }, // 850
! 	{ "auto", AUTO }, // 851
! 	{ "automatic", AUTOMATIC }, // 852
! 	{ "away-from-zero", AWAY_FROM_ZERO }, // 853
! 	{ "background-color", BACKGROUND_COLOR }, // 854
! 	{ "bell", BELL }, // 855
! 	{ "binary-encoding", BINARY_ENCODING }, // 856
! 	{ "blink", BLINK }, // 857
! 	{ "capacity", CAPACITY }, // 858
! 	{ "center", CENTER }, // 859
! 	{ "classification", CLASSIFICATION }, // 860
! 	{ "cycle", CYCLE }, // 861
! 	{ "decimal-encoding", DECIMAL_ENCODING }, // 862
! 	{ "entry-convention", ENTRY_CONVENTION }, // 863
! 	{ "eol", EOL }, // 864
! 	{ "eos", EOS }, // 865
! 	{ "erase", ERASE }, // 866
! 	{ "expands", EXPANDS }, // 867
! 	{ "float-binary", FLOAT_BINARY }, // 868
! 	{ "float-decimal", FLOAT_DECIMAL }, // 869
! 	{ "foreground-color", FOREGROUND_COLOR }, // 870
! 	{ "forever", FOREVER }, // 871
! 	{ "full", FULL }, // 872
! 	{ "highlight", HIGHLIGHT }, // 873
! 	{ "high-order-left", HIGH_ORDER_LEFT }, // 874
! 	{ "high-order-right", HIGH_ORDER_RIGHT }, // 875
! 	{ "ignoring", IGNORING }, // 876
! 	{ "implements", IMPLEMENTS }, // 877
! 	{ "initialized", INITIALIZED }, // 878
! 	{ "intermediate", INTERMEDIATE }, // 879
! 	{ "lc-all", LC_ALL_kw }, // 880
! 	{ "lc-collate", LC_COLLATE_kw }, // 881
! 	{ "lc-ctype", LC_CTYPE_kw }, // 882
! 	{ "lc-messages", LC_MESSAGES_kw }, // 883
! 	{ "lc-monetary", LC_MONETARY_kw }, // 884
! 	{ "lc-numeric", LC_NUMERIC_kw }, // 885
! 	{ "lc-time", LC_TIME_kw }, // 886
! 	{ "lowlight", LOWLIGHT }, // 887
! 	{ "nearest-away-from-zero", NEAREST_AWAY_FROM_ZERO }, // 888
! 	{ "nearest-even", NEAREST_EVEN }, // 889
! 	{ "nearest-toward-zero", NEAREST_TOWARD_ZERO }, // 890
! 	{ "none", NONE }, // 891
! 	{ "normal", NORMAL }, // 892
! 	{ "numbers", NUMBERS }, // 893
! 	{ "prefixed", PREFIXED }, // 894
! 	{ "previous", PREVIOUS }, // 895
! 	{ "prohibited", PROHIBITED }, // 896
! 	{ "relation", RELATION }, // 897
! 	{ "required", REQUIRED }, // 898
! 	{ "reverse-video", REVERSE_VIDEO }, // 899
! 	{ "rounding", ROUNDING }, // 900
! 	{ "seconds", SECONDS }, // 901
! 	{ "secure", SECURE }, // 902
! 	{ "short", SHORT }, // 903
! 	{ "signed", SIGNED_kw }, // 904
! 	{ "standard-binary", STANDARD_BINARY }, // 905
! 	{ "standard-decimal", STANDARD_DECIMAL }, // 906
! 	{ "statement", STATEMENT }, // 907
! 	{ "step", STEP }, // 908
! 	{ "structure", STRUCTURE }, // 909
! 	{ "toward-greater", TOWARD_GREATER }, // 910
! 	{ "toward-lesser", TOWARD_LESSER }, // 911
! 	{ "truncation", TRUNCATION }, // 912
! 	{ "ucs-4", UCS_4 }, // 913
! 	{ "underline", UNDERLINE }, // 914
! 	{ "unsigned", UNSIGNED_kw }, // 915
! 	{ "utf-16", UTF_16 }, // 916
! 	{ "utf-8", UTF_8 }, // 917
! 	{ "address", ADDRESS }, // 918
! 	{ "end-accept", END_ACCEPT }, // 919
! 	{ "end-add", END_ADD }, // 920
! 	{ "end-call", END_CALL }, // 921
! 	{ "end-compute", END_COMPUTE }, // 922
! 	{ "end-delete", END_DELETE }, // 923
! 	{ "end-display", END_DISPLAY }, // 924
! 	{ "end-divide", END_DIVIDE }, // 925
! 	{ "end-evaluate", END_EVALUATE }, // 926
! 	{ "end-multiply", END_MULTIPLY }, // 927
! 	{ "end-perform", END_PERFORM }, // 928
! 	{ "end-read", END_READ }, // 929
! 	{ "end-return", END_RETURN }, // 930
! 	{ "end-rewrite", END_REWRITE }, // 931
! 	{ "end-search", END_SEARCH }, // 932
! 	{ "end-start", END_START }, // 933
! 	{ "end-string", END_STRING }, // 934
! 	{ "end-subtract", END_SUBTRACT }, // 935
! 	{ "end-unstring", END_UNSTRING }, // 936
! 	{ "end-write", END_WRITE }, // 937
! 	{ "end-xml", END_XML }, // 938
! 	{ "end-if", END_IF }, // 939
! 	{ "xmlgenerate", XMLGENERATE }, // 940
! 	{ "xmlparse", XMLPARSE }, // 942
! 	{ "attributes", ATTRIBUTES }, // 944
! 	{ "element", ELEMENT }, // 945
! 	{ "namespace", NAMESPACE }, // 946
! 	{ "namespace-prefix", NAMESPACE_PREFIX }, // 947
! 	{ "nonnumeric", NONNUMERIC }, // 949
! 	{ "xml-declaration", XML_DECLARATION }, // 950
! 	{ "thru", THRU }, // 952
! 	{ "through", THRU }, // 952
! 	{ "or", OR }, // 953
! 	{ "and", AND }, // 954
! 	{ "not", NOT }, // 955
! 	{ "ne", NE }, // 956
! 	{ "le", LE }, // 957
! 	{ "ge", GE }, // 958
! 	{ "pow", POW }, // 959
! 	{ "neg", NEG }, // 960
  };
  
  // cppcheck-suppress useInitializationList
--- 541,710 ----
  	{ "symbol", SYMBOL }, // 790
  	{ "symbolic", SYMBOLIC }, // 791
  	{ "synchronized", SYNCHRONIZED }, // 792
! 	{ "tallying", TALLYING }, // 793
! 	{ "tan", TAN }, // 794
! 	{ "terminate", TERMINATE }, // 795
! 	{ "test", TEST }, // 796
! 	{ "test-date-yyyymmdd", TEST_DATE_YYYYMMDD }, // 797
! 	{ "test-day-yyyyddd", TEST_DAY_YYYYDDD }, // 798
! 	{ "test-formatted-datetime", TEST_FORMATTED_DATETIME }, // 799
! 	{ "test-numval", TEST_NUMVAL }, // 800
! 	{ "test-numval-c", TEST_NUMVAL_C }, // 801
! 	{ "test-numval-f", TEST_NUMVAL_F }, // 802
! 	{ "than", THAN }, // 803
! 	{ "time", TIME }, // 804
! 	{ "times", TIMES }, // 805
! 	{ "to", TO }, // 806
! 	{ "top", TOP }, // 807
! 	{ "top-level", TOP_LEVEL }, // 808
! 	{ "tracks", TRACKS }, // 809
! 	{ "track-area", TRACK_AREA }, // 810
! 	{ "trailing", TRAILING }, // 811
! 	{ "transform", TRANSFORM }, // 812
! 	{ "trim", TRIM }, // 813
! 	{ "true", TRUE_kw }, // 814
! 	{ "try", TRY }, // 815
! 	{ "turn", TURN }, // 816
! 	{ "type", TYPE }, // 817
! 	{ "typedef", TYPEDEF }, // 818
! 	{ "ulength", ULENGTH }, // 819
! 	{ "unbounded", UNBOUNDED }, // 820
! 	{ "unit", UNIT }, // 821
! 	{ "units", UNITS }, // 822
! 	{ "unit-record", UNIT_RECORD }, // 823
! 	{ "until", UNTIL }, // 824
! 	{ "up", UP }, // 825
! 	{ "upon", UPON }, // 826
! 	{ "upos", UPOS }, // 827
! 	{ "upper-case", UPPER_CASE }, // 828
! 	{ "usage", USAGE }, // 829
! 	{ "using", USING }, // 830
! 	{ "usubstr", USUBSTR }, // 831
! 	{ "usupplementary", USUPPLEMENTARY }, // 832
! 	{ "utility", UTILITY }, // 833
! 	{ "uuid4", UUID4 }, // 834
! 	{ "uvalid", UVALID }, // 835
! 	{ "uwidth", UWIDTH }, // 836
! 	{ "validating", VALIDATING }, // 837
! 	{ "value", VALUE }, // 838
! 	{ "variance", VARIANCE }, // 839
! 	{ "varying", VARYING }, // 840
! 	{ "volatile", VOLATILE }, // 841
! 	{ "when-compiled", WHEN_COMPILED }, // 842
! 	{ "with", WITH }, // 843
! 	{ "working-storage", WORKING_STORAGE }, // 844
! 	{ "year-to-yyyy", YEAR_TO_YYYY }, // 845
! 	{ "yyyyddd", YYYYDDD }, // 846
! 	{ "yyyymmdd", YYYYMMDD }, // 847
! 	{ "arithmetic", ARITHMETIC }, // 848
! 	{ "attribute", ATTRIBUTE }, // 849
! 	{ "auto", AUTO }, // 850
! 	{ "automatic", AUTOMATIC }, // 851
! 	{ "away-from-zero", AWAY_FROM_ZERO }, // 852
! 	{ "background-color", BACKGROUND_COLOR }, // 853
! 	{ "bell", BELL }, // 854
! 	{ "binary-encoding", BINARY_ENCODING }, // 855
! 	{ "blink", BLINK }, // 856
! 	{ "capacity", CAPACITY }, // 857
! 	{ "center", CENTER }, // 858
! 	{ "classification", CLASSIFICATION }, // 859
! 	{ "cycle", CYCLE }, // 860
! 	{ "decimal-encoding", DECIMAL_ENCODING }, // 861
! 	{ "entry-convention", ENTRY_CONVENTION }, // 862
! 	{ "eol", EOL }, // 863
! 	{ "eos", EOS }, // 864
! 	{ "erase", ERASE }, // 865
! 	{ "expands", EXPANDS }, // 866
! 	{ "float-binary", FLOAT_BINARY }, // 867
! 	{ "float-decimal", FLOAT_DECIMAL }, // 868
! 	{ "foreground-color", FOREGROUND_COLOR }, // 869
! 	{ "forever", FOREVER }, // 870
! 	{ "full", FULL }, // 871
! 	{ "highlight", HIGHLIGHT }, // 872
! 	{ "high-order-left", HIGH_ORDER_LEFT }, // 873
! 	{ "high-order-right", HIGH_ORDER_RIGHT }, // 874
! 	{ "ignoring", IGNORING }, // 875
! 	{ "implements", IMPLEMENTS }, // 876
! 	{ "initialized", INITIALIZED }, // 877
! 	{ "intermediate", INTERMEDIATE }, // 878
! 	{ "lc-all", LC_ALL_kw }, // 879
! 	{ "lc-collate", LC_COLLATE_kw }, // 880
! 	{ "lc-ctype", LC_CTYPE_kw }, // 881
! 	{ "lc-messages", LC_MESSAGES_kw }, // 882
! 	{ "lc-monetary", LC_MONETARY_kw }, // 883
! 	{ "lc-numeric", LC_NUMERIC_kw }, // 884
! 	{ "lc-time", LC_TIME_kw }, // 885
! 	{ "lowlight", LOWLIGHT }, // 886
! 	{ "nearest-away-from-zero", NEAREST_AWAY_FROM_ZERO }, // 887
! 	{ "nearest-even", NEAREST_EVEN }, // 888
! 	{ "nearest-toward-zero", NEAREST_TOWARD_ZERO }, // 889
! 	{ "none", NONE }, // 890
! 	{ "normal", NORMAL }, // 891
! 	{ "numbers", NUMBERS }, // 892
! 	{ "prefixed", PREFIXED }, // 893
! 	{ "previous", PREVIOUS }, // 894
! 	{ "prohibited", PROHIBITED }, // 895
! 	{ "relation", RELATION }, // 896
! 	{ "required", REQUIRED }, // 897
! 	{ "reverse-video", REVERSE_VIDEO }, // 898
! 	{ "rounding", ROUNDING }, // 899
! 	{ "seconds", SECONDS }, // 900
! 	{ "secure", SECURE }, // 901
! 	{ "short", SHORT }, // 902
! 	{ "signed", SIGNED_kw }, // 903
! 	{ "standard-binary", STANDARD_BINARY }, // 904
! 	{ "standard-decimal", STANDARD_DECIMAL }, // 905
! 	{ "statement", STATEMENT }, // 906
! 	{ "step", STEP }, // 907
! 	{ "structure", STRUCTURE }, // 908
! 	{ "toward-greater", TOWARD_GREATER }, // 909
! 	{ "toward-lesser", TOWARD_LESSER }, // 910
! 	{ "truncation", TRUNCATION }, // 911
! 	{ "ucs-4", UCS_4 }, // 912
! 	{ "underline", UNDERLINE }, // 913
! 	{ "unsigned", UNSIGNED_kw }, // 914
! 	{ "utf-16", UTF_16 }, // 915
! 	{ "utf-8", UTF_8 }, // 916
! 	{ "xmlgenerate", XMLGENERATE }, // 917
! 	{ "xmlparse", XMLPARSE }, // 918
! 	{ "address", ADDRESS }, // 919
! 	{ "end-accept", END_ACCEPT }, // 920
! 	{ "end-add", END_ADD }, // 921
! 	{ "end-call", END_CALL }, // 922
! 	{ "end-compute", END_COMPUTE }, // 923
! 	{ "end-delete", END_DELETE }, // 924
! 	{ "end-display", END_DISPLAY }, // 925
! 	{ "end-divide", END_DIVIDE }, // 926
! 	{ "end-evaluate", END_EVALUATE }, // 927
! 	{ "end-multiply", END_MULTIPLY }, // 928
! 	{ "end-perform", END_PERFORM }, // 929
! 	{ "end-read", END_READ }, // 930
! 	{ "end-return", END_RETURN }, // 931
! 	{ "end-rewrite", END_REWRITE }, // 932
! 	{ "end-search", END_SEARCH }, // 933
! 	{ "end-start", END_START }, // 934
! 	{ "end-string", END_STRING }, // 935
! 	{ "end-subtract", END_SUBTRACT }, // 936
! 	{ "end-unstring", END_UNSTRING }, // 937
! 	{ "end-write", END_WRITE }, // 938
! 	{ "end-xml", END_XML }, // 939
! 	{ "end-if", END_IF }, // 940
! 	{ "attributes", ATTRIBUTES }, // 941
! 	{ "element", ELEMENT }, // 942
! 	{ "namespace", NAMESPACE }, // 943
! 	{ "namespace-prefix", NAMESPACE_PREFIX }, // 944
! 	{ "nonnumeric", NONNUMERIC }, // 946
! 	{ "xml-declaration", XML_DECLARATION }, // 947
! 	{ "thru", THRU }, // 949
! 	{ "through", THRU }, // 949
! 	{ "or", OR }, // 950
! 	{ "and", AND }, // 951
! 	{ "not", NOT }, // 952
! 	{ "ne", NE }, // 953
! 	{ "le", LE }, // 954
! 	{ "ge", GE }, // 955
! 	{ "pow", POW }, // 956
! 	{ "neg", NEG }, // 957
  };
  
  // cppcheck-suppress useInitializationList
*************** token_names = {
*** 1245,1412 ****
  	"SYMBOL", // 532 (790)
  	"SYMBOLIC", // 533 (791)
  	"SYNCHRONIZED", // 534 (792)
! 	"TALLY", // 535 (793)
! 	"TALLYING", // 536 (794)
! 	"TAN", // 537 (795)
! 	"TERMINATE", // 538 (796)
! 	"TEST", // 539 (797)
! 	"TEST-DATE-YYYYMMDD", // 540 (798)
! 	"TEST-DAY-YYYYDDD", // 541 (799)
! 	"TEST-FORMATTED-DATETIME", // 542 (800)
! 	"TEST-NUMVAL", // 543 (801)
! 	"TEST-NUMVAL-C", // 544 (802)
! 	"TEST-NUMVAL-F", // 545 (803)
! 	"THAN", // 546 (804)
! 	"TIME", // 547 (805)
! 	"TIMES", // 548 (806)
! 	"TO", // 549 (807)
! 	"TOP", // 550 (808)
! 	"TOP-LEVEL", // 551 (809)
! 	"TRACKS", // 552 (810)
! 	"TRACK-AREA", // 553 (811)
! 	"TRAILING", // 554 (812)
! 	"TRANSFORM", // 555 (813)
! 	"TRIM", // 556 (814)
! 	"TRUE", // 557 (815)
! 	"TRY", // 558 (816)
! 	"TURN", // 559 (817)
! 	"TYPE", // 560 (818)
! 	"TYPEDEF", // 561 (819)
! 	"ULENGTH", // 562 (820)
! 	"UNBOUNDED", // 563 (821)
! 	"UNIT", // 564 (822)
! 	"UNITS", // 565 (823)
! 	"UNIT-RECORD", // 566 (824)
! 	"UNTIL", // 567 (825)
! 	"UP", // 568 (826)
! 	"UPON", // 569 (827)
! 	"UPOS", // 570 (828)
! 	"UPPER-CASE", // 571 (829)
! 	"USAGE", // 572 (830)
! 	"USING", // 573 (831)
! 	"USUBSTR", // 574 (832)
! 	"USUPPLEMENTARY", // 575 (833)
! 	"UTILITY", // 576 (834)
! 	"UUID4", // 577 (835)
! 	"UVALID", // 578 (836)
! 	"UWIDTH", // 579 (837)
! 	"VALIDATING", // 580 (838)
! 	"VALUE", // 581 (839)
! 	"VARIANCE", // 582 (840)
! 	"VARYING", // 583 (841)
! 	"VOLATILE", // 584 (842)
! 	"WHEN-COMPILED", // 585 (843)
! 	"WITH", // 586 (844)
! 	"WORKING-STORAGE", // 587 (845)
! 	"YEAR-TO-YYYY", // 588 (846)
! 	"YYYYDDD", // 589 (847)
! 	"YYYYMMDD", // 590 (848)
! 	"ARITHMETIC", // 591 (849)
! 	"ATTRIBUTE", // 592 (850)
! 	"AUTO", // 593 (851)
! 	"AUTOMATIC", // 594 (852)
! 	"AWAY-FROM-ZERO", // 595 (853)
! 	"BACKGROUND-COLOR", // 596 (854)
! 	"BELL", // 597 (855)
! 	"BINARY-ENCODING", // 598 (856)
! 	"BLINK", // 599 (857)
! 	"CAPACITY", // 600 (858)
! 	"CENTER", // 601 (859)
! 	"CLASSIFICATION", // 602 (860)
! 	"CYCLE", // 603 (861)
! 	"DECIMAL-ENCODING", // 604 (862)
! 	"ENTRY-CONVENTION", // 605 (863)
! 	"EOL", // 606 (864)
! 	"EOS", // 607 (865)
! 	"ERASE", // 608 (866)
! 	"EXPANDS", // 609 (867)
! 	"FLOAT-BINARY", // 610 (868)
! 	"FLOAT-DECIMAL", // 611 (869)
! 	"FOREGROUND-COLOR", // 612 (870)
! 	"FOREVER", // 613 (871)
! 	"FULL", // 614 (872)
! 	"HIGHLIGHT", // 615 (873)
! 	"HIGH-ORDER-LEFT", // 616 (874)
! 	"HIGH-ORDER-RIGHT", // 617 (875)
! 	"IGNORING", // 618 (876)
! 	"IMPLEMENTS", // 619 (877)
! 	"INITIALIZED", // 620 (878)
! 	"INTERMEDIATE", // 621 (879)
! 	"LC-ALL", // 622 (880)
! 	"LC-COLLATE", // 623 (881)
! 	"LC-CTYPE", // 624 (882)
! 	"LC-MESSAGES", // 625 (883)
! 	"LC-MONETARY", // 626 (884)
! 	"LC-NUMERIC", // 627 (885)
! 	"LC-TIME", // 628 (886)
! 	"LOWLIGHT", // 629 (887)
! 	"NEAREST-AWAY-FROM-ZERO", // 630 (888)
! 	"NEAREST-EVEN", // 631 (889)
! 	"NEAREST-TOWARD-ZERO", // 632 (890)
! 	"NONE", // 633 (891)
! 	"NORMAL", // 634 (892)
! 	"NUMBERS", // 635 (893)
! 	"PREFIXED", // 636 (894)
! 	"PREVIOUS", // 637 (895)
! 	"PROHIBITED", // 638 (896)
! 	"RELATION", // 639 (897)
! 	"REQUIRED", // 640 (898)
! 	"REVERSE-VIDEO", // 641 (899)
! 	"ROUNDING", // 642 (900)
! 	"SECONDS", // 643 (901)
! 	"SECURE", // 644 (902)
! 	"SHORT", // 645 (903)
! 	"SIGNED", // 646 (904)
! 	"STANDARD-BINARY", // 647 (905)
! 	"STANDARD-DECIMAL", // 648 (906)
! 	"STATEMENT", // 649 (907)
! 	"STEP", // 650 (908)
! 	"STRUCTURE", // 651 (909)
! 	"TOWARD-GREATER", // 652 (910)
! 	"TOWARD-LESSER", // 653 (911)
! 	"TRUNCATION", // 654 (912)
! 	"UCS-4", // 655 (913)
! 	"UNDERLINE", // 656 (914)
! 	"UNSIGNED", // 657 (915)
! 	"UTF-16", // 658 (916)
! 	"UTF-8", // 659 (917)
! 	"ADDRESS", // 660 (918)
! 	"END-ACCEPT", // 661 (919)
! 	"END-ADD", // 662 (920)
! 	"END-CALL", // 663 (921)
! 	"END-COMPUTE", // 664 (922)
! 	"END-DELETE", // 665 (923)
! 	"END-DISPLAY", // 666 (924)
! 	"END-DIVIDE", // 667 (925)
! 	"END-EVALUATE", // 668 (926)
! 	"END-MULTIPLY", // 669 (927)
! 	"END-PERFORM", // 670 (928)
! 	"END-READ", // 671 (929)
! 	"END-RETURN", // 672 (930)
! 	"END-REWRITE", // 673 (931)
! 	"END-SEARCH", // 674 (932)
! 	"END-START", // 675 (933)
! 	"END-STRING", // 676 (934)
! 	"END-SUBTRACT", // 677 (935)
! 	"END-UNSTRING", // 678 (936)
! 	"END-WRITE", // 679 (937)
! 	"END-XML", // 680 (938)
! 	"END-IF", // 681 (939)
! 	"XMLGENERATE", // 682 (940)
! 	"XMLPARSE", // 684 (942)
! 	"ATTRIBUTES", // 686 (944)
! 	"ELEMENT", // 687 (945)
! 	"NAMESPACE", // 688 (946)
! 	"NAMESPACE-PREFIX", // 689 (947)
! 	"NONNUMERIC", // 691 (949)
! 	"XML-DECLARATION", // 692 (950)
! 	"THRU", // 694 (952)
! 	"OR", // 695 (953)
! 	"AND", // 696 (954)
! 	"NOT", // 697 (955)
! 	"NE", // 698 (956)
! 	"LE", // 699 (957)
! 	"GE", // 700 (958)
! 	"POW", // 701 (959)
! 	"NEG", // 702 (960)
  };
--- 1244,1410 ----
  	"SYMBOL", // 532 (790)
  	"SYMBOLIC", // 533 (791)
  	"SYNCHRONIZED", // 534 (792)
! 	"TALLYING", // 535 (793)
! 	"TAN", // 536 (794)
! 	"TERMINATE", // 537 (795)
! 	"TEST", // 538 (796)
! 	"TEST-DATE-YYYYMMDD", // 539 (797)
! 	"TEST-DAY-YYYYDDD", // 540 (798)
! 	"TEST-FORMATTED-DATETIME", // 541 (799)
! 	"TEST-NUMVAL", // 542 (800)
! 	"TEST-NUMVAL-C", // 543 (801)
! 	"TEST-NUMVAL-F", // 544 (802)
! 	"THAN", // 545 (803)
! 	"TIME", // 546 (804)
! 	"TIMES", // 547 (805)
! 	"TO", // 548 (806)
! 	"TOP", // 549 (807)
! 	"TOP-LEVEL", // 550 (808)
! 	"TRACKS", // 551 (809)
! 	"TRACK-AREA", // 552 (810)
! 	"TRAILING", // 553 (811)
! 	"TRANSFORM", // 554 (812)
! 	"TRIM", // 555 (813)
! 	"TRUE", // 556 (814)
! 	"TRY", // 557 (815)
! 	"TURN", // 558 (816)
! 	"TYPE", // 559 (817)
! 	"TYPEDEF", // 560 (818)
! 	"ULENGTH", // 561 (819)
! 	"UNBOUNDED", // 562 (820)
! 	"UNIT", // 563 (821)
! 	"UNITS", // 564 (822)
! 	"UNIT-RECORD", // 565 (823)
! 	"UNTIL", // 566 (824)
! 	"UP", // 567 (825)
! 	"UPON", // 568 (826)
! 	"UPOS", // 569 (827)
! 	"UPPER-CASE", // 570 (828)
! 	"USAGE", // 571 (829)
! 	"USING", // 572 (830)
! 	"USUBSTR", // 573 (831)
! 	"USUPPLEMENTARY", // 574 (832)
! 	"UTILITY", // 575 (833)
! 	"UUID4", // 576 (834)
! 	"UVALID", // 577 (835)
! 	"UWIDTH", // 578 (836)
! 	"VALIDATING", // 579 (837)
! 	"VALUE", // 580 (838)
! 	"VARIANCE", // 581 (839)
! 	"VARYING", // 582 (840)
! 	"VOLATILE", // 583 (841)
! 	"WHEN-COMPILED", // 584 (842)
! 	"WITH", // 585 (843)
! 	"WORKING-STORAGE", // 586 (844)
! 	"YEAR-TO-YYYY", // 587 (845)
! 	"YYYYDDD", // 588 (846)
! 	"YYYYMMDD", // 589 (847)
! 	"ARITHMETIC", // 590 (848)
! 	"ATTRIBUTE", // 591 (849)
! 	"AUTO", // 592 (850)
! 	"AUTOMATIC", // 593 (851)
! 	"AWAY-FROM-ZERO", // 594 (852)
! 	"BACKGROUND-COLOR", // 595 (853)
! 	"BELL", // 596 (854)
! 	"BINARY-ENCODING", // 597 (855)
! 	"BLINK", // 598 (856)
! 	"CAPACITY", // 599 (857)
! 	"CENTER", // 600 (858)
! 	"CLASSIFICATION", // 601 (859)
! 	"CYCLE", // 602 (860)
! 	"DECIMAL-ENCODING", // 603 (861)
! 	"ENTRY-CONVENTION", // 604 (862)
! 	"EOL", // 605 (863)
! 	"EOS", // 606 (864)
! 	"ERASE", // 607 (865)
! 	"EXPANDS", // 608 (866)
! 	"FLOAT-BINARY", // 609 (867)
! 	"FLOAT-DECIMAL", // 610 (868)
! 	"FOREGROUND-COLOR", // 611 (869)
! 	"FOREVER", // 612 (870)
! 	"FULL", // 613 (871)
! 	"HIGHLIGHT", // 614 (872)
! 	"HIGH-ORDER-LEFT", // 615 (873)
! 	"HIGH-ORDER-RIGHT", // 616 (874)
! 	"IGNORING", // 617 (875)
! 	"IMPLEMENTS", // 618 (876)
! 	"INITIALIZED", // 619 (877)
! 	"INTERMEDIATE", // 620 (878)
! 	"LC-ALL", // 621 (879)
! 	"LC-COLLATE", // 622 (880)
! 	"LC-CTYPE", // 623 (881)
! 	"LC-MESSAGES", // 624 (882)
! 	"LC-MONETARY", // 625 (883)
! 	"LC-NUMERIC", // 626 (884)
! 	"LC-TIME", // 627 (885)
! 	"LOWLIGHT", // 628 (886)
! 	"NEAREST-AWAY-FROM-ZERO", // 629 (887)
! 	"NEAREST-EVEN", // 630 (888)
! 	"NEAREST-TOWARD-ZERO", // 631 (889)
! 	"NONE", // 632 (890)
! 	"NORMAL", // 633 (891)
! 	"NUMBERS", // 634 (892)
! 	"PREFIXED", // 635 (893)
! 	"PREVIOUS", // 636 (894)
! 	"PROHIBITED", // 637 (895)
! 	"RELATION", // 638 (896)
! 	"REQUIRED", // 639 (897)
! 	"REVERSE-VIDEO", // 640 (898)
! 	"ROUNDING", // 641 (899)
! 	"SECONDS", // 642 (900)
! 	"SECURE", // 643 (901)
! 	"SHORT", // 644 (902)
! 	"SIGNED", // 645 (903)
! 	"STANDARD-BINARY", // 646 (904)
! 	"STANDARD-DECIMAL", // 647 (905)
! 	"STATEMENT", // 648 (906)
! 	"STEP", // 649 (907)
! 	"STRUCTURE", // 650 (908)
! 	"TOWARD-GREATER", // 651 (909)
! 	"TOWARD-LESSER", // 652 (910)
! 	"TRUNCATION", // 653 (911)
! 	"UCS-4", // 654 (912)
! 	"UNDERLINE", // 655 (913)
! 	"UNSIGNED", // 656 (914)
! 	"UTF-16", // 657 (915)
! 	"UTF-8", // 658 (916)
! 	"XMLGENERATE", // 659 (917)
! 	"XMLPARSE", // 660 (918)
! 	"ADDRESS", // 661 (919)
! 	"END-ACCEPT", // 662 (920)
! 	"END-ADD", // 663 (921)
! 	"END-CALL", // 664 (922)
! 	"END-COMPUTE", // 665 (923)
! 	"END-DELETE", // 666 (924)
! 	"END-DISPLAY", // 667 (925)
! 	"END-DIVIDE", // 668 (926)
! 	"END-EVALUATE", // 669 (927)
! 	"END-MULTIPLY", // 670 (928)
! 	"END-PERFORM", // 671 (929)
! 	"END-READ", // 672 (930)
! 	"END-RETURN", // 673 (931)
! 	"END-REWRITE", // 674 (932)
! 	"END-SEARCH", // 675 (933)
! 	"END-START", // 676 (934)
! 	"END-STRING", // 677 (935)
! 	"END-SUBTRACT", // 678 (936)
! 	"END-UNSTRING", // 679 (937)
! 	"END-WRITE", // 680 (938)
! 	"END-XML", // 681 (939)
! 	"END-IF", // 682 (940)
! 	"ATTRIBUTES", // 683 (941)
! 	"ELEMENT", // 684 (942)
! 	"NAMESPACE", // 685 (943)
! 	"NAMESPACE-PREFIX", // 686 (944)
! 	"NONNUMERIC", // 688 (946)
! 	"XML-DECLARATION", // 689 (947)
! 	"THRU", // 691 (949)
! 	"OR", // 692 (950)
! 	"AND", // 693 (951)
! 	"NOT", // 694 (952)
! 	"NE", // 695 (953)
! 	"LE", // 696 (954)
! 	"GE", // 697 (955)
! 	"POW", // 698 (956)
! 	"NEG", // 699 (957)
  };
diff -Nrcpad gcc-16-20251019/gcc/cobol/util.cc gcc-16-20251026/gcc/cobol/util.cc
*** gcc-16-20251019/gcc/cobol/util.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cobol/util.cc	Sun Oct 26 22:32:32 2025
*************** void current_location_minus_one_clear()
*** 2107,2134 ****
    first_line_minus_1 = 0;
    }
  
  template <typename LOC>
  static void
  gcc_location_set_impl( const LOC& loc ) {
    // Set the position to the first line & column in the location.
   static location_t loc_m_1 = 0;
  
!   token_location = linemap_line_start( line_table, loc.first_line, 80 );
!   token_location = linemap_position_for_column( line_table, loc.first_column);
! 
!   if( loc.first_line > first_line_minus_1 )
!     {
!     // In order for GDB-COBOL to be able to step through COBOL code properly,
!     // it is sometimes necessary for the code at the beginning of a COBOL
!     // line to be using the location_t of the previous line.  This is true, for
!     // example, when laying down the infrastructure code between the last
!     // statement of a paragraph and the code created at the beginning of the
!     // following paragragh.  This code assumes that token_location values of
!     // interest are monotonic, and stores that prior value.
!     first_line_minus_1 = loc.first_line;
!     token_location_minus_1 = loc_m_1;
!     loc_m_1 = token_location;
!     }
  
    location_dump(__func__, __LINE__, "parser", loc);
  }
--- 2107,2141 ----
    first_line_minus_1 = 0;
    }
  
+ /*
+  * Update global token_location with a location_t expressing a source range
+  * with start and caret at the first line/column of LOC, and finishing at the
+  * last line/column of LOC.
+  */
  template <typename LOC>
  static void
  gcc_location_set_impl( const LOC& loc ) {
    // Set the position to the first line & column in the location.
   static location_t loc_m_1 = 0;
+  const location_t
+    start_line   = linemap_line_start( line_table, loc.first_line, 80 ),
+    token_start  = linemap_position_for_column( line_table, loc.first_column),
+    finish_line  = linemap_line_start( line_table, loc.last_line, 80 ),
+    token_finish = linemap_position_for_column( line_table, loc.last_column);
+  token_location = make_location (token_start, token_start, token_finish);
  
!  if( loc.first_line > first_line_minus_1 ) {
!    // In order for GDB-COBOL to be able to step through COBOL code properly,
!    // it is sometimes necessary for the code at the beginning of a COBOL
!    // line to be using the location_t of the previous line.  This is true, for
!    // example, when laying down the infrastructure code between the last
!    // statement of a paragraph and the code created at the beginning of the
!    // following paragragh.  This code assumes that token_location values of
!    // interest are monotonic, and stores that prior value.
!    first_line_minus_1 = loc.first_line;
!    token_location_minus_1 = loc_m_1;
!    loc_m_1 = token_location;
!  }
  
    location_dump(__func__, __LINE__, "parser", loc);
  }
diff -Nrcpad gcc-16-20251019/gcc/common/config/i386/cpuinfo.h gcc-16-20251026/gcc/common/config/i386/cpuinfo.h
*** gcc-16-20251019/gcc/common/config/i386/cpuinfo.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/common/config/i386/cpuinfo.h	Sun Oct 26 22:32:32 2025
*************** get_intel_cpu (struct __processor_model
*** 639,644 ****
--- 639,660 ----
        default:
  	break;
        }
+   /* Parse family and model for family 0x12.  */
+   else if (cpu_model2->__cpu_family == 0x12)
+     switch (cpu_model2->__cpu_model)
+       {
+       case 0x01:
+       case 0x03:
+ 	/* Nova Lake.  */
+ 	cpu = "novalake";
+ 	CHECK___builtin_cpu_is ("corei7");
+ 	CHECK___builtin_cpu_is ("novalake");
+ 	cpu_model->__cpu_type = INTEL_COREI7;
+ 	cpu_model->__cpu_subtype = INTEL_COREI7_NOVALAKE;
+ 	break;
+       default:
+ 	break;
+       }
    /* Parse family and model for family 0x13.  */
    else if (cpu_model2->__cpu_family == 0x13)
      switch (cpu_model2->__cpu_model)
diff -Nrcpad gcc-16-20251019/gcc/common/config/i386/i386-common.cc gcc-16-20251026/gcc/common/config/i386/i386-common.cc
*** gcc-16-20251019/gcc/common/config/i386/i386-common.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/common/config/i386/i386-common.cc	Sun Oct 26 22:32:32 2025
*************** const char *const processor_names[] =
*** 2131,2136 ****
--- 2131,2137 ----
    "arrowlake-s",
    "pantherlake",
    "diamondrapids",
+   "novalake",
    "intel",
    "lujiazui",
    "yongfeng",
*************** const pta processor_alias_table[] =
*** 2272,2277 ****
--- 2273,2280 ----
      M_CPU_SUBTYPE (INTEL_COREI7_DIAMONDRAPIDS), P_PROC_AVX10_1},
    {"wildcatlake", PROCESSOR_PANTHERLAKE, CPU_HASWELL, PTA_PANTHERLAKE,
      M_CPU_SUBTYPE (INTEL_COREI7_PANTHERLAKE), P_PROC_AVX2},
+   {"novalake", PROCESSOR_NOVALAKE, CPU_HASWELL, PTA_NOVALAKE,
+     M_CPU_SUBTYPE (INTEL_COREI7_NOVALAKE), P_PROC_AVX2},
    {"bonnell", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
      M_CPU_TYPE (INTEL_BONNELL), P_PROC_SSSE3},
    {"atom", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
diff -Nrcpad gcc-16-20251019/gcc/common/config/i386/i386-cpuinfo.h gcc-16-20251026/gcc/common/config/i386/i386-cpuinfo.h
*** gcc-16-20251019/gcc/common/config/i386/i386-cpuinfo.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/common/config/i386/i386-cpuinfo.h	Sun Oct 26 22:32:32 2025
*************** enum processor_subtypes
*** 106,111 ****
--- 106,112 ----
    AMDFAM1AH_ZNVER5,
    ZHAOXIN_FAM7H_SHIJIDADAO,
    INTEL_COREI7_DIAMONDRAPIDS,
+   INTEL_COREI7_NOVALAKE,
    CPU_SUBTYPE_MAX
  };
  
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64-c.cc gcc-16-20251026/gcc/config/aarch64/aarch64-c.cc
*** gcc-16-20251019/gcc/config/aarch64/aarch64-c.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64-c.cc	Sun Oct 26 22:32:32 2025
*************** aarch64_update_cpp_builtins (cpp_reader
*** 296,301 ****
--- 296,305 ----
  			"__ARM_FEATURE_SME2p1", pfile);
    aarch64_def_or_undef (TARGET_FAMINMAX, "__ARM_FEATURE_FAMINMAX", pfile);
  
+   // Function multi-versioning defines
+   aarch64_def_or_undef (targetm.has_ifunc_p (),
+ 			"__HAVE_FUNCTION_MULTI_VERSIONING", pfile);
+ 
    /* Not for ACLE, but required to keep "float.h" correct if we switch
       target between implementations that do or do not support ARMv8.2-A
       16-bit floating-point extensions.  */
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64-elf.h gcc-16-20251026/gcc/config/aarch64/aarch64-elf.h
*** gcc-16-20251019/gcc/config/aarch64/aarch64-elf.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64-elf.h	Sun Oct 26 22:32:32 2025
***************
*** 136,141 ****
--- 136,142 ----
  #define ASM_SPEC "\
  %{mbig-endian:-EB} \
  %{mlittle-endian:-EL} \
+ %{menable-sysreg-checking} \
  %(asm_cpu_spec)" \
  ASM_MABI_SPEC
  #endif
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64-simd.md gcc-16-20251026/gcc/config/aarch64/aarch64-simd.md
*** gcc-16-20251019/gcc/config/aarch64/aarch64-simd.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64-simd.md	Sun Oct 26 22:32:32 2025
***************
*** 3469,3474 ****
--- 3469,3654 ----
    DONE;
  })
  
+ ;; AND tree reductions.
+ ;; Check if after a min pairwise reduction that all the lanes are 1.
+ ;;
+ ;;   uminp  v1.4s, v1.4s, v1.4s
+ ;;   fmov   x1, d1
+ ;;   cmn    x1, #1
+ ;;   cset   w0, eq
+ ;;
+ ;; or with SVE enabled
+ ;;
+ ;;  ptrue  p1.b, vl16
+ ;;  cmpeq  p0.b, p1/z, z1.b, #0
+ ;;  cset   w0, none
+ ;;
+ (define_expand "reduc_sbool_and_scal_<mode>"
+   [(set (match_operand:QI 0 "register_operand")
+ 	(unspec:QI [(match_operand:VALLI 1 "register_operand")]
+ 		    UNSPEC_ANDV))]
+   "TARGET_SIMD"
+ {
+   if (TARGET_SVE)
+     {
+       machine_mode full_mode = aarch64_full_sve_mode (<VEL>mode).require ();
+       rtx in = force_lowpart_subreg (full_mode, operands[1], <MODE>mode);
+       unsigned lanes
+ 	= exact_div (GET_MODE_BITSIZE (<MODE>mode), 8).to_constant ();
+       machine_mode pred_mode = aarch64_sve_pred_mode (full_mode);
+       rtx pred_res = gen_reg_rtx (pred_mode);
+       rtx gp = aarch64_ptrue_reg (VNx16BImode, lanes);
+       rtx cast_gp = lowpart_subreg (pred_mode, gp, VNx16BImode);
+       rtx gp_flag = gen_int_mode (SVE_MAYBE_NOT_PTRUE, SImode);
+       emit_insn (
+ 	gen_aarch64_pred_cmp_ptest (EQ, full_mode, pred_res, gp, in,
+ 				    CONST0_RTX (full_mode), cast_gp,
+ 				    gp_flag, cast_gp, gp_flag));
+       rtx cc_reg = gen_rtx_REG (CC_NZCmode, CC_REGNUM);
+       rtx cmp = gen_rtx_fmt_ee (EQ, SImode, cc_reg, const0_rtx);
+       rtx tmp2 = gen_reg_rtx (SImode);
+       emit_insn (gen_aarch64_cstoresi (tmp2, cmp, cc_reg));
+       emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+       DONE;
+     }
+ 
+   rtx tmp = operands[1];
+   /* 128-bit vectors need to be compressed to 64-bits first.  */
+   if (known_eq (128, GET_MODE_BITSIZE (<MODE>mode)))
+     {
+       /* Always reduce using a V4SI.  */
+       rtx reduc = gen_lowpart (V4SImode, tmp);
+       rtx res = gen_reg_rtx (V4SImode);
+       emit_insn (gen_aarch64_uminpv4si (res, reduc, reduc));
+       emit_move_insn (tmp, gen_lowpart (<MODE>mode, res));
+     }
+   rtx val = gen_reg_rtx (DImode);
+   emit_move_insn (val, gen_lowpart (DImode, tmp));
+   rtx cc_reg = aarch64_gen_compare_reg (EQ, val, constm1_rtx);
+   rtx cmp = gen_rtx_fmt_ee (EQ, SImode, cc_reg, constm1_rtx);
+   rtx tmp2 = gen_reg_rtx (SImode);
+   emit_insn (gen_aarch64_cstoresi (tmp2, cmp, cc_reg));
+   emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+   DONE;
+ })
+ 
+ ;; IOR tree reductions.
+ ;; Check that after a MAX pairwise reduction any lane is not 0
+ ;;
+ ;;   umaxp  v1.4s, v1.4s, v1.4s
+ ;;   fmov   x1, d1
+ ;;   cmp    x1, 0
+ ;;   cset   w0, ne
+ ;;
+ ;; or with SVE enabled
+ ;;
+ ;;   ptrue  p1.b, vl16
+ ;;   cmpne  p0.b, p1/z, z1.b, #0
+ ;;   cset   w0, any
+ ;;
+ (define_expand "reduc_sbool_ior_scal_<mode>"
+   [(set (match_operand:QI 0 "register_operand")
+ 	(unspec:QI [(match_operand:VALLI 1 "register_operand")]
+ 		    UNSPEC_IORV))]
+   "TARGET_SIMD"
+ {
+   if (TARGET_SVE)
+     {
+       machine_mode full_mode = aarch64_full_sve_mode (<VEL>mode).require ();
+       rtx in = force_lowpart_subreg (full_mode, operands[1], <MODE>mode);
+       unsigned lanes
+ 	= exact_div (GET_MODE_BITSIZE (<MODE>mode), 8).to_constant ();
+       machine_mode pred_mode = aarch64_sve_pred_mode (full_mode);
+       rtx pred_res = gen_reg_rtx (pred_mode);
+       rtx gp = aarch64_ptrue_reg (VNx16BImode, lanes);
+       rtx cast_gp = lowpart_subreg (pred_mode, gp, VNx16BImode);
+       rtx gp_flag = gen_int_mode (SVE_MAYBE_NOT_PTRUE, SImode);
+       emit_insn (
+ 	gen_aarch64_pred_cmp_ptest (NE, full_mode, pred_res, gp, in,
+ 				    CONST0_RTX (full_mode), cast_gp,
+ 				    gp_flag, cast_gp, gp_flag));
+       rtx cc_reg = gen_rtx_REG (CC_NZCmode, CC_REGNUM);
+       rtx cmp = gen_rtx_fmt_ee (NE, SImode, cc_reg, const0_rtx);
+       rtx tmp2 = gen_reg_rtx (SImode);
+       emit_insn (gen_aarch64_cstoresi (tmp2, cmp, cc_reg));
+       emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+       DONE;
+     }
+ 
+   rtx tmp = operands[1];
+   /* 128-bit vectors need to be compressed to 64-bits first.  */
+   if (known_eq (128, GET_MODE_BITSIZE (<MODE>mode)))
+     {
+       /* Always reduce using a V4SI.  */
+       rtx reduc = gen_lowpart (V4SImode, tmp);
+       rtx res = gen_reg_rtx (V4SImode);
+       emit_insn (gen_aarch64_umaxpv4si (res, reduc, reduc));
+       emit_move_insn (tmp, gen_lowpart (<MODE>mode, res));
+     }
+   rtx val = gen_reg_rtx (DImode);
+   emit_move_insn (val, gen_lowpart (DImode, tmp));
+   rtx cc_reg = aarch64_gen_compare_reg (NE, val, const0_rtx);
+   rtx cmp = gen_rtx_fmt_ee (NE, SImode, cc_reg, const0_rtx);
+   rtx tmp2 = gen_reg_rtx (SImode);
+   emit_insn (gen_aarch64_cstoresi (tmp2, cmp, cc_reg));
+   emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+   DONE;
+ })
+ 
+ ;; Unpredicated predicate XOR tree reductions.
+ ;; Check to see if the number of active lanes in the predicates is a multiple
+ ;; of 2.  We use a normal reduction after masking with 0x1.
+ ;;
+ ;;  movi  v1.16b, 0x1
+ ;;  and   v2.16b, v2.16b, v2.16b
+ ;;  addv  b3, v2.16b
+ ;;  fmov  w1, s3
+ ;;  and   w0, w1, 1
+ ;;
+ ;; or with SVE enabled
+ ;;
+ ;;   ptrue  p1.b, vl16
+ ;;   cmpne  p0.b, p1/z, z1+.b, #0
+ ;;   cntp   x1, p0, p0.b
+ ;;   and    w0, w1, 1
+ ;;
+ (define_expand "reduc_sbool_xor_scal_<mode>"
+   [(set (match_operand:QI 0 "register_operand")
+ 	(unspec:QI [(match_operand:VALLI 1 "register_operand")]
+ 		    UNSPEC_XORV))]
+   "TARGET_SIMD"
+ {
+   if (TARGET_SVE)
+     {
+       machine_mode full_mode = aarch64_full_sve_mode (<VEL>mode).require ();
+       rtx in = force_lowpart_subreg (full_mode, operands[1], <MODE>mode);
+       unsigned lanes
+ 	= exact_div (GET_MODE_BITSIZE (<MODE>mode), 8).to_constant ();
+       machine_mode pred_mode = aarch64_sve_pred_mode (full_mode);
+       rtx pred_res = gen_reg_rtx (pred_mode);
+       rtx gp = aarch64_ptrue_reg (VNx16BImode, lanes);
+       rtx cast_gp = lowpart_subreg (pred_mode, gp, VNx16BImode);
+       rtx gp_flag = gen_int_mode (SVE_MAYBE_NOT_PTRUE, SImode);
+       emit_insn (
+ 	gen_aarch64_pred_cmp (NE, full_mode, pred_res, cast_gp, gp_flag, in,
+ 			      CONST0_RTX (full_mode)));
+       emit_insn (gen_reduc_sbool_xor_scal (pred_mode, operands[0], pred_res));
+       DONE;
+     }
+ 
+   rtx tmp = gen_reg_rtx (<MODE>mode);
+   rtx one_reg = force_reg (<MODE>mode, CONST1_RTX (<MODE>mode));
+   emit_move_insn (tmp, gen_rtx_AND (<MODE>mode, operands[1], one_reg));
+   rtx tmp2 = gen_reg_rtx (<VEL>mode);
+   emit_insn (gen_reduc_plus_scal_<mode> (tmp2, tmp));
+   rtx tmp3 = gen_reg_rtx (DImode);
+   emit_move_insn (tmp3, gen_rtx_AND (DImode,
+ 				     lowpart_subreg (DImode, tmp2, <VEL>mode),
+ 				     const1_rtx));
+   emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+   DONE;
+ })
+ 
  ;; SADDLV and UADDLV can be expressed as an ADDV instruction that first
  ;; sign or zero-extends its elements.
  (define_insn "aarch64_<su>addlv<mode>"
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64-sve.md gcc-16-20251026/gcc/config/aarch64/aarch64-sve.md
*** gcc-16-20251019/gcc/config/aarch64/aarch64-sve.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64-sve.md	Sun Oct 26 22:32:32 2025
***************
*** 135,140 ****
--- 135,141 ----
  ;; ---- [INT,FP] Conditional reductions
  ;; ---- [INT] Tree reductions
  ;; ---- [FP] Tree reductions
+ ;; ---- [Predicate] Tree reductions
  ;; ---- [FP] Left-to-right reductions
  ;;
  ;; == Permutes
***************
*** 8744,8750 ****
  
  ;; Predicated integer comparisons in which only the flags result is
  ;; interesting.
! (define_insn_and_rewrite "*cmp<cmp_op><mode>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
  	  [(match_operand:VNx16BI 1 "register_operand")
--- 8745,8751 ----
  
  ;; Predicated integer comparisons in which only the flags result is
  ;; interesting.
! (define_insn_and_rewrite "@aarch64_pred_cmp<cmp_op><mode>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
  	  [(match_operand:VNx16BI 1 "register_operand")
***************
*** 9888,9893 ****
--- 9889,9988 ----
  )
  
  ;; -------------------------------------------------------------------------
+ ;; ---- [Predicate] Tree reductions
+ ;; -------------------------------------------------------------------------
+ ;; Includes:
+ ;; - IORV
+ ;; - XORV
+ ;; - ANDV
+ ;; -------------------------------------------------------------------------
+ 
+ ;; Unpredicated predicate AND tree reductions.
+ ;; Invert the predicate and check across all lanes
+ ;; that the Zero flag is set.
+ ;;
+ ;; ptrue   p3.b, all
+ ;; nots    p3.b, p3/z, p0.b
+ ;; cset    w0, none
+ ;;
+ (define_expand "reduc_sbool_and_scal_<mode>"
+   [(set (match_operand:QI 0 "register_operand")
+ 	(unspec:QI [(match_operand:PRED_ALL 1 "register_operand")]
+ 		    UNSPEC_ANDV))]
+   "TARGET_SVE"
+   {
+     rtx ptrue = force_reg (VNx16BImode, aarch64_ptrue_all (<data_bytes>));
+     rtx cast_ptrue = gen_lowpart (<MODE>mode, ptrue);
+     rtx tmp = gen_reg_rtx (<MODE>mode);
+     emit_insn (gen_aarch64_pred_one_cmpl_z (<MODE>mode, tmp, cast_ptrue,
+ 					    operands[1]));
+     emit_insn (
+       gen_aarch64_ptest<mode> (ptrue, cast_ptrue,
+ 			       gen_int_mode (SVE_KNOWN_PTRUE, SImode),
+ 			       tmp));
+     rtx cc_reg = gen_rtx_REG (CC_NZCmode, CC_REGNUM);
+     rtx cmp = gen_rtx_fmt_ee (EQ, SImode, cc_reg, const0_rtx);
+     rtx tmp2 = gen_reg_rtx (SImode);
+     emit_insn (gen_aarch64_cstoresi (tmp2, cmp, cc_reg));
+     emit_move_insn (operands[0], gen_lowpart (QImode, tmp2));
+     DONE;
+   }
+ )
+ 
+ ;; Unpredicated predicate IOR tree reductions.
+ ;; We need to make sure the results are in the CC flags, so execute a ptest
+ ;; on the same predicate.
+ ;;
+ ;;   ptest   p0, p0.b
+ ;;   cset    w0, any
+ ;;
+ (define_expand "reduc_sbool_ior_scal_<mode>"
+   [(set (match_operand:QI 0 "register_operand")
+ 	(unspec:QI [(match_operand:PRED_ALL 1 "register_operand")]
+ 		    UNSPEC_IORV))]
+   "TARGET_SVE"
+   {
+     rtx ptrue = lowpart_subreg (VNx16BImode, operands[1], <MODE>mode);
+     emit_insn (
+       gen_aarch64_ptest<mode> (ptrue, operands[1],
+ 			       gen_int_mode (SVE_MAYBE_NOT_PTRUE, SImode),
+ 			       operands[1]));
+     rtx cc_reg = gen_rtx_REG (CC_NZCmode, CC_REGNUM);
+     rtx cmp = gen_rtx_fmt_ee (NE, SImode, cc_reg, const0_rtx);
+     rtx tmp = gen_reg_rtx (SImode);
+     emit_insn (gen_aarch64_cstoresi (tmp, cmp, cc_reg));
+     emit_move_insn (operands[0], gen_lowpart (QImode, tmp));
+     DONE;
+   }
+ )
+ 
+ ;; Unpredicated predicate XOR tree reductions.
+ ;; Check to see if the number of active lanes in the predicates is a multiple
+ ;; of 2.  This generates:
+ ;;
+ ;;   cntp    x0, p0, p0.b
+ ;;   and     w0, w0, 1
+ ;;
+ (define_expand "@reduc_sbool_xor_scal_<mode>"
+   [(set (match_dup 2)
+ 	(zero_extend:DI
+ 	  (unspec:SI [(match_dup 1)
+ 		      (const_int SVE_MAYBE_NOT_PTRUE)
+ 		      (match_operand:PRED_ALL 1 "register_operand")]
+ 		     UNSPEC_CNTP)))
+     (set (match_dup 4)
+ 	 (and:DI (match_dup 2)
+ 		 (const_int 1)))
+     (set (match_operand:QI 0 "register_operand")
+ 	 (subreg:QI (match_dup 4) 0))]
+   "TARGET_SVE"
+   {
+     operands[2] = gen_reg_rtx (DImode);
+     operands[4] = gen_reg_rtx (DImode);
+   }
+ )
+ 
+ ;; -------------------------------------------------------------------------
  ;; ---- [FP] Left-to-right reductions
  ;; -------------------------------------------------------------------------
  ;; Includes:
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64.cc gcc-16-20251026/gcc/config/aarch64/aarch64.cc
*** gcc-16-20251019/gcc/config/aarch64/aarch64.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64.cc	Sun Oct 26 22:32:32 2025
*************** static int
*** 20607,20620 ****
  compare_feature_masks (aarch64_fmv_feature_mask mask1,
  		       aarch64_fmv_feature_mask mask2)
  {
-   int pop1 = popcount_hwi (mask1);
-   int pop2 = popcount_hwi (mask2);
-   if (pop1 > pop2)
-     return 1;
-   if (pop2 > pop1)
-     return -1;
- 
    auto diff_mask = mask1 ^ mask2;
    if (diff_mask == 0ULL)
      return 0;
    int num_features = ARRAY_SIZE (aarch64_fmv_feature_data);
--- 20607,20614 ----
  compare_feature_masks (aarch64_fmv_feature_mask mask1,
  		       aarch64_fmv_feature_mask mask2)
  {
    auto diff_mask = mask1 ^ mask2;
+   /* If there is no difference.  */
    if (diff_mask == 0ULL)
      return 0;
    int num_features = ARRAY_SIZE (aarch64_fmv_feature_data);
*************** dispatch_function_versions (tree dispatc
*** 21029,21073 ****
    unsigned int num_versions = fndecls->length ();
    gcc_assert (num_versions >= 2);
  
!   struct function_version_info
!     {
!       tree version_decl;
!       aarch64_fmv_feature_mask feature_mask;
!     } *function_versions;
! 
!   function_versions = (struct function_version_info *)
!     XNEWVEC (struct function_version_info, (num_versions));
! 
!   unsigned int actual_versions = 0;
! 
!   for (tree version_decl : *fndecls)
      {
!       aarch64_fmv_feature_mask feature_mask;
!       /* Get attribute string, parse it and find the right features.  */
!       feature_mask = get_feature_mask_for_version (version_decl);
!       function_versions [actual_versions].version_decl = version_decl;
!       function_versions [actual_versions].feature_mask = feature_mask;
!       actual_versions++;
      }
  
-   auto compare_feature_version_info = [](const void *p1, const void *p2) {
-     const function_version_info v1 = *(const function_version_info *)p1;
-     const function_version_info v2 = *(const function_version_info *)p2;
-     return - compare_feature_masks (v1.feature_mask, v2.feature_mask);
-   };
- 
-   /* Sort the versions according to descending order of dispatch priority.  */
-   qsort (function_versions, actual_versions,
- 	 sizeof (struct function_version_info), compare_feature_version_info);
- 
-   for (unsigned int i = 0; i < actual_versions; ++i)
-     *empty_bb = add_condition_to_bb (dispatch_decl,
- 				     function_versions[i].version_decl,
- 				     function_versions[i].feature_mask,
- 				     mask_var,
- 				     *empty_bb);
- 
-   free (function_versions);
    return 0;
  }
  
--- 21023,21038 ----
    unsigned int num_versions = fndecls->length ();
    gcc_assert (num_versions >= 2);
  
!   int i;
!   tree version_decl;
!   FOR_EACH_VEC_ELT_REVERSE ((*fndecls), i, version_decl)
      {
!       aarch64_fmv_feature_mask feature_mask
! 	= get_feature_mask_for_version (version_decl);
!       *empty_bb = add_condition_to_bb (dispatch_decl, version_decl,
! 				       feature_mask, mask_var, *empty_bb);
      }
  
    return 0;
  }
  
*************** aarch64_generate_version_dispatcher_body
*** 21109,21114 ****
--- 21074,21082 ----
  
    auto_vec<tree, 2> fn_ver_vec;
  
+   if (dump_enabled_p ())
+     dump_printf (MSG_NOTE, "Version order for %s:\n", node->dump_asm_name ());
+ 
    for (versn_info = node_version_info->next; versn_info;
         versn_info = versn_info->next)
      {
*************** aarch64_generate_version_dispatcher_body
*** 21121,21126 ****
--- 21089,21097 ----
        if (DECL_VINDEX (versn->decl))
  	sorry ("virtual function multiversioning not supported");
  
+       if (dump_enabled_p ())
+ 	dump_printf (MSG_NOTE, "%s\n", versn->dump_asm_name ());
+ 
        fn_ver_vec.safe_push (versn->decl);
      }
  
*************** aarch64_valid_sysreg_name_p (const char
*** 31663,31669 ****
    const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname);
    if (sysreg == NULL)
      return aarch64_is_implem_def_reg (regname);
!   return true;
  }
  
  /* Return the generic sysreg specification for a valid system register
--- 31634,31642 ----
    const sysreg_t *sysreg = aarch64_lookup_sysreg_map (regname);
    if (sysreg == NULL)
      return aarch64_is_implem_def_reg (regname);
! 
!   return (!aarch64_enable_sysreg_guarding
! 	  || ((~aarch64_isa_flags & sysreg->arch_reqs) == 0));
  }
  
  /* Return the generic sysreg specification for a valid system register
*************** aarch64_retrieve_sysreg (const char *reg
*** 31686,31691 ****
--- 31659,31667 ----
    if ((write_p && (sysreg->properties & F_REG_READ))
        || (!write_p && (sysreg->properties & F_REG_WRITE)))
      return NULL;
+   if (aarch64_enable_sysreg_guarding
+       && ((~aarch64_isa_flags & sysreg->arch_reqs) != 0))
+     return NULL;
    return sysreg->encoding;
  }
  
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64.opt gcc-16-20251026/gcc/config/aarch64/aarch64.opt
*** gcc-16-20251019/gcc/config/aarch64/aarch64.opt	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64.opt	Sun Oct 26 22:32:32 2025
*************** mbig-endian
*** 82,87 ****
--- 82,92 ----
  Target RejectNegative Mask(BIG_END)
  Assume target CPU is configured as big endian.
  
+ menable-sysreg-checking
+ Target RejectNegative Var(aarch64_enable_sysreg_guarding) Init(0)
+ Generates an error message if an attempt is made to access a system register
+ which is not available on the target architecture.
+ 
  mgeneral-regs-only
  Target RejectNegative Mask(GENERAL_REGS_ONLY) Save
  Generate code which uses only the general registers.
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/aarch64.opt.urls gcc-16-20251026/gcc/config/aarch64/aarch64.opt.urls
*** gcc-16-20251019/gcc/config/aarch64/aarch64.opt.urls	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/aarch64.opt.urls	Sun Oct 26 22:32:32 2025
***************
*** 3,8 ****
--- 3,11 ----
  mbig-endian
  UrlSuffix(gcc/AArch64-Options.html#index-mbig-endian)
  
+ menable-sysreg-checking
+ UrlSuffix(gcc/AArch64-Options.html#index-menable-sysreg-checking)
+ 
  mgeneral-regs-only
  UrlSuffix(gcc/AArch64-Options.html#index-mgeneral-regs-only)
  
diff -Nrcpad gcc-16-20251019/gcc/config/aarch64/iterators.md gcc-16-20251026/gcc/config/aarch64/iterators.md
*** gcc-16-20251019/gcc/config/aarch64/iterators.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/aarch64/iterators.md	Sun Oct 26 22:32:32 2025
***************
*** 217,222 ****
--- 217,225 ----
  ;; All Advanced SIMD modes on which we support any arithmetic operations.
  (define_mode_iterator VALL [V8QI V16QI V4HI V8HI V2SI V4SI V2DI V2SF V4SF V2DF])
  
+ ;; All Advanced SIMD integer modes
+ (define_mode_iterator VALLI [VDQ_BHSI V2DI])
+ 
  ;; All Advanced SIMD modes suitable for moving, loading, and storing.
  (define_mode_iterator VALL_F16 [V8QI V16QI V4HI V8HI V2SI V4SI V2DI
  				V4HF V8HF V4BF V8BF V2SF V4SF V2DF])
diff -Nrcpad gcc-16-20251019/gcc/config/gnu.h gcc-16-20251026/gcc/config/gnu.h
*** gcc-16-20251019/gcc/config/gnu.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/gnu.h	Sun Oct 26 22:32:32 2025
*************** You should have received a copy of the G
*** 19,24 ****
--- 19,28 ----
  along with GCC.  If not, see <http://www.gnu.org/licenses/>.
  */
  
+ /* C libraries used on GNU/Hurd.  */
+ #define OPTION_GLIBC_P(opts)	(DEFAULT_LIBC == LIBC_GLIBC)
+ #define OPTION_GLIBC		OPTION_GLIBC_P (&global_options)
+ 
  #undef GNU_USER_TARGET_OS_CPP_BUILTINS
  #define GNU_USER_TARGET_OS_CPP_BUILTINS()		\
      do {					\
diff -Nrcpad gcc-16-20251019/gcc/config/i386/driver-i386.cc gcc-16-20251026/gcc/config/i386/driver-i386.cc
*** gcc-16-20251019/gcc/config/i386/driver-i386.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/driver-i386.cc	Sun Oct 26 22:32:32 2025
*************** const char *host_detect_local_cpu (int a
*** 553,558 ****
--- 553,559 ----
  	  processor = PROCESSOR_PENTIUM;
  	  break;
  	case 6:
+ 	case 18:
  	case 19:
  	  processor = PROCESSOR_PENTIUMPRO;
  	  break;
*************** const char *host_detect_local_cpu (int a
*** 639,656 ****
  		}
  	      else if (has_feature (FEATURE_AVX))
  		{
- 		  /* Assume Panther Lake.  */
- 		  if (has_feature (FEATURE_PREFETCHI))
- 		    cpu = "pantherlake";
  		  /* Assume Clearwater Forest.  */
! 		  else if (has_feature (FEATURE_USER_MSR))
  		    cpu = "clearwaterforest";
! 		  /* Assume Arrow Lake S.  */
  		  else if (has_feature (FEATURE_SM3))
! 		    cpu = "arrowlake-s";
  		  /* Assume Sierra Forest.  */
! 		  else if (has_feature (FEATURE_AVXVNNIINT8))
  		    cpu = "sierraforest";
  		  /* Assume Alder Lake.  */
  		  else if (has_feature (FEATURE_SERIALIZE))
  		    cpu = "alderlake";
--- 640,666 ----
  		}
  	      else if (has_feature (FEATURE_AVX))
  		{
  		  /* Assume Clearwater Forest.  */
! 		  if (has_feature (FEATURE_USER_MSR))
  		    cpu = "clearwaterforest";
! 		  /* Assume Nova Lake.  */
! 		  else if (has_feature (FEATURE_PREFETCHI))
! 		    cpu = "novalake";
  		  else if (has_feature (FEATURE_SM3))
! 		    {
! 			if (has_feature (FEATURE_KL))
! 			  /* Assume Arrow Lake S.  */
! 			  cpu = "arrowlake-s";
! 			else
! 			  /* Assume Panther Lake.  */
! 			  cpu = "pantherlake";
! 		    }
  		  /* Assume Sierra Forest.  */
! 		  else if (has_feature (FEATURE_CLDEMOTE))
  		    cpu = "sierraforest";
+ 		  /* Assume Arrow Lake.  */
+ 		  else if (has_feature (FEATURE_AVXVNNIINT8))
+ 		    cpu = "arrowlake";
  		  /* Assume Alder Lake.  */
  		  else if (has_feature (FEATURE_SERIALIZE))
  		    cpu = "alderlake";
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386-c.cc gcc-16-20251026/gcc/config/i386/i386-c.cc
*** gcc-16-20251019/gcc/config/i386/i386-c.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386-c.cc	Sun Oct 26 22:32:32 2025
*************** ix86_target_macros_internal (HOST_WIDE_I
*** 295,300 ****
--- 295,304 ----
        def_or_undef (parse_in, "__diamondrapids");
        def_or_undef (parse_in, "__diamondrapids__");
        break;
+     case PROCESSOR_NOVALAKE:
+       def_or_undef (parse_in, "__novalake");
+       def_or_undef (parse_in, "__novalake__");
+       break;
  
      /* use PROCESSOR_max to not set/unset the arch macro.  */
      case PROCESSOR_max:
*************** ix86_target_macros_internal (HOST_WIDE_I
*** 498,503 ****
--- 502,510 ----
      case PROCESSOR_DIAMONDRAPIDS:
        def_or_undef (parse_in, "__tune_diamondrapids__");
        break;
+     case PROCESSOR_NOVALAKE:
+       def_or_undef (parse_in, "__tune_novalake__");
+       break;
      case PROCESSOR_INTEL:
      case PROCESSOR_GENERIC:
        break;
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386-expand.cc gcc-16-20251026/gcc/config/i386/i386-expand.cc
*** gcc-16-20251019/gcc/config/i386/i386-expand.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386-expand.cc	Sun Oct 26 22:32:32 2025
*************** ix86_expand_copysign (rtx operands[])
*** 2361,2394 ****
      vdest = gen_reg_rtx (vmode);
    else
      dest = NULL_RTX;
!   op1 = lowpart_subreg (vmode, force_reg (mode, operands[2]), mode);
    mask = ix86_build_signbit_mask (vmode, TARGET_AVX512F && mode != HFmode, 0);
  
!   if (CONST_DOUBLE_P (operands[1]))
      {
!       op0 = simplify_unary_operation (ABS, mode, operands[1], mode);
!       /* Optimize for 0, simplify b = copy_signf (0.0f, a) to b = mask & a.  */
!       if (op0 == CONST0_RTX (mode))
  	{
! 	  emit_move_insn (vdest, gen_rtx_AND (vmode, mask, op1));
! 	  if (dest)
! 	    emit_move_insn (dest, lowpart_subreg (mode, vdest, vmode));
! 	  return;
  	}
! 
!       if (GET_MODE_SIZE (mode) < 16)
! 	op0 = ix86_build_const_vector (vmode, false, op0);
!       op0 = force_reg (vmode, op0);
      }
    else
!     op0 = lowpart_subreg (vmode, force_reg (mode, operands[1]), mode);
  
    op2 = gen_reg_rtx (vmode);
    op3 = gen_reg_rtx (vmode);
!   emit_move_insn (op2, gen_rtx_AND (vmode,
! 				    gen_rtx_NOT (vmode, mask),
! 				    op0));
!   emit_move_insn (op3, gen_rtx_AND (vmode, mask, op1));
    emit_move_insn (vdest, gen_rtx_IOR (vmode, op2, op3));
    if (dest)
      emit_move_insn (dest, lowpart_subreg (mode, vdest, vmode));
--- 2361,2404 ----
      vdest = gen_reg_rtx (vmode);
    else
      dest = NULL_RTX;
!   op1 = lowpart_subreg (vmode, force_reg (mode, operands[1]), mode);
    mask = ix86_build_signbit_mask (vmode, TARGET_AVX512F && mode != HFmode, 0);
  
!   if (CONST_DOUBLE_P (operands[2]))
      {
!       if (real_isneg (CONST_DOUBLE_REAL_VALUE (operands[2])))
! 	/* Simplify b = copysign (a, negative) to b = mask | a.  */
! 	op1 = gen_rtx_IOR (vmode, mask, op1);
!       else
  	{
! 	  /* Simplify b = copysign (a, positive) to b = invert_mask & a.  */
! 	  rtx invert_mask
! 	    = ix86_build_signbit_mask (vmode,
! 				       TARGET_AVX512F && mode != HFmode,
! 				       true);
! 	  op1 = gen_rtx_AND (vmode, invert_mask, op1);
  	}
!       emit_move_insn (vdest, op1);
!       if (dest)
! 	emit_move_insn (dest, lowpart_subreg (mode, vdest, vmode));
!       return;
      }
    else
!     op0 = lowpart_subreg (vmode, force_reg (mode, operands[2]), mode);
  
    op2 = gen_reg_rtx (vmode);
    op3 = gen_reg_rtx (vmode);
!   rtx invert_mask;
!   /* NB: Generate vmovdqa, vpandn, vpand, vpor for AVX and generate pand,
!      pand, por for SSE.  */
!   if (TARGET_AVX)
!     invert_mask = gen_rtx_NOT (vmode, mask);
!   else
!     invert_mask = ix86_build_signbit_mask (vmode,
! 					   TARGET_AVX512F && mode != HFmode,
! 					   true);
!   emit_move_insn (op2, gen_rtx_AND (vmode, invert_mask, op1));
!   emit_move_insn (op3, gen_rtx_AND (vmode, mask, op0));
    emit_move_insn (vdest, gen_rtx_IOR (vmode, op2, op3));
    if (dest)
      emit_move_insn (dest, lowpart_subreg (mode, vdest, vmode));
*************** ix86_expand_set_or_cpymem (rtx dst, rtx
*** 9505,9513 ****
    machine_mode move_mode = VOIDmode;
    int unroll_factor = 1;
    /* TODO: Once value ranges are available, fill in proper data.  */
!   unsigned HOST_WIDE_INT min_size = 0;
!   unsigned HOST_WIDE_INT max_size = -1;
!   unsigned HOST_WIDE_INT probable_max_size = -1;
    bool misaligned_prologue_used = false;
    addr_space_t dst_as, src_as = ADDR_SPACE_GENERIC;
  
--- 9515,9523 ----
    machine_mode move_mode = VOIDmode;
    int unroll_factor = 1;
    /* TODO: Once value ranges are available, fill in proper data.  */
!   unsigned HOST_WIDE_INT min_size = HOST_WIDE_INT_0U;
!   unsigned HOST_WIDE_INT max_size = HOST_WIDE_INT_M1U;
!   unsigned HOST_WIDE_INT probable_max_size = HOST_WIDE_INT_M1U;
    bool misaligned_prologue_used = false;
    addr_space_t dst_as, src_as = ADDR_SPACE_GENERIC;
  
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386-features.cc gcc-16-20251026/gcc/config/i386/i386-features.cc
*** gcc-16-20251019/gcc/config/i386/i386-features.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386-features.cc	Sun Oct 26 22:32:32 2025
*************** scalar_chain::analyze_register_chain (bi
*** 449,454 ****
--- 449,478 ----
    return true;
  }
  
+ /* Check whether X is a convertible *concatditi_? variant.  X is known
+    to be any_or_plus:TI, i.e. PLUS:TI, IOR:TI or XOR:TI.  */
+ 
+ static bool
+ timode_concatdi_p (rtx x)
+ {
+   rtx op0 = XEXP (x, 0);
+   rtx op1 = XEXP (x, 1);
+ 
+   if (GET_CODE (op1) == ASHIFT)
+     std::swap (op0, op1);
+ 
+   return GET_CODE (op0) == ASHIFT
+ 	 && GET_CODE (XEXP (op0, 0)) == ZERO_EXTEND
+ 	 && GET_MODE (XEXP (XEXP (op0, 0), 0)) == DImode
+ 	 && REG_P (XEXP (XEXP (op0, 0), 0))
+ 	 && CONST_INT_P (XEXP (op0, 1))
+ 	 && INTVAL (XEXP (op0, 1)) == 64
+ 	 && GET_CODE (op1) == ZERO_EXTEND
+ 	 && GET_MODE (XEXP (op1, 0)) == DImode
+ 	 && REG_P (XEXP (op1, 0));
+ }
+ 
+ 
  /* Add instruction into a chain.  Return true if OK, false if the search
     was aborted.  */
  
*************** scalar_chain::add_insn (bitmap candidate
*** 477,485 ****
        if (!analyze_register_chain (candidates, ref, disallowed))
  	return false;
  
!   /* The operand(s) of VEC_SELECT don't need to be converted/convertible.  */
!   if (def_set && GET_CODE (SET_SRC (def_set)) == VEC_SELECT)
!     return true;
  
    for (ref = DF_INSN_UID_USES (insn_uid); ref; ref = DF_REF_NEXT_LOC (ref))
      if (!DF_REF_REG_MEM_P (ref))
--- 501,526 ----
        if (!analyze_register_chain (candidates, ref, disallowed))
  	return false;
  
!   /* The operand(s) of VEC_SELECT, ZERO_EXTEND and similar ops don't need
!      to be converted/convertible.  */
!   if (def_set)
!     switch (GET_CODE (SET_SRC (def_set)))
!       {
!       case VEC_SELECT:
! 	return true;
!       case ZERO_EXTEND:
! 	if (GET_MODE (XEXP (SET_SRC (def_set), 0)) == DImode)
! 	  return true;
! 	break;
!       case PLUS:
!       case IOR:
!       case XOR:
! 	if (smode == TImode && timode_concatdi_p (SET_SRC (def_set)))
! 	  return true;
! 	break;
!       default:
! 	break;
!       }
  
    for (ref = DF_INSN_UID_USES (insn_uid); ref; ref = DF_REF_NEXT_LOC (ref))
      if (!DF_REF_REG_MEM_P (ref))
*************** timode_scalar_chain::compute_convert_gai
*** 1628,1641 ****
--- 1669,1702 ----
  	  break;
  
  	case AND:
+ 	  if (!MEM_P (dst))
+ 	    igain = COSTS_N_INSNS (1);
+ 	  if (CONST_SCALAR_INT_P (XEXP (src, 1)))
+ 	    igain += timode_immed_const_gain (XEXP (src, 1), bb);
+ 	  break;
+ 
  	case XOR:
  	case IOR:
+ 	  if (timode_concatdi_p (src))
+ 	    {
+ 	      /* vmovq;vpinsrq (11 bytes).  */
+ 	      igain = speed_p ? -2 * ix86_cost->sse_to_integer
+ 			      : -COSTS_N_BYTES (11);
+ 	      break;
+ 	    }
  	  if (!MEM_P (dst))
  	    igain = COSTS_N_INSNS (1);
  	  if (CONST_SCALAR_INT_P (XEXP (src, 1)))
  	    igain += timode_immed_const_gain (XEXP (src, 1), bb);
  	  break;
  
+ 	case PLUS:
+ 	  if (timode_concatdi_p (src))
+ 	    /* vmovq;vpinsrq (11 bytes).  */
+ 	    igain = speed_p ? -2 * ix86_cost->sse_to_integer
+ 			    : -COSTS_N_BYTES (11);
+ 	  break;
+ 
  	case ASHIFT:
  	case LSHIFTRT:
  	  /* See ix86_expand_v1ti_shift.  */
*************** timode_scalar_chain::compute_convert_gai
*** 1794,1799 ****
--- 1855,1867 ----
  	    igain = !speed_p ? -COSTS_N_BYTES (6) : -COSTS_N_INSNS (1);
  	  break;
  
+ 	case ZERO_EXTEND:
+ 	  if (GET_MODE (XEXP (src, 0)) == DImode)
+ 	    /* xor (2 bytes) vs. vmovq (5 bytes).  */
+ 	    igain = speed_p ? COSTS_N_INSNS (1) - ix86_cost->sse_to_integer
+ 			    : -COSTS_N_BYTES (3);
+ 	  break;
+ 
  	default:
  	  break;
  	}
*************** timode_scalar_chain::fix_debug_reg_uses
*** 1858,1863 ****
--- 1926,1953 ----
      }
  }
  
+ /* Convert SRC, a *concatditi3 pattern, into a vec_concatv2di instruction.
+    Insert this before INSN, and return the result as a V1TImode subreg.  */
+ 
+ static rtx
+ timode_convert_concatdi (rtx src, rtx_insn *insn)
+ {
+   rtx hi, lo;
+   rtx tmp = gen_reg_rtx (V2DImode);
+   if (GET_CODE (XEXP (src, 0)) == ASHIFT)
+     {
+       hi = XEXP (XEXP (XEXP (src, 0), 0), 0);
+       lo = XEXP (XEXP (src, 1), 0);
+     }
+   else
+     {
+       hi = XEXP (XEXP (XEXP (src, 1), 0), 0);
+       lo = XEXP (XEXP (src, 0), 0);
+     }
+   emit_insn_before (gen_vec_concatv2di (tmp, lo, hi), insn);
+   return gen_rtx_SUBREG (V1TImode, tmp, 0);
+ }
+ 
  /* Convert INSN from TImode to V1T1mode.  */
  
  void
*************** timode_scalar_chain::convert_insn (rtx_i
*** 1967,1976 ****
  	  PUT_MODE (src, V1TImode);
  	  break;
  	}
!       /* FALLTHRU */
  
      case XOR:
      case IOR:
        convert_op (&XEXP (src, 0), insn);
        convert_op (&XEXP (src, 1), insn);
        PUT_MODE (src, V1TImode);
--- 2057,2080 ----
  	  PUT_MODE (src, V1TImode);
  	  break;
  	}
!       convert_op (&XEXP (src, 0), insn);
!       convert_op (&XEXP (src, 1), insn);
!       PUT_MODE (src, V1TImode);
!       if (MEM_P (dst))
! 	{
! 	  tmp = gen_reg_rtx (V1TImode);
! 	  emit_insn_before (gen_rtx_SET (tmp, src), insn);
! 	  src = tmp;
! 	}
!       break;
  
      case XOR:
      case IOR:
+       if (timode_concatdi_p (src))
+ 	{
+ 	  src = timode_convert_concatdi (src, insn);
+ 	  break;
+ 	}
        convert_op (&XEXP (src, 0), insn);
        convert_op (&XEXP (src, 1), insn);
        PUT_MODE (src, V1TImode);
*************** timode_scalar_chain::convert_insn (rtx_i
*** 2010,2015 ****
--- 2114,2139 ----
        PUT_MODE (src, V1TImode);
        break;
  
+     case ZERO_EXTEND:
+       if (GET_MODE (XEXP (src, 0)) == DImode)
+ 	{
+ 	  /* Convert to *vec_concatv2di_0.  */
+ 	  rtx tmp = gen_reg_rtx (V2DImode);
+ 	  rtx pat = gen_rtx_VEC_CONCAT (V2DImode, XEXP (src, 0), const0_rtx);
+ 	  emit_insn_before (gen_move_insn (tmp, pat), insn);
+ 	  src = gen_rtx_SUBREG (vmode, tmp, 0);
+ 	}
+       else
+ 	gcc_unreachable ();
+       break;
+ 
+     case PLUS:
+       if (timode_concatdi_p (src))
+ 	src = timode_convert_concatdi (src, insn);
+       else
+ 	gcc_unreachable ();
+       break;
+ 
      default:
        gcc_unreachable ();
      }
*************** timode_scalar_to_vector_candidate_p (rtx
*** 2389,2394 ****
--- 2513,2520 ----
  
      case IOR:
      case XOR:
+       if (timode_concatdi_p (src))
+ 	return true;
        return (REG_P (XEXP (src, 0))
  	      || timode_mem_p (XEXP (src, 0)))
  	     && (REG_P (XEXP (src, 1))
*************** timode_scalar_to_vector_candidate_p (rtx
*** 2408,2413 ****
--- 2534,2546 ----
  	     && CONST_INT_P (XEXP (src, 1))
  	     && (INTVAL (XEXP (src, 1)) & ~0x7f) == 0;
  
+     case PLUS:
+       return timode_concatdi_p (src);
+ 
+     case ZERO_EXTEND:
+       return REG_P (XEXP (src, 0))
+ 	     && GET_MODE (XEXP (src, 0)) == DImode;
+ 
      default:
        return false;
      }
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386-jit.cc gcc-16-20251026/gcc/config/i386/i386-jit.cc
*** gcc-16-20251019/gcc/config/i386/i386-jit.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386-jit.cc	Sun Oct 26 22:32:32 2025
*************** ix86_jit_register_target_info (void)
*** 65,70 ****
--- 65,82 ----
      jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_INT128_T);
    }
  
+   if (float16_type_node != NULL && TYPE_PRECISION (float16_type_node) == 16)
+     jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_FLOAT16);
+ 
+   if (float32_type_node != NULL && TYPE_PRECISION (float32_type_node) == 32)
+     jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_FLOAT32);
+ 
+   if (float64_type_node != NULL && TYPE_PRECISION (float64_type_node) == 64)
+     jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_FLOAT64);
+ 
+   if (float128_type_node != NULL && TYPE_PRECISION (float128_type_node) == 128)
+     jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_FLOAT128);
+ 
  #define ADD_TARGET_INFO jit_add_target_info
  #include "i386-rust-and-jit.inc"
  #undef ADD_TARGET_INFO
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386-options.cc gcc-16-20251026/gcc/config/i386/i386-options.cc
*** gcc-16-20251019/gcc/config/i386/i386-options.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386-options.cc	Sun Oct 26 22:32:32 2025
*************** along with GCC; see the file COPYING3.
*** 132,137 ****
--- 132,138 ----
  #define m_ARROWLAKE_S (HOST_WIDE_INT_1U<<PROCESSOR_ARROWLAKE_S)
  #define m_PANTHERLAKE (HOST_WIDE_INT_1U<<PROCESSOR_PANTHERLAKE)
  #define m_DIAMONDRAPIDS (HOST_WIDE_INT_1U<<PROCESSOR_DIAMONDRAPIDS)
+ #define m_NOVALAKE (HOST_WIDE_INT_1U<<PROCESSOR_NOVALAKE)
  #define m_CORE_AVX512 (m_SKYLAKE_AVX512 | m_CANNONLAKE \
  		       | m_ICELAKE_CLIENT | m_ICELAKE_SERVER | m_CASCADELAKE \
  		       | m_TIGERLAKE | m_COOPERLAKE | m_SAPPHIRERAPIDS \
*************** along with GCC; see the file COPYING3.
*** 140,146 ****
  #define m_CORE_AVX2 (m_HASWELL | m_SKYLAKE | m_CORE_AVX512)
  #define m_CORE_ALL (m_CORE2 | m_NEHALEM  | m_SANDYBRIDGE | m_CORE_AVX2)
  #define m_CORE_HYBRID (m_ALDERLAKE | m_ARROWLAKE | m_ARROWLAKE_S \
! 		       | m_PANTHERLAKE)
  #define m_GOLDMONT (HOST_WIDE_INT_1U<<PROCESSOR_GOLDMONT)
  #define m_GOLDMONT_PLUS (HOST_WIDE_INT_1U<<PROCESSOR_GOLDMONT_PLUS)
  #define m_TREMONT (HOST_WIDE_INT_1U<<PROCESSOR_TREMONT)
--- 141,147 ----
  #define m_CORE_AVX2 (m_HASWELL | m_SKYLAKE | m_CORE_AVX512)
  #define m_CORE_ALL (m_CORE2 | m_NEHALEM  | m_SANDYBRIDGE | m_CORE_AVX2)
  #define m_CORE_HYBRID (m_ALDERLAKE | m_ARROWLAKE | m_ARROWLAKE_S \
! 		       | m_PANTHERLAKE | m_NOVALAKE)
  #define m_GOLDMONT (HOST_WIDE_INT_1U<<PROCESSOR_GOLDMONT)
  #define m_GOLDMONT_PLUS (HOST_WIDE_INT_1U<<PROCESSOR_GOLDMONT_PLUS)
  #define m_TREMONT (HOST_WIDE_INT_1U<<PROCESSOR_TREMONT)
*************** static const struct processor_costs *pro
*** 790,795 ****
--- 791,797 ----
    &alderlake_cost,	/* PROCESSOR_ARROWLAKE_S.	*/
    &alderlake_cost,	/* PROCESSOR_PANTHERLAKE.	*/
    &icelake_cost,	/* PROCESSOR_DIAMONDRAPIDS.	*/
+   &alderlake_cost,	/* PROCESSOR_NOVALAKE.		*/
    &alderlake_cost,	/* PROCESSOR_INTEL.		*/
    &lujiazui_cost,	/* PROCESSOR_LUJIAZUI.		*/
    &yongfeng_cost,	/* PROCESSOR_YONGFENG.		*/
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386.h gcc-16-20251026/gcc/config/i386/i386.h
*** gcc-16-20251019/gcc/config/i386/i386.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386.h	Sun Oct 26 22:32:32 2025
*************** enum processor_type
*** 2356,2361 ****
--- 2356,2362 ----
    PROCESSOR_ARROWLAKE_S,
    PROCESSOR_PANTHERLAKE,
    PROCESSOR_DIAMONDRAPIDS,
+   PROCESSOR_NOVALAKE,
    PROCESSOR_INTEL,
    PROCESSOR_LUJIAZUI,
    PROCESSOR_YONGFENG,
*************** constexpr wide_int_bitmask PTA_DIAMONDRA
*** 2487,2492 ****
--- 2488,2494 ----
    | PTA_CMPCCXADD | PTA_SHA512 | PTA_SM3 | PTA_SM4 | PTA_AVX10_2
    | PTA_APX_F | PTA_AMX_AVX512 | PTA_AMX_FP8 | PTA_AMX_TF32 | PTA_MOVRS
    | PTA_AMX_MOVRS;
+ constexpr wide_int_bitmask PTA_NOVALAKE = PTA_PANTHERLAKE | PTA_PREFETCHI;
  
  constexpr wide_int_bitmask PTA_BDVER1 = PTA_64BIT | PTA_MMX | PTA_SSE
    | PTA_SSE2 | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_POPCNT | PTA_LZCNT
diff -Nrcpad gcc-16-20251019/gcc/config/i386/i386.md gcc-16-20251026/gcc/config/i386/i386.md
*** gcc-16-20251019/gcc/config/i386/i386.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/i386.md	Sun Oct 26 22:32:32 2025
***************
*** 4982,4988 ****
    "TARGET_64BIT"
    "@
     {cltq|cdqe}
!    movs{lq|x}\t{%1, %0|%0, %1}"
    [(set_attr "type" "imovx")
     (set_attr "mode" "DI")
     (set_attr "prefix_0f" "0")
--- 4982,4988 ----
    "TARGET_64BIT"
    "@
     {cltq|cdqe}
!    movs{lq|xd}\t{%1, %0|%0, %1}"
    [(set_attr "type" "imovx")
     (set_attr "mode" "DI")
     (set_attr "prefix_0f" "0")
***************
*** 15084,15091 ****
  
  (define_expand "copysign<mode>3"
    [(match_operand:SSEMODEF 0 "register_operand")
!    (match_operand:SSEMODEF 1 "nonmemory_operand")
!    (match_operand:SSEMODEF 2 "register_operand")]
    "(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)
     || (TARGET_SSE && (<MODE>mode == TFmode))
     || (TARGET_AVX512FP16 && (<MODE>mode ==HFmode))"
--- 15084,15091 ----
  
  (define_expand "copysign<mode>3"
    [(match_operand:SSEMODEF 0 "register_operand")
!    (match_operand:SSEMODEF 1 "register_operand")
!    (match_operand:SSEMODEF 2 "nonmemory_operand")]
    "(SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH)
     || (TARGET_SSE && (<MODE>mode == TFmode))
     || (TARGET_AVX512FP16 && (<MODE>mode ==HFmode))"
***************
*** 27859,27865 ****
  {
    output_asm_insn ("mov{<imodesuffix>}\t{%3, %<k>1|%<k>1, %3}", operands);
    output_asm_insn ("mov{<imodesuffix>}\t{%<k>1, %0|%0, %<k>1}", operands);
!   return "movs{lq|x}\t{%2, %1|%1, %2}";
  }
    [(set_attr "type" "multi")
     (set_attr "length" "24")])
--- 27859,27865 ----
  {
    output_asm_insn ("mov{<imodesuffix>}\t{%3, %<k>1|%<k>1, %3}", operands);
    output_asm_insn ("mov{<imodesuffix>}\t{%<k>1, %0|%0, %<k>1}", operands);
!   return "movs{lq|xd}\t{%2, %1|%1, %2}";
  }
    [(set_attr "type" "multi")
     (set_attr "length" "24")])
diff -Nrcpad gcc-16-20251019/gcc/config/i386/sse.md gcc-16-20251026/gcc/config/i386/sse.md
*** gcc-16-20251019/gcc/config/i386/sse.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/i386/sse.md	Sun Oct 26 22:32:32 2025
***************
*** 569,574 ****
--- 569,586 ----
     (V16SI "TARGET_AVX512F") (V8SI "TARGET_AVX2") V4SI
     (V8DI "TARGET_AVX512F") (V4DI "TARGET_AVX2") V2DI])
  
+ (define_mode_iterator VI_AVX
+   [(V32QI "TARGET_AVX") V16QI
+    (V16HI "TARGET_AVX") V8HI
+    (V8SI "TARGET_AVX") V4SI
+    (V4DI "TARGET_AVX") V2DI])
+ 
+ (define_mode_iterator VI_AVX2_CMP
+   [(V32QI "TARGET_AVX2") V16QI
+    (V16HI "TARGET_AVX2") V8HI
+    (V8SI "TARGET_AVX2") V4SI
+    (V4DI "TARGET_AVX2") V2DI])
+ 
  (define_mode_iterator VI_AVX_AVX512F
    [(V64QI "TARGET_AVX512F") (V32QI "TARGET_AVX") V16QI
     (V32HI "TARGET_AVX512F") (V16HI "TARGET_AVX") V8HI
***************
*** 896,902 ****
  (define_mode_attr ssebytemode
    [(V8DI "V64QI") (V4DI "V32QI") (V2DI "V16QI")
     (V16SI "V64QI") (V8SI "V32QI") (V4SI "V16QI")
!    (V8HI "V16QI")])
  
  (define_mode_attr sseintconvert
    [(V32HI "w") (V16HI "w") (V8HI "w")
--- 908,915 ----
  (define_mode_attr ssebytemode
    [(V8DI "V64QI") (V4DI "V32QI") (V2DI "V16QI")
     (V16SI "V64QI") (V8SI "V32QI") (V4SI "V16QI")
!    (V16HI "V32QI") (V8HI "V16QI")
!    (V32QI "V32QI") (V16QI "V16QI")])
  
  (define_mode_attr sseintconvert
    [(V32HI "w") (V16HI "w") (V8HI "w")
***************
*** 4013,4018 ****
--- 4026,4195 ----
    DONE;
  })
  
+ (define_expand "reduc_sbool_and_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:SWI1248_AVX512BWDQ 1 "register_operand")
+   (match_operand:SI 2 "const_int_operand")]
+  "TARGET_AVX512F"
+ {
+   int n_elt = INTVAL (operands[2]);
+   rtx op2 = CONSTM1_RTX (<MODE>mode);
+   rtx op1 = operands[1];
+   if (n_elt < 8)
+     {
+       op2 = gen_int_mode ((1u << n_elt) - 1, QImode);
+       op1 = gen_reg_rtx (QImode);
+       emit_insn (gen_andqi3 (op1, operands[1], op2));
+     }
+   ix86_expand_setcc (operands[0], EQ, op1, op2);
+   DONE;
+ })
+ 
+ (define_expand "reduc_sbool_ior_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:SWI1248_AVX512BWDQ 1 "register_operand")
+   (match_operand:SI 2 "const_int_operand")]
+  "TARGET_AVX512F"
+ {
+   int n_elt = INTVAL (operands[2]);
+   rtx op1 = operands[1];
+   if (n_elt < 8)
+     {
+       rtx op2 = gen_int_mode ((1u << n_elt) - 1, QImode);
+       op1 = gen_reg_rtx (QImode);
+       emit_insn (gen_andqi3 (op1, operands[1], op2));
+     }
+   ix86_expand_setcc (operands[0], NE,
+ 		    op1, CONST0_RTX (<MODE>mode));
+   DONE;
+ })
+ 
+ (define_expand "reduc_sbool_xor_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:SWI1248_AVX512BWDQ 1 "register_operand")
+   (match_operand:SI 2 "const_int_operand")]
+  "TARGET_AVX512F && TARGET_POPCNT
+   && (TARGET_64BIT || <MODE>mode != DImode)"
+ {
+   rtx popcnt1, op1 = operands[1];
+   int n_elt = INTVAL (operands[2]);
+   if (n_elt < 8)
+     {
+       rtx op2 = gen_int_mode ((1u << n_elt) - 1, QImode);
+       op1 = gen_reg_rtx (QImode);
+       emit_insn (gen_andqi3 (op1, operands[1], op2));
+     }
+ 
+   switch (<MODE_SIZE>)
+     {
+     case 1:
+     case 2:
+       op1 = gen_reg_rtx (SImode);
+       emit_move_insn (op1, gen_rtx_ZERO_EXTEND (SImode, operands[1]));
+       /* FALLTHRU.  */
+     case 4:
+       popcnt1 = gen_reg_rtx (SImode);
+       emit_insn (gen_popcountsi2 (popcnt1, op1));
+       emit_insn (gen_andsi3 (popcnt1, popcnt1, GEN_INT (0x1)));
+       break;
+ 
+     case 8:
+       popcnt1 = gen_reg_rtx (DImode);
+       emit_insn (gen_popcountdi2 (popcnt1, op1));
+       emit_insn (gen_anddi3 (popcnt1, popcnt1, GEN_INT (0x1)));
+       break;
+ 
+      default:
+        gcc_unreachable ();
+ 
+     }
+ 
+   emit_move_insn (operands[0], gen_lowpart (QImode, popcnt1));
+   DONE;
+ })
+ 
+ (define_expand "reduc_sbool_and_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:VI_AVX 1 "register_operand")]
+  "TARGET_SSE4_1"
+ {
+   rtx flags = gen_rtx_REG (CCZmode, FLAGS_REG);
+   rtx op2, tmp;
+   if (TARGET_AVX2 || <MODE_SIZE> != 32)
+     {
+       op2 = force_reg (<MODE>mode, CONST0_RTX (<MODE>mode));
+       tmp = gen_reg_rtx (<MODE>mode);
+       rtx op1 = gen_rtx_EQ (<MODE>mode, operands[1], op2);
+       emit_insn (gen_vec_cmp<mode><mode> (tmp, op1, operands[1], op2));
+     }
+   else
+     {
+       op2 = force_reg (<MODE>mode, CONSTM1_RTX (<MODE>mode));
+       tmp = gen_reg_rtx (<MODE>mode);
+       rtx ops[3] = { tmp, operands[1], op2 };
+       ix86_expand_vector_logical_operator (XOR, <MODE>mode, ops);
+     }
+ 
+   tmp = gen_rtx_UNSPEC (CCZmode, gen_rtvec(2, tmp, tmp), UNSPEC_PTEST);
+   emit_insn (gen_rtx_SET (flags, tmp));
+   rtx ret = gen_rtx_fmt_ee (EQ, VOIDmode, flags, const0_rtx);
+   PUT_MODE (ret, QImode);
+   emit_insn (gen_rtx_SET (operands[0], ret));
+   DONE;
+ 
+ })
+ 
+ (define_expand "reduc_sbool_ior_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:VI_AVX 1 "register_operand")]
+  "TARGET_SSE4_1"
+ {
+   rtx flags = gen_rtx_REG (CCZmode, FLAGS_REG);
+   rtx tmp = gen_rtx_UNSPEC (CCZmode, gen_rtvec(2, operands[1], operands[1]), UNSPEC_PTEST);
+   emit_insn (gen_rtx_SET (flags, tmp));
+   rtx ret = gen_rtx_fmt_ee (NE, VOIDmode, flags, const0_rtx);
+   PUT_MODE (ret, QImode);
+   emit_insn (gen_rtx_SET (operands[0], ret));
+   DONE;
+ })
+ 
+ (define_expand "reduc_sbool_xor_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:VI1_AVX2 1 "register_operand")]
+  "TARGET_SSE2 && TARGET_POPCNT"
+ {
+   rtx popcnt1 = gen_reg_rtx (SImode);
+   emit_insn (gen_<sse2_avx2>_pmovmskb (popcnt1,operands[1]));
+ 
+   emit_insn (gen_popcountsi2 (popcnt1, popcnt1));
+   emit_insn (gen_andsi3 (popcnt1, popcnt1, GEN_INT (0x1)));
+ 
+   emit_move_insn (operands[0], gen_lowpart (QImode, popcnt1));
+   DONE;
+ })
+ 
+ (define_mode_attr ssefltvecmode
+   [(V2DI "V2DF") (V4DI "V4DF") (V4SI "V4SF") (V8SI "V8SF")])
+ 
+ (define_expand "reduc_sbool_xor_scal_<mode>"
+  [(match_operand:QI 0 "register_operand")
+   (match_operand:VI48_AVX 1 "register_operand")]
+  "TARGET_SSE2 && TARGET_POPCNT"
+ {
+   rtx popcnt1 = gen_reg_rtx (SImode);
+   rtx tmp = gen_rtx_UNSPEC (SImode, gen_rtvec(1,
+ 				    gen_lowpart (<ssefltvecmode>mode,
+ 				    operands[1])),
+ 			    UNSPEC_MOVMSK);
+   emit_insn (gen_rtx_SET (popcnt1, tmp));
+ 
+   emit_insn (gen_popcountsi2 (popcnt1, popcnt1));
+   emit_insn (gen_andsi3 (popcnt1, popcnt1, GEN_INT (0x1)));
+ 
+   emit_move_insn (operands[0], gen_lowpart (QImode, popcnt1));
+   DONE;
+ })
+ 
  (define_insn "<mask_codefor>reducep<mode><mask_name><round_saeonly_name>"
    [(set (match_operand:VFH_AVX512VL 0 "register_operand" "=v")
  	(unspec:VFH_AVX512VL
***************
*** 4632,4637 ****
--- 4809,4841 ----
  	   UNSPEC_PCMP_ITER))]
    "operands[4] = GEN_INT (INTVAL (operands[3]) ^ 4);")
  
+ (define_insn_and_split "*<avx512>_cmp<mode>3_dup_op"
+   [(set (match_operand:<avx512fmaskmode> 0 "register_operand")
+ 	(unspec:<avx512fmaskmode>
+ 	  [(match_operand:VI1248_AVX512VLBW 1 "general_operand")
+ 	   (match_operand:VI1248_AVX512VLBW 2 "general_operand")
+ 	   (match_operand:SI 3 "<cmp_imm_predicate>")]
+ 	  UNSPEC_PCMP_ITER))]
+   "TARGET_AVX512F && ix86_pre_reload_split ()
+    && rtx_equal_p (operands[1], operands[2])"
+   "#"
+   "&& 1"
+   [(set (match_dup 0) (match_dup 4))]
+ {
+   int cmp_imm = INTVAL (operands[3]);
+   rtx res = CONST0_RTX (<avx512fmaskmode>mode);
+   /* EQ/LE/NLT.  */
+   if (cmp_imm == 0 || cmp_imm == 2 || cmp_imm == 5)
+   {
+     int nelts = GET_MODE_NUNITS (<MODE>mode);
+     if (nelts >= 8)
+       res = CONSTM1_RTX (<avx512fmaskmode>mode);
+     else
+       res = gen_int_mode ((1u << nelts) - 1, QImode);
+   }
+   operands[4] = res;
+ })
+ 
  (define_insn "*<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
    [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=k,k")
  	(unspec:<avx512fmaskmode>
***************
*** 17975,17980 ****
--- 18179,18202 ----
     (set_attr "prefix" "vex")
     (set_attr "mode" "OI")])
  
+ (define_insn_and_split "*eq<mode>3_2_negate"
+   [(set (match_operand:VI_AVX2_CMP 0 "register_operand")
+ 	(eq:VI_AVX2_CMP
+ 	  (eq:VI_AVX2_CMP
+ 	    (eq: VI_AVX2_CMP
+ 	      (match_operand:VI_AVX2_CMP 1 "nonimmediate_operand")
+ 	      (match_operand:VI_AVX2_CMP 2 "general_operand"))
+ 	    (match_operand:VI_AVX2_CMP 3 "const0_operand"))
+ 	  (match_operand:VI_AVX2_CMP 4 "const0_operand")))]
+   "TARGET_SSE4_1 && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(eq:VI_AVX2_CMP (match_dup 1)
+ 			(match_dup 5)))]
+  "operands[5] = force_reg (<MODE>mode, operands[2]);")
+ 
+ 
  (define_insn_and_split "*avx2_pcmp<mode>3_1"
   [(set (match_operand:VI_128_256  0 "register_operand")
  	(vec_merge:VI_128_256
***************
*** 23665,23673 ****
     (set_attr "btver2_decode" "vector,vector,vector")
     (set_attr "mode" "<MODE>")])
  
- (define_mode_attr ssefltvecmode
-   [(V2DI "V2DF") (V4DI "V4DF") (V4SI "V4SF") (V8SI "V8SF")])
- 
  (define_insn_and_split "*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint"
    [(set (match_operand:<ssebytemode> 0 "register_operand" "=Yr,*x,x")
  	(unspec:<ssebytemode>
--- 23887,23892 ----
***************
*** 25482,25487 ****
--- 25701,25736 ----
  			   (match_dup 0)
  			   (pc)))])
  
+ 
+ ;; (unspec:ccz [(eq (eq op0 const0) const0)] unspec_ptest)
+ ;; is equal to (unspec:ccz [op0 op0] unspec_ptest).
+ (define_insn_and_split "*ptest<mode>_ccz"
+   [(set (reg:CCZ FLAGS_REG)
+ 	(unspec:CCZ
+ 	  [(eq:VI_AVX
+ 	     (eq:VI_AVX
+ 	       (match_operand:VI_AVX 0 "vector_operand")
+ 	       (match_operand:VI_AVX 1 "const0_operand"))
+ 	     (match_operand:VI_AVX 2 "const0_operand"))
+ 	   (eq:VI_AVX
+ 	     (eq:VI_AVX (match_dup 0) (match_dup 1))
+ 	     (match_dup 2))]
+ 	 UNSPEC_PTEST))]
+   "TARGET_SSE4_1
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (reg:CCZ FLAGS_REG)
+ 	(unspec:CCZ
+ 	  [(match_dup 3) (match_dup 3)]
+ 	 UNSPEC_PTEST))]
+ {
+   if (MEM_P (operands[0]))
+     operands[3] = force_reg (<MODE>mode, operands[0]);
+   else
+     operands[3] = operands[0];
+ })
+ 
  (define_expand "nearbyint<mode>2"
    [(set (match_operand:VFH 0 "register_operand")
  	(unspec:VFH
diff -Nrcpad gcc-16-20251019/gcc/config/loongarch/lasx.md gcc-16-20251026/gcc/config/loongarch/lasx.md
*** gcc-16-20251019/gcc/config/loongarch/lasx.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/loongarch/lasx.md	Sun Oct 26 22:32:32 2025
***************
*** 633,638 ****
--- 633,680 ----
    [(set_attr "move_type" "fmove")
     (set_attr "mode" "<UNITMODE>")])
  
+ (define_expand "vec_extract<mode><lasxhalf>"
+   [(match_operand:<VHMODE256_ALL> 0 "register_operand")
+    (match_operand:LASX 1 "register_operand")
+    (match_operand 2 "const_0_or_1_operand")]
+   "ISA_HAS_LASX"
+ {
+   if (INTVAL (operands[2]))
+     {
+      operands[2] = loongarch_lsx_vec_parallel_const_half (<MODE>mode, true);
+      emit_insn (gen_vec_extract_hi_<mode> (operands[0], operands[1],
+                  operands[2]));
+     }
+   else
+     {
+      operands[2] = loongarch_lsx_vec_parallel_const_half (<MODE>mode, false);
+      emit_insn (gen_vec_extract_lo_<mode> (operands[0], operands[1],
+                  operands[2]));
+     }
+   DONE;
+ })
+ 
+ (define_insn_and_split "vec_extract_lo_<mode>"
+   [(set (match_operand:<VHMODE256_ALL> 0 "register_operand" "=f")
+     (vec_select:<VHMODE256_ALL>
+       (match_operand:LASX 1 "register_operand" "f")
+       (match_operand:LASX 2 "vect_par_cnst_low_half")))]
+   "ISA_HAS_LASX"
+   "#"
+   "&& reload_completed"
+   [(set (match_dup 0) (match_dup 1))]
+   "operands[1] = gen_lowpart (<VHMODE256_ALL>mode, operands[1]);")
+ 
+ (define_insn "vec_extract_hi_<mode>"
+   [(set (match_operand:<VHMODE256_ALL> 0 "register_operand" "=f")
+     (vec_select:<VHMODE256_ALL>
+       (match_operand:LASX 1 "register_operand" "f")
+       (match_operand:LASX 2 "vect_par_cnst_high_half")))]
+   "ISA_HAS_LASX"
+   "xvpermi.d\t%u0,%u1,0xe"
+   [(set_attr "move_type" "fmove")
+    (set_attr "mode" "<MODE>")])
+ 
  (define_expand "vec_perm<mode>"
   [(match_operand:LASX 0 "register_operand")
    (match_operand:LASX 1 "register_operand")
diff -Nrcpad gcc-16-20251019/gcc/config/loongarch/loongarch-protos.h gcc-16-20251026/gcc/config/loongarch/loongarch-protos.h
*** gcc-16-20251019/gcc/config/loongarch/loongarch-protos.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/loongarch/loongarch-protos.h	Sun Oct 26 22:32:32 2025
*************** extern bool loongarch_const_vector_same_
*** 121,126 ****
--- 121,127 ----
  extern bool loongarch_const_vector_shuffle_set_p (rtx, machine_mode);
  extern bool loongarch_const_vector_bitimm_set_p (rtx, machine_mode);
  extern bool loongarch_const_vector_bitimm_clr_p (rtx, machine_mode);
+ extern bool loongarch_check_vect_par_cnst_half (rtx, machine_mode, bool);
  extern rtx loongarch_const_vector_vrepli (rtx, machine_mode);
  extern rtx loongarch_lsx_vec_parallel_const_half (machine_mode, bool);
  extern rtx loongarch_gen_const_int_vector (machine_mode, HOST_WIDE_INT);
diff -Nrcpad gcc-16-20251019/gcc/config/loongarch/loongarch.cc gcc-16-20251026/gcc/config/loongarch/loongarch.cc
*** gcc-16-20251019/gcc/config/loongarch/loongarch.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/loongarch/loongarch.cc	Sun Oct 26 22:32:32 2025
*************** loongarch_const_vector_shuffle_set_p (rt
*** 1846,1851 ****
--- 1846,1882 ----
    return true;
  }
  
+ /* Check if OP is a PARALLEL RTX with CONST_INT elements representing
+    the HIGH (high_p == TRUE) or LOW (high_p == FALSE) half of a vector
+    for mode MODE. Returns true if the pattern matches, false otherwise.  */
+ 
+ bool
+ loongarch_check_vect_par_cnst_half (rtx op, machine_mode mode, bool high_p)
+ {
+   int nunits = XVECLEN (op, 0);
+   int nelts = GET_MODE_NUNITS (mode);
+ 
+   if (!known_eq (nelts, nunits * 2))
+     return false;
+ 
+   rtx first = XVECEXP (op, 0, 0);
+   if (!CONST_INT_P (first))
+     return false;
+ 
+   int base = high_p ? nelts / 2 : 0;
+   if (INTVAL (first) != base)
+     return false;
+ 
+   for (int i = 1; i < nunits; i++)
+     {
+       rtx elem = XVECEXP (op, 0, i);
+       if (!CONST_INT_P (elem) || INTVAL (elem) != INTVAL (first) + i)
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
  rtx
  loongarch_const_vector_vrepli (rtx x, machine_mode mode)
  {
*************** loongarch_rtx_costs (rtx x, machine_mode
*** 4143,4148 ****
--- 4174,4192 ----
      }
  }
  
+ /* All CPUs prefer to avoid cross-lane operations so perform reductions
+    upper against lower halves up to LSX reg size.  */
+ 
+ machine_mode
+ loongarch_split_reduction (machine_mode mode)
+ {
+   if (LSX_SUPPORTED_MODE_P (mode))
+     return mode;
+ 
+   return mode_for_vector (as_a <scalar_mode> (GET_MODE_INNER (mode)),
+ 			  GET_MODE_NUNITS (mode) / 2).require ();
+ }
+ 
  /* Implement targetm.vectorize.builtin_vectorization_cost.  */
  
  static int
*************** loongarch_can_inline_p (tree caller, tre
*** 11397,11402 ****
--- 11441,11450 ----
  #define TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES \
    loongarch_autovectorize_vector_modes
  
+ #undef TARGET_VECTORIZE_SPLIT_REDUCTION
+ #define TARGET_VECTORIZE_SPLIT_REDUCTION \
+   loongarch_split_reduction
+ 
  #undef TARGET_OPTAB_SUPPORTED_P
  #define TARGET_OPTAB_SUPPORTED_P loongarch_optab_supported_p
  
diff -Nrcpad gcc-16-20251019/gcc/config/loongarch/predicates.md gcc-16-20251026/gcc/config/loongarch/predicates.md
*** gcc-16-20251019/gcc/config/loongarch/predicates.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/loongarch/predicates.md	Sun Oct 26 22:32:32 2025
***************
*** 699,701 ****
--- 699,717 ----
  
    return true;
  })
+ 
+ ;; PARALLEL for a vec_select that selects the low half
+ ;; elements of a vector of MODE.
+ (define_special_predicate "vect_par_cnst_low_half"
+   (match_code "parallel")
+ {
+   return loongarch_check_vect_par_cnst_half (op, mode, false);
+ })
+ 
+ ;; PARALLEL for a vec_select that selects the high half
+ ;; elements of a vector of MODE.
+ (define_special_predicate "vect_par_cnst_high_half"
+   (match_code "parallel")
+ {
+   return loongarch_check_vect_par_cnst_half (op, mode, true);;
+ })
diff -Nrcpad gcc-16-20251019/gcc/config/riscv/riscv.cc gcc-16-20251026/gcc/config/riscv/riscv.cc
*** gcc-16-20251019/gcc/config/riscv/riscv.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/riscv/riscv.cc	Sun Oct 26 22:32:32 2025
*************** riscv_legitimize_move (machine_mode mode
*** 3723,3728 ****
--- 3723,3734 ----
  	      riscv_vector::emit_vec_extract (result, v,
  					      gen_int_mode (index + i, Pmode));
  
+ 	      /* The low-part must be zero-extended when ELEN == 32 and
+ 		 mode == 64.  */
+ 	      if (num == 2 && i == 0)
+ 		emit_insn (gen_extend_insn (int_reg, result, mode, smode,
+ 					    true));
+ 
  	      if (i == 1)
  		{
  		  if (UNITS_PER_WORD < mode_size)
diff -Nrcpad gcc-16-20251019/gcc/config/rs6000/vxworks.h gcc-16-20251026/gcc/config/rs6000/vxworks.h
*** gcc-16-20251019/gcc/config/rs6000/vxworks.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/rs6000/vxworks.h	Sun Oct 26 22:32:32 2025
*************** along with GCC; see the file COPYING3.
*** 270,275 ****
--- 270,276 ----
  /* Allow code model to be selected.  */
  #undef TARGET_CMODEL
  #define TARGET_CMODEL rs6000_current_cmodel
+ #undef SET_CMODEL
  #define SET_CMODEL(opt) rs6000_current_cmodel = opt
  
  /* For link specs, we leverage the linux configuration bits through
*************** along with GCC; see the file COPYING3.
*** 290,294 ****
--- 291,311 ----
     trigger visible link errors (hence remain harmless) if the support isn't
     really there.  */
  
+ /* Select a format to encode pointers in exception handling data.  CODE
+    is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
+    true if the symbol may be affected by dynamic relocations.
+ 
+    This is essentially the linux64.h version with an extra guard on
+    TARGET_VXWORKS_RTP to avoid DW_EH_PE_indirect in 64bit DKMs as they
+    could result in references from one DKM to resolve to symbols exposed
+    by a previsouly loaded DKM even if the symbol is also provided by the
+    DKM where the reference takes place.  */
+ #undef ASM_PREFERRED_EH_DATA_FORMAT
+ #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
+   ((TARGET_64BIT && TARGET_VXWORKS_RTP) || flag_pic			\
+    ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel		\
+       | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4))		\
+    : DW_EH_PE_absptr)
+ 
  #endif /* TARGET_VXWORKS7 */
  
diff -Nrcpad gcc-16-20251019/gcc/config/vxworks/vxworks-predef.h gcc-16-20251026/gcc/config/vxworks/vxworks-predef.h
*** gcc-16-20251019/gcc/config/vxworks/vxworks-predef.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/vxworks/vxworks-predef.h	Sun Oct 26 22:32:32 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,32 ****
--- 29,53 ----
     that the OS actually defines it as.  */
  #define __STDC_ISO_10646__		200009L
  
+ /* If we have a designated VSB configuration file, fetch the associated
+    auto configuration header from which we can infer the TOOL and TOOL_FAMILY
+    that other system headers expect.  */
+ 
+ #if defined(_VSB_CONFIG_FILE)
+ 
+ #undef TOOL
+ #undef TOOL_FAMILY
+ 
+ #include <config/autoconf.h>
+ 
+ #if defined(_WRS_CONFIG_PRI_llvm)
+ #define TOOL_FAMILY llvm
+ #elif defined(_WRS_CONFIG_PRI_gnu)
+ #define TOOL_FAMILY gnu
+ #endif
+ 
+ #define TOOL TOOL_FAMILY
+ 
+ #endif /* _VSB_CONFIG_FILE */
+ 
  #endif
diff -Nrcpad gcc-16-20251019/gcc/config/vxworks.h gcc-16-20251026/gcc/config/vxworks.h
*** gcc-16-20251019/gcc/config/vxworks.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/vxworks.h	Sun Oct 26 22:32:32 2025
*************** extern void vxworks_driver_init (unsigne
*** 75,96 ****
  
  #if TARGET_VXWORKS7
  
! /* We arrange not rely on fixed includes for vx7 and the headers spread over
!    common kernel/rtp directories in addition to specific ones for each mode.
!    Setup sysroot_headers_suffix_spec to deal with kernel/rtp distinction.  */
  
  #undef SYSROOT_HEADERS_SUFFIX_SPEC
  #define SYSROOT_HEADERS_SUFFIX_SPEC "%{mrtp:/usr/h;:/krnl/h}"
  
  #undef VXWORKS_ADDITIONAL_CPP_SPEC
! #define VXWORKS_ADDITIONAL_CPP_SPEC                     \
!  "%{!nostdinc:%{!fself-test=*:                          \
!     %{isystem*}                                         \
!     -idirafter %:getenv(VSB_DIR /h)  \
!     -idirafter %:getenv(VSB_DIR /share/h)  \
!     -idirafter =/system \
!     -idirafter =/public \
!   }}"
  
  #else /* TARGET_VXWORKS7 */
  
--- 75,101 ----
  
  #if TARGET_VXWORKS7
  
! /* We arrange not to rely on fixed includes for vx7 and the headers spread
!    over common kernel/rtp directories in addition to specific ones for each
!    mode.  Setup sysroot_headers_suffix_spec to deal with the kernel/rtp
!    distinction.  */
  
  #undef SYSROOT_HEADERS_SUFFIX_SPEC
  #define SYSROOT_HEADERS_SUFFIX_SPEC "%{mrtp:/usr/h;:/krnl/h}"
  
+ /* Now expand everything using sysroot(+suffix) relative references.  The
+    absence of %getenv(VSB_DIR) allows all-gcc builds with possible self-tests
+    to succeed without having to define the variable at all.  */
+ 
  #undef VXWORKS_ADDITIONAL_CPP_SPEC
! #define VXWORKS_ADDITIONAL_CPP_SPEC	\
!   "%{!nostdinc:				\
!      %{isystem*}			\
!      -idirafter =/../../h		\
!      -idirafter =/../../share/h		\
!      -idirafter =/system		\
!      -idirafter =/public		\
!    }"
  
  #else /* TARGET_VXWORKS7 */
  
*************** extern void vxworks_asm_out_destructor (
*** 365,373 ****
  
  /* A VxWorks implementation of TARGET_OS_CPP_BUILTINS.  */
  
! /* The VxWorks personality we rely on, controlling which sections of system
!    headers files we trigger.  This might be redefined on targets where the
!    base VxWorks environment doesn't come with a GNU toolchain.  */
  
  #define VXWORKS_PERSONALITY "gnu"
  
--- 370,385 ----
  
  /* A VxWorks implementation of TARGET_OS_CPP_BUILTINS.  */
  
! /* The VxWorks personality we rely on for VxWorks prior to 7, controlling the
!    definition of TOOL and TOOL_FAMILY macros used within system headers and
!    expected to match the kind of system toolchain on which the OS instance is
!    based (typically, gnu or llvm).  This might be redefined on targets where
!    the base VxWorks environment doesn't come with a GNU toolchain.
! 
!    From VxWorks 7 on, the actual personality might vary for different instances
!    for a given architecture.  The TOOL/TOOL_FAMILY definitions are infered at
!    run-time from vxworks-predef.h, which allows accommodating such variations
!    with a single toolchain.  */
  
  #define VXWORKS_PERSONALITY "gnu"
  
*************** extern void vxworks_asm_out_destructor (
*** 381,388 ****
  	builtin_define ("__RTP__");					\
        else								\
  	builtin_define ("_WRS_KERNEL");					\
-       builtin_define ("TOOL_FAMILY=" VXWORKS_PERSONALITY);		\
-       builtin_define ("TOOL=" VXWORKS_PERSONALITY);			\
        if (TARGET_VXWORKS7)						\
          {								\
             builtin_define ("_VSB_CONFIG_FILE=<config/vsbConfig.h>");	\
--- 393,398 ----
*************** extern void vxworks_asm_out_destructor (
*** 394,399 ****
--- 404,414 ----
  	   if (!flag_isoc99 && !c_dialect_cxx())			\
               builtin_define ("_ALLOW_KEYWORD_MACROS");			\
          }								\
+       else								\
+ 	{								\
+ 	  builtin_define ("TOOL_FAMILY=" VXWORKS_PERSONALITY);		\
+ 	  builtin_define ("TOOL=" VXWORKS_PERSONALITY);			\
+ 	}								\
        /* C++ support relies on C99 features from C++11, even C++98	\
           for listdc++ in particular, with corresponding checks at	\
           configure time.  Make sure C99 features are exposed by the	\
diff -Nrcpad gcc-16-20251019/gcc/config/xtensa/constraints.md gcc-16-20251026/gcc/config/xtensa/constraints.md
*** gcc-16-20251019/gcc/config/xtensa/constraints.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/xtensa/constraints.md	Sun Oct 26 22:32:32 2025
***************
*** 126,132 ****
  
  ;; Memory constraints.
  
! (define_memory_constraint "R"
   "Memory that can be accessed with a 4-bit unsigned offset from a register."
   (and (match_code "mem")
        (match_test "smalloffset_mem_p (op)")))
--- 126,132 ----
  
  ;; Memory constraints.
  
! (define_special_memory_constraint "R"
   "Memory that can be accessed with a 4-bit unsigned offset from a register."
   (and (match_code "mem")
        (match_test "smalloffset_mem_p (op)")))
***************
*** 136,142 ****
   (and (match_code "mem")
        (match_test "!TARGET_CONST16 && constantpool_mem_p (op)")))
  
! (define_memory_constraint "U"
   "Memory that is not in a literal pool."
   (and (match_code "mem")
        (match_test "! constantpool_mem_p (op)")))
--- 136,142 ----
   (and (match_code "mem")
        (match_test "!TARGET_CONST16 && constantpool_mem_p (op)")))
  
! (define_special_memory_constraint "U"
   "Memory that is not in a literal pool."
   (and (match_code "mem")
        (match_test "! constantpool_mem_p (op)")))
diff -Nrcpad gcc-16-20251019/gcc/config/xtensa/xtensa.cc gcc-16-20251026/gcc/config/xtensa/xtensa.cc
*** gcc-16-20251019/gcc/config/xtensa/xtensa.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/xtensa/xtensa.cc	Sun Oct 26 22:32:32 2025
*************** split_DI_SF_DF_const (rtx_insn *insn)
*** 5754,5764 ****
  /* The constant-synthesis optimization (constantsynth for short).
  
     This is an optimization that attempts to replace the assignment of a
!    large integer (and some single-precision floating-point) constant value
!    that won't fit in the immediate field of a single machine instruction
!    with a smaller integer value that does fit, and a group of subsequent
!    instructions that derive the equivalent value through some arithmetic/
!    bitwise operations.
  
     In Xtensa ISA, when TARGET_CONST16 is not enabled, such large immediate
     assignments are typically treated as references to literal pool entries
--- 5754,5763 ----
  /* The constant-synthesis optimization (constantsynth for short).
  
     This is an optimization that attempts to replace the assignment of a
!    large integer constant value that won't fit in the immediate field of
!    a single machine instruction with a smaller integer value that does fit,
!    and a group of subsequent instructions that derive the equivalent value
!    through some arithmetic/bitwise operations.
  
     In Xtensa ISA, when TARGET_CONST16 is not enabled, such large immediate
     assignments are typically treated as references to literal pool entries
*************** constantsynth_method_square (rtx dest, H
*** 5955,5960 ****
--- 5954,5982 ----
    return end_sequence ();
  }
  
+ /* A method that generates two machine instructions for assigning a value
+    between -32 and 95, followed by a CONST16 instruction to synthesize a
+    value in the range -2097151 to 6291455.  This method only works when
+    TARGET_CONST16 is enabled.  */
+ 
+ static rtx_insn *
+ constantsynth_method_const16 (rtx dest, HOST_WIDE_INT v)
+ {
+   rtx x;
+ 
+   if (!TARGET_CONST16
+       || ! IN_RANGE (v >> 16, -32, 95)
+       || ! IN_RANGE (v & 65535, 1, 65535))
+     return NULL;
+ 
+   start_sequence ();
+   emit_insn (gen_rtx_SET (dest, GEN_INT (v >> 16)));
+   x = gen_rtx_ASHIFT (SImode, dest, GEN_INT (16));
+   x = gen_rtx_IOR (SImode, x, GEN_INT (v & 65535));
+   emit_insn (gen_rtx_SET (dest, x));
+   return end_sequence ();
+ }
+ 
  /* List of all available synthesis methods.  */
  
  struct constantsynth_method_info
*************** static const struct constantsynth_method
*** 5969,5974 ****
--- 5991,5997 ----
    { constantsynth_method_16bits, "16bits" },
    { constantsynth_method_32bits, "32bits" },
    { constantsynth_method_square, "square" },
+   { constantsynth_method_const16, "const16" },
  };
  
  /* Information that mediates between synthesis pass 1 and 2.  */
*************** struct constantsynth_info
*** 5980,5992 ****
    hash_map<rtx, int> usage;
    constantsynth_info ()
    {
!     /* To avoid wasting literal pool entries, we use fake references to
!        estimate the costs of an L32R instruction.  */
!     rtx x = gen_rtx_SYMBOL_REF (Pmode, "*.LC-1");
!     SYMBOL_REF_FLAGS (x) |= SYMBOL_FLAG_LOCAL;
!     CONSTANT_POOL_ADDRESS_P (x) = 1;
!     x = gen_const_mem (SImode, x);
!     gcc_assert (constantpool_mem_p (x));
      costs += make_insn_raw (gen_rtx_SET (gen_rtx_REG (SImode, A9_REG),
  					 x));
    }
--- 6003,6021 ----
    hash_map<rtx, int> usage;
    constantsynth_info ()
    {
!     rtx x;
!     if (TARGET_CONST16)
!       x = GEN_INT (0x5A5A5A5A);
!     else
!       {
! 	/* To avoid wasting literal pool entries, we use fake references
! 	   to estimate the costs of an L32R instruction.  */
! 	x = gen_rtx_SYMBOL_REF (Pmode, "*.LC-1");
! 	SYMBOL_REF_FLAGS (x) |= SYMBOL_FLAG_LOCAL;
! 	CONSTANT_POOL_ADDRESS_P (x) = 1;
! 	x = gen_const_mem (SImode, x);
! 	gcc_assert (constantpool_mem_p (x));
!       }
      costs += make_insn_raw (gen_rtx_SET (gen_rtx_REG (SImode, A9_REG),
  					 x));
    }
*************** constantsynth_pass1 (rtx_insn *insn, con
*** 6006,6013 ****
       number of occurrences of the constant if optimizing for size.  If the
       constant fits in the immediate field, update the insn to re-assign the
       constant.  */
!   if (TARGET_CONST16
!       || GET_CODE (pat = PATTERN (insn)) != SET
        || ! REG_P (dest = SET_DEST (pat)) || ! GP_REG_P (REGNO (dest))
        || GET_MODE (dest) != SImode
        || ! CONST_INT_P (src = avoid_constant_pool_reference (SET_SRC (pat))))
--- 6035,6041 ----
       number of occurrences of the constant if optimizing for size.  If the
       constant fits in the immediate field, update the insn to re-assign the
       constant.  */
!   if (GET_CODE (pat = PATTERN (insn)) != SET
        || ! REG_P (dest = SET_DEST (pat)) || ! GP_REG_P (REGNO (dest))
        || GET_MODE (dest) != SImode
        || ! CONST_INT_P (src = avoid_constant_pool_reference (SET_SRC (pat))))
*************** do_largeconst (void)
*** 6265,6272 ****
  	/* Split DI/SF/DFmode constant assignments into pairs of SImode
  	   ones.  This is also the pre-processing for constantsynth opti-
  	   mization that follows immediately after.  */
! 	if (replacing_required)
! 	  split_DI_SF_DF_const (insn);
  
  	/* constantsynth pass 1.
  	   Detect and record large constant assignments within a function.  */
--- 6293,6299 ----
  	/* Split DI/SF/DFmode constant assignments into pairs of SImode
  	   ones.  This is also the pre-processing for constantsynth opti-
  	   mization that follows immediately after.  */
! 	split_DI_SF_DF_const (insn);
  
  	/* constantsynth pass 1.
  	   Detect and record large constant assignments within a function.  */
diff -Nrcpad gcc-16-20251019/gcc/config/xtensa/xtensa.md gcc-16-20251026/gcc/config/xtensa/xtensa.md
*** gcc-16-20251019/gcc/config/xtensa/xtensa.md	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config/xtensa/xtensa.md	Sun Oct 26 22:32:32 2025
***************
*** 190,196 ****
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(match_operator:SI 4 "addsub_operator"
  		[(ashift:SI (match_operand:SI 1 "register_operand" "r")
! 			    (match_operand:SI 3 "addsubx_operand" "i"))
  		 (match_operand:SI 2 "register_operand" "r")]))]
    "TARGET_ADDX"
  {
--- 190,196 ----
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(match_operator:SI 4 "addsub_operator"
  		[(ashift:SI (match_operand:SI 1 "register_operand" "r")
! 			    (match_operand:SI 3 "addsubx_operand" ""))
  		 (match_operand:SI 2 "register_operand" "r")]))]
    "TARGET_ADDX"
  {
***************
*** 270,276 ****
  
  (define_insn_and_split "*subsi3_from_const"
    [(set (match_operand:SI 0 "register_operand" "=a")
! 	(minus:SI (match_operand:SI 1 "const_int_operand" "i")
  		  (match_operand:SI 2 "register_operand" "r")))]
    "xtensa_simm8 (-INTVAL (operands[1]))
     || xtensa_simm8x256 (-INTVAL (operands[1]))"
--- 270,276 ----
  
  (define_insn_and_split "*subsi3_from_const"
    [(set (match_operand:SI 0 "register_operand" "=a")
! 	(minus:SI (match_operand:SI 1 "const_int_operand" "")
  		  (match_operand:SI 2 "register_operand" "r")))]
    "xtensa_simm8 (-INTVAL (operands[1]))
     || xtensa_simm8x256 (-INTVAL (operands[1]))"
***************
*** 545,552 ****
          (match_operator:SI 5 "xtensa_sminmax_operator"
  	  [(match_operator:SI 4 "xtensa_sminmax_operator"
  	    [(match_operand:SI 1 "register_operand" "r")
! 	     (match_operand:SI 2 "const_int_operand" "i")])
! 	   (match_operand:SI 3 "const_int_operand" "i")]))]
    "TARGET_MINMAX && TARGET_CLAMPS
     && INTVAL (operands[2]) + INTVAL (operands[3]) == -1
     && ((GET_CODE (operands[5]) == SMIN && GET_CODE (operands[4]) == SMAX
--- 545,552 ----
          (match_operator:SI 5 "xtensa_sminmax_operator"
  	  [(match_operator:SI 4 "xtensa_sminmax_operator"
  	    [(match_operand:SI 1 "register_operand" "r")
! 	     (match_operand:SI 2 "const_int_operand" "")])
! 	   (match_operand:SI 3 "const_int_operand" "")]))]
    "TARGET_MINMAX && TARGET_CLAMPS
     && INTVAL (operands[2]) + INTVAL (operands[3]) == -1
     && ((GET_CODE (operands[5]) == SMIN && GET_CODE (operands[4]) == SMAX
***************
*** 747,753 ****
  (define_insn_and_split "*andsi3_const_pow2_minus_one"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "const_int_operand" "i")))]
    "IN_RANGE (exact_log2 (INTVAL (operands[2]) + 1), 17, 31)"
    "#"
    "&& 1"
--- 747,753 ----
  (define_insn_and_split "*andsi3_const_pow2_minus_one"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "const_int_operand" "")))]
    "IN_RANGE (exact_log2 (INTVAL (operands[2]) + 1), 17, 31)"
    "#"
    "&& 1"
***************
*** 771,777 ****
  (define_insn_and_split "*andsi3_const_negative_pow2"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "const_int_operand" "i")))]
    "IN_RANGE (exact_log2 (-INTVAL (operands[2])), 12, 31)"
    "#"
    "&& 1"
--- 771,777 ----
  (define_insn_and_split "*andsi3_const_negative_pow2"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "const_int_operand" "")))]
    "IN_RANGE (exact_log2 (-INTVAL (operands[2])), 12, 31)"
    "#"
    "&& 1"
***************
*** 791,797 ****
  (define_insn_and_split "*andsi3_const_shifted_mask"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "shifted_mask_operand" "i")))]
    "! xtensa_simm12b (INTVAL (operands[2]))"
    "#"
    "&& 1"
--- 791,797 ----
  (define_insn_and_split "*andsi3_const_shifted_mask"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operand:SI 1 "register_operand" "r")
! 		(match_operand:SI 2 "shifted_mask_operand" "")))]
    "! xtensa_simm12b (INTVAL (operands[2]))"
    "#"
    "&& 1"
***************
*** 868,876 ****
  (define_insn_and_split "*splice_bits"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(ior:SI (and:SI (match_operand:SI 1 "register_operand" "r")
! 			(match_operand:SI 3 "const_int_operand" "i"))
  		(and:SI (match_operand:SI 2 "register_operand" "r")
! 			(match_operand:SI 4 "const_int_operand" "i"))))]
  
    "!optimize_debug && optimize
     && INTVAL (operands[3]) + INTVAL (operands[4]) == -1
--- 868,876 ----
  (define_insn_and_split "*splice_bits"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(ior:SI (and:SI (match_operand:SI 1 "register_operand" "r")
! 			(match_operand:SI 3 "const_int_operand" ""))
  		(and:SI (match_operand:SI 2 "register_operand" "r")
! 			(match_operand:SI 4 "const_int_operand" ""))))]
  
    "!optimize_debug && optimize
     && INTVAL (operands[3]) + INTVAL (operands[4]) == -1
***************
*** 997,1004 ****
  (define_insn "extvsi_internal"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(sign_extract:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "sext_fldsz_operand" "i")
! 			 (match_operand:SI 3 "lsbitnum_operand" "i")))]
    "TARGET_SEXT"
  {
    int fldsz = INTVAL (operands[2]);
--- 997,1004 ----
  (define_insn "extvsi_internal"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(sign_extract:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "sext_fldsz_operand" "")
! 			 (match_operand:SI 3 "lsbitnum_operand" "")))]
    "TARGET_SEXT"
  {
    int fldsz = INTVAL (operands[2]);
***************
*** 1026,1033 ****
  (define_insn "extzvsi_internal"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(zero_extract:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "extui_fldsz_operand" "i")
! 			 (match_operand:SI 3 "const_int_operand" "i")))]
    ""
  {
    int shift;
--- 1026,1033 ----
  (define_insn "extzvsi_internal"
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(zero_extract:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "extui_fldsz_operand" "")
! 			 (match_operand:SI 3 "const_int_operand" "")))]
    ""
  {
    int shift;
***************
*** 1046,1053 ****
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operator:SI 4 "logical_shift_operator"
  			[(match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "const_int_operand" "i")])
! 		(match_operand:SI 3 "const_int_operand" "i")))]
    "exact_log2 (INTVAL (operands[3])) > 0"
    "#"
    "&& 1"
--- 1046,1053 ----
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(and:SI (match_operator:SI 4 "logical_shift_operator"
  			[(match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "const_int_operand" "")])
! 		(match_operand:SI 3 "const_int_operand" "")))]
    "exact_log2 (INTVAL (operands[3])) > 0"
    "#"
    "&& 1"
***************
*** 1078,1085 ****
  	(match_operator:SI 5 "addsub_operator"
  		[(and:SI (match_operator:SI 6 "logical_shift_operator"
  				[(match_operand:SI 1 "register_operand" "r0")
! 				 (match_operand:SI 3 "const_int_operand" "i")])
! 			 (match_operand:SI 4 "const_int_operand" "i"))
  		 (match_operand:SI 2 "register_operand" "r")]))]
    "TARGET_ADDX
     && IN_RANGE (exact_log2 (INTVAL (operands[4])), 1, 3)"
--- 1078,1085 ----
  	(match_operator:SI 5 "addsub_operator"
  		[(and:SI (match_operator:SI 6 "logical_shift_operator"
  				[(match_operand:SI 1 "register_operand" "r0")
! 				 (match_operand:SI 3 "const_int_operand" "")])
! 			 (match_operand:SI 4 "const_int_operand" ""))
  		 (match_operand:SI 2 "register_operand" "r")]))]
    "TARGET_ADDX
     && IN_RANGE (exact_log2 (INTVAL (operands[4])), 1, 3)"
***************
*** 1108,1115 ****
  
  (define_insn "insvsi"
    [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+a")
! 			 (match_operand:SI 1 "extui_fldsz_operand" "i")
! 			 (match_operand:SI 2 "const_int_operand" "i"))
  	(match_operand:SI 3 "register_operand" "r"))]
    "TARGET_DEPBITS"
  {
--- 1108,1115 ----
  
  (define_insn "insvsi"
    [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+a")
! 			 (match_operand:SI 1 "extui_fldsz_operand" "")
! 			 (match_operand:SI 2 "const_int_operand" ""))
  	(match_operand:SI 3 "register_operand" "r"))]
    "TARGET_DEPBITS"
  {
***************
*** 1263,1286 ****
    "xtensa_valid_move (SImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
-      [ D,  D; move , 2] mov.n\t%0, %1
-      [ D,  d; move , 2] ^
-      [ D,  R; load , 2] %v1l32i.n\t%0, %1
-      [ R,  D; store, 2] %v0s32i.n\t%1, %0
-      [ R,  d; store, 2] ^
-      [ a,  r; move , 3] mov\t%0, %1
-      [ q,  r; move , 3] movsp\t%0, %1
       [ a,  I; move , 3] movi\t%0, %x1
-      [ a,  Y; load , 3] movi\t%0, %1
       [ W,  i; move , 6] const16\t%0, %t1\;const16\t%0, %b1
       [ a,  T; load , 3] %v1l32r\t%0, %1
       [ a,  U; load , 3] %v1l32i\t%0, %1
       [ U,  r; store, 3] %v0s32i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
       [*A, *r; wsr  , 3] wsr\t%1, ACCLO
    }
    [(set_attr "mode" "SI")])
  
  ;; 16-bit Integer moves
  
  (define_expand "movhi"
--- 1263,1296 ----
    "xtensa_valid_move (SImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
       [ a,  I; move , 3] movi\t%0, %x1
       [ W,  i; move , 6] const16\t%0, %t1\;const16\t%0, %b1
+      [ a,  Y; load , 3] movi\t%0, %1
       [ a,  T; load , 3] %v1l32r\t%0, %1
+      [ q,  r; move , 3] movsp\t%0, %1
+      [ D, Dd; move , 2] mov.n\t%0, %1
+      [ a,  r; move , 3] mov\t%0, %1
+      [ D,  R; load , 2] %v1l32i.n\t%0, %1
       [ a,  U; load , 3] %v1l32i\t%0, %1
+      [ R, Dd; store, 2] %v0s32i.n\t%1, %0
       [ U,  r; store, 3] %v0s32i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
       [*A, *r; wsr  , 3] wsr\t%1, ACCLO
    }
    [(set_attr "mode" "SI")])
  
+ (define_insn "*xtensa_const16"
+   [(set (match_operand:SI 0 "register_operand" "=a")
+ 	(match_operator:SI 3 "xtensa_bit_join_operator"
+ 		[(ashift:SI (match_operand:SI 1 "register_operand" "0")
+ 			    (const_int 16))
+ 		 (match_operand:SI 2 "const_int_operand" "")]))]
+   "TARGET_CONST16 && IN_RANGE (INTVAL (operands[2]), 1, 65535)"
+   "const16\t%0, %2"
+   [(set_attr "type"	"move")
+    (set_attr "mode"	"SI")
+    (set_attr "length"	"3")])
+ 
  ;; 16-bit Integer moves
  
  (define_expand "movhi"
***************
*** 1298,1308 ****
    "xtensa_valid_move (HImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
-      [ D,  d; move , 2] mov.n\t%0, %1
-      [ a,  r; move , 3] mov\t%0, %1
       [ a,  I; move , 3] movi\t%0, %x1
       [ a,  Y; load , 3] movi\t%0, %1
       [ a,  T; load , 3] %v1l32r\t%0, %1
       [ a,  U; load , 3] %v1l16ui\t%0, %1
       [ U,  r; store, 3] %v0s16i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
--- 1308,1318 ----
    "xtensa_valid_move (HImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
       [ a,  I; move , 3] movi\t%0, %x1
       [ a,  Y; load , 3] movi\t%0, %1
       [ a,  T; load , 3] %v1l32r\t%0, %1
+      [ D,  d; move , 2] mov.n\t%0, %1
+      [ a,  r; move , 3] mov\t%0, %1
       [ a,  U; load , 3] %v1l16ui\t%0, %1
       [ U,  r; store, 3] %v0s16i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
***************
*** 1327,1335 ****
    "xtensa_valid_move (QImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
       [ D,  d; move , 2] mov.n\t%0, %1
       [ a,  r; move , 3] mov\t%0, %1
-      [ a,  I; move , 3] movi\t%0, %x1
       [ a,  U; load , 3] %v1l8ui\t%0, %1
       [ U,  r; store, 3] %v0s8i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
--- 1337,1345 ----
    "xtensa_valid_move (QImode, operands)"
    {@ [cons: =0, 1; attrs: type, length]
       [ D,  M; move , 2] movi.n\t%0, %x1
+      [ a,  I; move , 3] movi\t%0, %x1
       [ D,  d; move , 2] mov.n\t%0, %1
       [ a,  r; move , 3] mov\t%0, %1
       [ a,  U; load , 3] %v1l8ui\t%0, %1
       [ U,  r; store, 3] %v0s8i\t%1, %0
       [*a, *A; rsr  , 3] rsr\t%0, ACCLO
***************
*** 1400,1426 ****
      && !(FP_REG_P (xt_true_regnum (operands[0]))
  	 && (constantpool_mem_p (operands[1]) || CONSTANT_P (operands[1]))))"
    {@ [cons: =0, 1; attrs: type, length]
!      [f,  f; farith, 3] mov.s\t%0, %1
!      [f, ^U; fload , 3] %v1lsi\t%0, %1
!      [U,  f; fstore, 3] %v0ssi\t%1, %0
!      [D,  d; move  , 2] mov.n\t%0, %1
       [a,  T; load  , 3] %v1l32r\t%0, %1
!      [D,  R; load  , 2] %v1l32i.n\t%0, %1
!      [R,  d; store , 2] %v0s32i.n\t%1, %0
       [a,  r; move  , 3] mov\t%0, %1
       [f,  r; farith, 3] wfr\t%0, %1
       [a,  f; farith, 3] rfr\t%0, %1
!      [a,  Y; load  , 3] movi\t%0, %y1
!      [W, iF; move  , 6] const16\t%0, %t1\;const16\t%0, %b1
       [a,  U; load  , 3] %v1l32i\t%0, %1
       [U,  r; store , 3] %v0s32i\t%1, %0
    }
    [(set_attr "mode" "SF")])
  
  (define_insn "*lsiu"
    [(set (match_operand:SF 0 "register_operand" "=f")
  	(mem:SF (plus:SI (match_operand:SI 1 "register_operand" "+a")
! 			 (match_operand:SI 2 "fpmem_offset_operand" "i"))))
     (set (match_dup 1)
  	(plus:SI (match_dup 1) (match_dup 2)))]
    "TARGET_HARD_FLOAT && !TARGET_HARD_FLOAT_POSTINC"
--- 1410,1436 ----
      && !(FP_REG_P (xt_true_regnum (operands[0]))
  	 && (constantpool_mem_p (operands[1]) || CONSTANT_P (operands[1]))))"
    {@ [cons: =0, 1; attrs: type, length]
!      [W, iF; move  , 6] const16\t%0, %t1\;const16\t%0, %b1
!      [a,  Y; load  , 3] movi\t%0, %y1
       [a,  T; load  , 3] %v1l32r\t%0, %1
!      [D,  d; move  , 2] mov.n\t%0, %1
       [a,  r; move  , 3] mov\t%0, %1
+      [f,  f; farith, 3] mov.s\t%0, %1
       [f,  r; farith, 3] wfr\t%0, %1
       [a,  f; farith, 3] rfr\t%0, %1
!      [D,  R; load  , 2] %v1l32i.n\t%0, %1
       [a,  U; load  , 3] %v1l32i\t%0, %1
+      [f,  U; fload , 3] %v1lsi\t%0, %1
+      [R,  d; store , 2] %v0s32i.n\t%1, %0
       [U,  r; store , 3] %v0s32i\t%1, %0
+      [U,  f; fstore, 3] %v0ssi\t%1, %0
    }
    [(set_attr "mode" "SF")])
  
  (define_insn "*lsiu"
    [(set (match_operand:SF 0 "register_operand" "=f")
  	(mem:SF (plus:SI (match_operand:SI 1 "register_operand" "+a")
! 			 (match_operand:SI 2 "fpmem_offset_operand" ""))))
     (set (match_dup 1)
  	(plus:SI (match_dup 1) (match_dup 2)))]
    "TARGET_HARD_FLOAT && !TARGET_HARD_FLOAT_POSTINC"
***************
*** 1435,1441 ****
  
  (define_insn "*ssiu"
    [(set (mem:SF (plus:SI (match_operand:SI 0 "register_operand" "+a")
! 			 (match_operand:SI 1 "fpmem_offset_operand" "i")))
  	(match_operand:SF 2 "register_operand" "f"))
     (set (match_dup 0)
  	(plus:SI (match_dup 0) (match_dup 1)))]
--- 1445,1451 ----
  
  (define_insn "*ssiu"
    [(set (mem:SF (plus:SI (match_operand:SI 0 "register_operand" "+a")
! 			 (match_operand:SI 1 "fpmem_offset_operand" "")))
  	(match_operand:SF 2 "register_operand" "f"))
     (set (match_dup 0)
  	(plus:SI (match_dup 0) (match_dup 1)))]
***************
*** 1454,1460 ****
  	(mem:SF (match_operand:SI 1 "register_operand" "+a")))
     (set (match_dup 1)
  	(plus:SI (match_dup 1)
! 		 (match_operand:SI 2 "fpmem_offset_operand" "i")))]
    "TARGET_HARD_FLOAT && TARGET_HARD_FLOAT_POSTINC"
  {
    if (TARGET_SERIALIZE_VOLATILE && volatile_refs_p (PATTERN (insn)))
--- 1464,1470 ----
  	(mem:SF (match_operand:SI 1 "register_operand" "+a")))
     (set (match_dup 1)
  	(plus:SI (match_dup 1)
! 		 (match_operand:SI 2 "fpmem_offset_operand" "")))]
    "TARGET_HARD_FLOAT && TARGET_HARD_FLOAT_POSTINC"
  {
    if (TARGET_SERIALIZE_VOLATILE && volatile_refs_p (PATTERN (insn)))
***************
*** 1470,1476 ****
  	(match_operand:SF 1 "register_operand" "f"))
     (set (match_dup 0)
  	(plus:SI (match_dup 0)
! 		 (match_operand:SI 2 "fpmem_offset_operand" "i")))]
    "TARGET_HARD_FLOAT && TARGET_HARD_FLOAT_POSTINC"
  {
    if (TARGET_SERIALIZE_VOLATILE && volatile_refs_p (PATTERN (insn)))
--- 1480,1486 ----
  	(match_operand:SF 1 "register_operand" "f"))
     (set (match_dup 0)
  	(plus:SI (match_dup 0)
! 		 (match_operand:SI 2 "fpmem_offset_operand" "")))]
    "TARGET_HARD_FLOAT && TARGET_HARD_FLOAT_POSTINC"
  {
    if (TARGET_SERIALIZE_VOLATILE && volatile_refs_p (PATTERN (insn)))
***************
*** 1627,1633 ****
  		[(match_operand:SI 1 "register_operand" "r")
  		 (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  				    (const_int 3))
! 			 (match_operand:SI 3 "const_int_operand" "i"))]))]
    "!optimize_debug && optimize
     && (INTVAL (operands[3]) & 0x1f) == 3 << 3"
    "#"
--- 1637,1643 ----
  		[(match_operand:SI 1 "register_operand" "r")
  		 (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  				    (const_int 3))
! 			 (match_operand:SI 3 "const_int_operand" ""))]))]
    "!optimize_debug && optimize
     && (INTVAL (operands[3]) & 0x1f) == 3 << 3"
    "#"
***************
*** 1648,1654 ****
  		[(match_operand:SI 1 "register_operand" "r")
  		 (neg:SI (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  					    (const_int 3))
! 				 (match_operand:SI 3 "const_int_operand" "i")))]))]
    "!optimize_debug && optimize
     && (INTVAL (operands[3]) & 0x1f) == 3 << 3"
    "#"
--- 1658,1664 ----
  		[(match_operand:SI 1 "register_operand" "r")
  		 (neg:SI (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  					    (const_int 3))
! 				 (match_operand:SI 3 "const_int_operand" "")))]))]
    "!optimize_debug && optimize
     && (INTVAL (operands[3]) & 0x1f) == 3 << 3"
    "#"
***************
*** 1722,1731 ****
  	(match_operator:SI 7 "xtensa_bit_join_operator"
  		[(match_operator:SI 5 "logical_shift_operator"
  			[(match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 3 "const_int_operand" "i")])
  		 (match_operator:SI 6 "logical_shift_operator"
  			[(match_operand:SI 2 "register_operand" "r")
! 			 (match_operand:SI 4 "const_int_operand" "i")])]))]
    "!optimize_debug && optimize
     && xtensa_shlrd_which_direction (operands[5], operands[6]) != UNKNOWN
     && IN_RANGE (INTVAL (operands[3]), 1, 31)
--- 1732,1741 ----
  	(match_operator:SI 7 "xtensa_bit_join_operator"
  		[(match_operator:SI 5 "logical_shift_operator"
  			[(match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 3 "const_int_operand" "")])
  		 (match_operator:SI 6 "logical_shift_operator"
  			[(match_operand:SI 2 "register_operand" "r")
! 			 (match_operand:SI 4 "const_int_operand" "")])]))]
    "!optimize_debug && optimize
     && xtensa_shlrd_which_direction (operands[5], operands[6]) != UNKNOWN
     && IN_RANGE (INTVAL (operands[3]), 1, 31)
***************
*** 1775,1781 ****
  			[(match_operand:SI 1 "register_operand" "r")
  			 (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  					    (const_int 3))
! 				 (match_operand:SI 4 "const_int_operand" "i"))])
  		 (match_operator:SI 6 "logical_shift_operator"
  			[(match_operand:SI 3 "register_operand" "r")
  			 (neg:SI (and:SI (ashift:SI (match_dup 2)
--- 1785,1791 ----
  			[(match_operand:SI 1 "register_operand" "r")
  			 (and:SI (ashift:SI (match_operand:SI 2 "register_operand" "r")
  					    (const_int 3))
! 				 (match_operand:SI 4 "const_int_operand" ""))])
  		 (match_operator:SI 6 "logical_shift_operator"
  			[(match_operand:SI 3 "register_operand" "r")
  			 (neg:SI (and:SI (ashift:SI (match_dup 2)
***************
*** 1997,2003 ****
    [(set (pc)
  	(if_then_else (match_operator 3 "boolean_operator"
  			[(and:SI (not:SI (match_operand:SI 0 "register_operand" "r"))
! 				 (match_operand:SI 1 "const_int_operand" "i"))
  			 (const_int 0)])
  		      (label_ref (match_operand 2 "" ""))
  		      (pc)))]
--- 2007,2013 ----
    [(set (pc)
  	(if_then_else (match_operator 3 "boolean_operator"
  			[(and:SI (not:SI (match_operand:SI 0 "register_operand" "r"))
! 				 (match_operand:SI 1 "const_int_operand" ""))
  			 (const_int 0)])
  		      (label_ref (match_operand 2 "" ""))
  		      (pc)))]
***************
*** 2050,2057 ****
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "const_int_operand" "i"))
! 			 (match_operand:SI 2 "const_int_operand" "i")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "IN_RANGE (exact_log2 (INTVAL (operands[1]) + 1), 17, 31)
--- 2060,2067 ----
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "const_int_operand" ""))
! 			 (match_operand:SI 2 "const_int_operand" "")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "IN_RANGE (exact_log2 (INTVAL (operands[1]) + 1), 17, 31)
***************
*** 2090,2097 ****
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "const_int_operand" "i"))
! 			 (match_operand:SI 2 "const_int_operand" "i")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "IN_RANGE (exact_log2 (-INTVAL (operands[1])), 1, 30)
--- 2100,2107 ----
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "const_int_operand" ""))
! 			 (match_operand:SI 2 "const_int_operand" "")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "IN_RANGE (exact_log2 (-INTVAL (operands[1])), 1, 30)
***************
*** 2125,2132 ****
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "shifted_mask_operand" "i"))
! 			 (match_operand:SI 2 "const_int_operand" "i")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "/* (INTVAL (operands[2]) & ((1 << ctz_hwi (INTVAL (operands[1]))) - 1)) == 0  // can be omitted
--- 2135,2142 ----
    [(set (pc)
  	(if_then_else (match_operator 4 "boolean_operator"
  			[(and:SI (match_operand:SI 0 "register_operand" "r")
! 				 (match_operand:SI 1 "shifted_mask_operand" ""))
! 			 (match_operand:SI 2 "const_int_operand" "")])
  		      (label_ref (match_operand 3 "" ""))
  		      (pc)))]
    "/* (INTVAL (operands[2]) & ((1 << ctz_hwi (INTVAL (operands[1]))) - 1)) == 0  // can be omitted
***************
*** 2506,2513 ****
  })
  
  (define_insn "call_internal"
!   [(call (mem (match_operand:SI 0 "call_insn_operand" "nir"))
! 	 (match_operand 1 "" "i"))]
    "!SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_call (0, operands);
--- 2516,2523 ----
  })
  
  (define_insn "call_internal"
!   [(call (mem (match_operand:SI 0 "call_insn_operand" "ir"))
! 	 (match_operand 1 "" ""))]
    "!SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_call (0, operands);
***************
*** 2528,2535 ****
  
  (define_insn "call_value_internal"
    [(set (match_operand 0 "register_operand" "=a")
! 	(call (mem (match_operand:SI 1 "call_insn_operand" "nir"))
! 	      (match_operand 2 "" "i")))]
    "!SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_call (1, operands);
--- 2538,2545 ----
  
  (define_insn "call_value_internal"
    [(set (match_operand 0 "register_operand" "=a")
! 	(call (mem (match_operand:SI 1 "call_insn_operand" "ir"))
! 	      (match_operand 2 "" "")))]
    "!SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_call (1, operands);
***************
*** 2548,2555 ****
  })
  
  (define_insn "sibcall_internal"
!   [(call (mem:SI (match_operand:SI 0 "call_insn_operand" "nic"))
! 	 (match_operand 1 "" "i"))]
    "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_sibcall (0, operands);
--- 2558,2565 ----
  })
  
  (define_insn "sibcall_internal"
!   [(call (mem:SI (match_operand:SI 0 "call_insn_operand" "ic"))
! 	 (match_operand 1 "" ""))]
    "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_sibcall (0, operands);
***************
*** 2570,2577 ****
  
  (define_insn "sibcall_value_internal"
    [(set (match_operand 0 "register_operand" "=a")
! 	(call (mem:SI (match_operand:SI 1 "call_insn_operand" "nic"))
! 	      (match_operand 2 "" "i")))]
    "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_sibcall (1, operands);
--- 2580,2587 ----
  
  (define_insn "sibcall_value_internal"
    [(set (match_operand 0 "register_operand" "=a")
! 	(call (mem:SI (match_operand:SI 1 "call_insn_operand" "ic"))
! 	      (match_operand 2 "" "")))]
    "!TARGET_WINDOWED_ABI && SIBLING_CALL_P (insn)"
  {
    return xtensa_emit_sibcall (1, operands);
***************
*** 2603,2609 ****
  
  (define_insn "entry"
    [(set (reg:SI A1_REG)
! 	(unspec_volatile:SI [(match_operand:SI 0 "const_int_operand" "i")]
  			    UNSPECV_ENTRY))]
    ""
    "entry\tsp, %0"
--- 2613,2619 ----
  
  (define_insn "entry"
    [(set (reg:SI A1_REG)
! 	(unspec_volatile:SI [(match_operand:SI 0 "const_int_operand" "")]
  			    UNSPECV_ENTRY))]
    ""
    "entry\tsp, %0"
***************
*** 3169,3175 ****
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(match_operator:SI 3 "boolean_operator"
  		[(and:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "const_int_operand" "i"))
  		 (const_int 0)]))]
    "IN_RANGE (exact_log2 (INTVAL (operands[2]) + 1), 17, 31)
     || IN_RANGE (exact_log2 (-INTVAL (operands[2])), 1, 30)"
--- 3179,3185 ----
    [(set (match_operand:SI 0 "register_operand" "=a")
  	(match_operator:SI 3 "boolean_operator"
  		[(and:SI (match_operand:SI 1 "register_operand" "r")
! 			 (match_operand:SI 2 "const_int_operand" ""))
  		 (const_int 0)]))]
    "IN_RANGE (exact_log2 (INTVAL (operands[2]) + 1), 17, 31)
     || IN_RANGE (exact_log2 (-INTVAL (operands[2])), 1, 30)"
***************
*** 3227,3234 ****
    [(set (pc)
  	(if_then_else (match_operator 4 "alt_ubranch_operator"
  			[(plus:SI (match_operand:SI 0 "register_operand" "r")
! 				  (match_operand:SI 1 "const_int_operand" "i"))
! 			 (match_operand:SI 2 "const_int_operand" "i")])
  		      (label_ref (match_operand 3 ""))
  		      (pc)))
     (clobber (match_scratch:SI 5 "=&a"))]
--- 3237,3244 ----
    [(set (pc)
  	(if_then_else (match_operator 4 "alt_ubranch_operator"
  			[(plus:SI (match_operand:SI 0 "register_operand" "r")
! 				  (match_operand:SI 1 "const_int_operand" ""))
! 			 (match_operand:SI 2 "const_int_operand" "")])
  		      (label_ref (match_operand 3 ""))
  		      (pc)))
     (clobber (match_scratch:SI 5 "=&a"))]
diff -Nrcpad gcc-16-20251019/gcc/config.gcc gcc-16-20251026/gcc/config.gcc
*** gcc-16-20251019/gcc/config.gcc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/config.gcc	Sun Oct 26 22:32:32 2025
*************** skylake goldmont goldmont-plus tremont c
*** 729,735 ****
  sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
  nano-x2 eden-x4 nano-x4 lujiazui yongfeng shijidadao x86-64 x86-64-v2 \
  x86-64-v3 x86-64-v4 sierraforest graniterapids graniterapids-d grandridge \
! arrowlake arrowlake-s clearwaterforest pantherlake diamondrapids native"
  
  # Additional x86 processors supported by --with-cpu=.  Each processor
  # MUST be separated by exactly one space.
--- 729,736 ----
  sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
  nano-x2 eden-x4 nano-x4 lujiazui yongfeng shijidadao x86-64 x86-64-v2 \
  x86-64-v3 x86-64-v4 sierraforest graniterapids graniterapids-d grandridge \
! arrowlake arrowlake-s clearwaterforest pantherlake diamondrapids novalake \
! native"
  
  # Additional x86 processors supported by --with-cpu=.  Each processor
  # MUST be separated by exactly one space.
*************** powerpc*-wrs-vxworks7r*)
*** 3167,3172 ****
--- 3168,3175 ----
  	tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
  	tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
  
+ 	tm_p_file="${tm_p_file} linux-protos.h"
+ 
  	extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
  
  	tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
*************** case ${target} in
*** 6106,6112 ****
  		c_target_objs="${c_target_objs} ${cpu_type}-c.o"
  		cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
  		d_target_objs="${d_target_objs} ${cpu_type}-d.o"
- 		jit_target_objs="${jit_target_objs} ${cpu_type}-jit.o"
  		tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
  		;;
  
--- 6109,6114 ----
diff -Nrcpad gcc-16-20251019/gcc/cp/ChangeLog gcc-16-20251026/gcc/cp/ChangeLog
*** gcc-16-20251019/gcc/cp/ChangeLog	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/ChangeLog	Sun Oct 26 22:32:32 2025
***************
*** 1,3 ****
--- 1,29 ----
+ 2025-10-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* cp-tree.h: Implement C++23 P2674R1 - A trait for implicit lifetime
+ 	types.
+ 	(implicit_lifetime_type_p): Declare.
+ 	* tree.cc (implicit_lifetime_type_p): New function.
+ 	* cp-trait.def (IS_IMPLICIT_LIFETIME): New unary trait.
+ 	* semantics.cc (trait_expr_value): Handle CPTK_IS_IMPLICIT_LIFETIME.
+ 	(finish_trait_expr): Likewise.
+ 	* constraint.cc (diagnose_trait_expr): Likewise.
+ 
+ 2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR c/120180
+ 	PR fortran/122306
+ 	* parser.cc (cp_parser_omp_metadirective): Return early if only one
+ 	selector matches and it resolves to 'omp nothing'.
+ 	(cp_parser_omp_error): Reject 'error at(execution)' in intervening code.
+ 	(cp_parser_pragma): Accept a subset of non-executable OpenMP directives
+ 	as intervening code.
+ 
+ 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* parser.cc (cp_parser_omp_assumption_clauses): Switch to
+ 	'unknown' not 'invalid' directive name for end directives.
+ 
  2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>
  
  	PR c++/119060
diff -Nrcpad gcc-16-20251019/gcc/cp/constraint.cc gcc-16-20251026/gcc/cp/constraint.cc
*** gcc-16-20251019/gcc/cp/constraint.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/constraint.cc	Sun Oct 26 22:32:32 2025
*************** diagnose_trait_expr (location_t loc, tre
*** 3170,3175 ****
--- 3170,3178 ----
      case CPTK_IS_FUNCTION:
        inform (loc, "%qT is not a function", t1);
        break;
+     case CPTK_IS_IMPLICIT_LIFETIME:
+       inform (decl_loc, "%qT is not an implicit-lifetime type", t1);
+       break;
      case CPTK_IS_INVOCABLE:
        {
  	if (!TREE_VEC_LENGTH (t2))
diff -Nrcpad gcc-16-20251019/gcc/cp/cp-trait.def gcc-16-20251026/gcc/cp/cp-trait.def
*** gcc-16-20251019/gcc/cp/cp-trait.def	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/cp-trait.def	Sun Oct 26 22:32:32 2025
*************** DEFTRAIT_EXPR (IS_EMPTY, "__is_empty", 1
*** 76,81 ****
--- 76,82 ----
  DEFTRAIT_EXPR (IS_ENUM, "__is_enum", 1)
  DEFTRAIT_EXPR (IS_FINAL, "__is_final", 1)
  DEFTRAIT_EXPR (IS_FUNCTION, "__is_function", 1)
+ DEFTRAIT_EXPR (IS_IMPLICIT_LIFETIME, "__builtin_is_implicit_lifetime", 1)
  DEFTRAIT_EXPR (IS_INVOCABLE, "__is_invocable", -1)
  DEFTRAIT_EXPR (IS_LAYOUT_COMPATIBLE, "__is_layout_compatible", 2)
  DEFTRAIT_EXPR (IS_LITERAL_TYPE, "__is_literal_type", 1)
diff -Nrcpad gcc-16-20251019/gcc/cp/cp-tree.h gcc-16-20251026/gcc/cp/cp-tree.h
*** gcc-16-20251019/gcc/cp/cp-tree.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/cp-tree.h	Sun Oct 26 22:32:32 2025
*************** extern bool std_layout_type_p			(const_t
*** 8376,8381 ****
--- 8376,8382 ----
  extern bool trivial_type_p			(const_tree);
  extern bool trivially_relocatable_type_p	(tree);
  extern bool replaceable_type_p			(tree);
+ extern bool implicit_lifetime_type_p		(tree);
  extern bool trivially_copyable_p		(const_tree);
  extern bool type_has_unique_obj_representations (const_tree);
  extern bool scalarish_type_p			(const_tree);
diff -Nrcpad gcc-16-20251019/gcc/cp/parser.cc gcc-16-20251026/gcc/cp/parser.cc
*** gcc-16-20251019/gcc/cp/parser.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/parser.cc	Sun Oct 26 22:32:32 2025
*************** cp_parser_omp_assumption_clauses (cp_par
*** 51233,51238 ****
--- 51233,51239 ----
  						      directive[1],
  						      directive[2]);
  		      if (dir
+ 			  && dir->id != PRAGMA_OMP_END
  			  && (dir->kind == C_OMP_DIR_DECLARATIVE
  			      || dir->kind == C_OMP_DIR_INFORMATIONAL
  			      || dir->kind == C_OMP_DIR_META))
*************** cp_parser_omp_assumption_clauses (cp_par
*** 51241,51249 ****
  					"informational, and meta directives "
  					"not permitted", p);
  		      else if (dir == NULL
! 			  || dir->id == PRAGMA_OMP_END
! 			  || (!dir->second && directive[1])
! 			  || (!dir->third && directive[2]))
  			error_at (dloc, "unknown OpenMP directive name in "
  					"%qs clause argument", p);
  		      else
--- 51242,51250 ----
  					"informational, and meta directives "
  					"not permitted", p);
  		      else if (dir == NULL
! 			       || dir->id == PRAGMA_OMP_END
! 			       || (!dir->second && directive[1])
! 			       || (!dir->third && directive[2]))
  			error_at (dloc, "unknown OpenMP directive name in "
  					"%qs clause argument", p);
  		      else
*************** cp_parser_omp_metadirective (cp_parser *
*** 52739,52744 ****
--- 52740,52757 ----
      }
    cp_parser_skip_to_pragma_eol (parser, pragma_tok);
  
+   /* If only one selector matches and it evaluates to 'omp nothing', no need to
+      proceed.  */
+   if (ctxs.length () == 1)
+     {
+       tree ctx = ctxs[0];
+       if (ctx == NULL_TREE
+ 	  || (omp_context_selector_matches (ctx, NULL_TREE, false) == 1
+ 	      && cp_parser_pragma_kind (&directive_tokens[0])
+ 		   == PRAGMA_OMP_NOTHING))
+ 	return;
+     }
+ 
    if (!default_seen)
      {
        /* Add a default clause that evaluates to 'omp nothing'.  */
*************** cp_parser_omp_error (cp_parser *parser,
*** 53851,53856 ****
--- 53864,53877 ----
  			 "may only be used in compound statements");
  	  return true;
  	}
+       if (parser->omp_for_parse_state
+ 	  && parser->omp_for_parse_state->in_intervening_code)
+ 	{
+ 	  error_at (loc, "%<#pragma omp error%> with %<at(execution)%> clause "
+ 			 "may not be used in intervening code");
+ 	  parser->omp_for_parse_state->fail = true;
+ 	  return true;
+ 	}
        tree fndecl
  	= builtin_decl_explicit (severity_fatal ? BUILT_IN_GOMP_ERROR
  						: BUILT_IN_GOMP_WARNING);
*************** cp_parser_pragma (cp_parser *parser, enu
*** 54768,54778 ****
    id = cp_parser_pragma_kind (pragma_tok);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_
!       && id <= PRAGMA_OMP__LAST_)
      {
!       error_at (pragma_tok->location,
! 		"intervening code must not contain OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        cp_parser_skip_to_pragma_eol (parser, pragma_tok);
        return false;
--- 54789,54803 ----
    id = cp_parser_pragma_kind (pragma_tok);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_ && id <= PRAGMA_OMP__LAST_
!       /* Allow a safe subset of non-executable directives. See classification in
! 	 array c_omp_directives.  */
!       && id != PRAGMA_OMP_METADIRECTIVE && id != PRAGMA_OMP_NOTHING
!       && id != PRAGMA_OMP_ASSUME && id != PRAGMA_OMP_ERROR)
      {
!       error_at (
! 	pragma_tok->location,
! 	"intervening code must not contain executable OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        cp_parser_skip_to_pragma_eol (parser, pragma_tok);
        return false;
diff -Nrcpad gcc-16-20251019/gcc/cp/semantics.cc gcc-16-20251026/gcc/cp/semantics.cc
*** gcc-16-20251019/gcc/cp/semantics.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/semantics.cc	Sun Oct 26 22:32:32 2025
*************** trait_expr_value (cp_trait_kind kind, tr
*** 13595,13600 ****
--- 13595,13603 ----
      case CPTK_IS_FUNCTION:
        return type_code1 == FUNCTION_TYPE;
  
+     case CPTK_IS_IMPLICIT_LIFETIME:
+       return implicit_lifetime_type_p (type1);
+ 
      case CPTK_IS_INVOCABLE:
        return !error_operand_p (build_invoke (type1, type2, tf_none));
  
*************** finish_trait_expr (location_t loc, cp_tr
*** 13914,13919 ****
--- 13917,13923 ----
         type to know whether an array is an aggregate, so use kind=4 here.  */
      case CPTK_IS_AGGREGATE:
      case CPTK_IS_FINAL:
+     case CPTK_IS_IMPLICIT_LIFETIME:
        if (!check_trait_type (type1, /* kind = */ 4))
  	return error_mark_node;
        break;
diff -Nrcpad gcc-16-20251019/gcc/cp/tree.cc gcc-16-20251026/gcc/cp/tree.cc
*** gcc-16-20251019/gcc/cp/tree.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/cp/tree.cc	Sun Oct 26 22:32:32 2025
*************** replaceable_type_p (tree t)
*** 5097,5102 ****
--- 5097,5138 ----
    return true;
  }
  
+ /* Returns 1 iff type T is an implicit-lifetime type, as defined in
+    [basic.types.general] and [class.prop].  */
+ 
+ bool
+ implicit_lifetime_type_p (tree t)
+ {
+   if (SCALAR_TYPE_P (t)
+       || (TREE_CODE (t) == ARRAY_TYPE
+ 	  && !(TYPE_SIZE (t) && integer_zerop (TYPE_SIZE (t))))
+       /* GNU extension.  */
+       || TREE_CODE (t) == VECTOR_TYPE)
+     return true;
+   if (!CLASS_TYPE_P (t))
+     return false;
+   t = TYPE_MAIN_VARIANT (t);
+   if (CP_AGGREGATE_TYPE_P (t)
+       && (!CLASSTYPE_DESTRUCTOR (t)
+ 	  || !user_provided_p (CLASSTYPE_DESTRUCTOR (t))))
+     return true;
+   if (is_trivially_xible (BIT_NOT_EXPR, t, NULL_TREE))
+     {
+       if (is_trivially_xible (INIT_EXPR, t, make_tree_vec (0)))
+ 	return true;
+       tree arg = make_tree_vec (1);
+       tree ct
+ 	= cp_build_qualified_type (t, (cp_type_quals (t) | TYPE_QUAL_CONST));
+       TREE_VEC_ELT (arg, 0) = cp_build_reference_type (ct, /*rval=*/false);
+       if (is_trivially_xible (INIT_EXPR, t, arg))
+ 	return true;
+       TREE_VEC_ELT (arg, 0) = t;
+       if (is_trivially_xible (INIT_EXPR, t, arg))
+ 	return true;
+     }
+   return false;
+ }
+ 
  /* Returns 1 iff type T is a POD type, as defined in [basic.types].  */
  
  bool
diff -Nrcpad gcc-16-20251019/gcc/doc/extend.texi gcc-16-20251026/gcc/doc/extend.texi
*** gcc-16-20251019/gcc/doc/extend.texi	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/doc/extend.texi	Sun Oct 26 22:32:33 2025
*************** compiler checks for @code{nocf_check} at
*** 6896,6910 ****
  a warning in case of mismatch.
  
  @smallexample
! @{
! int foo (void) __attribute__(nocf_check);
! void (*foo1)(void) __attribute__(nocf_check);
  void (*foo2)(void);
  
  /* foo's address is assumed to be valid.  */
  int
  foo (void) 
! 
    /* This call site is not checked for control-flow 
       validity.  */
    (*foo1)();
--- 6896,6909 ----
  a warning in case of mismatch.
  
  @smallexample
! int foo (void) __attribute__((nocf_check));
! void (*foo1)(void) __attribute__((nocf_check));
  void (*foo2)(void);
  
  /* foo's address is assumed to be valid.  */
  int
  foo (void) 
! @{
    /* This call site is not checked for control-flow 
       validity.  */
    (*foo1)();
*************** Intel Core i7 Panther Lake CPU.
*** 28408,28413 ****
--- 28407,28415 ----
  @item diamondrapids
  Intel Core i7 Diamond Rapids CPU.
  
+ @item novalake
+ Intel Core i7 Nova Lake CPU.
+ 
  @item bonnell
  Intel Atom Bonnell CPU.
  
diff -Nrcpad gcc-16-20251019/gcc/doc/install.texi gcc-16-20251026/gcc/doc/install.texi
*** gcc-16-20251019/gcc/doc/install.texi	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/doc/install.texi	Sun Oct 26 22:32:33 2025
*************** mdoc. GNU groff is required to convert t
*** 304,320 ****
  to HTML is done with mandoc, available at
  @uref{https://mandoc.bsd.lv}.
  
  Because ISO COBOL defines strict requirements for numerical precision,
! gcobol requires hardware with 128-bit computation instructions.  This
! requirement applies to both host and target. For integer and
! fixed-point computation, gcobol uses
! @deftp {Data type} __int128
! @end deftp
! meaning @code{16 == sizeof(long long int)}.
! For floating point, gcobol uses
! @deftp {Data type} _Float128
! @end deftp
! (On some architectures, GCC supports 128-bit floating point in software.)
  
  gcobol has so far been tested on two architectures only: x86_64 and
  aarch64 with little-endian encoding.
--- 304,317 ----
  to HTML is done with mandoc, available at
  @uref{https://mandoc.bsd.lv}.
  
+ The COBOL runtime library. libgcobol, requires libxml2 2.9 or later.
+ It implements support for @code{XML PARSE}.  
+ 
  Because ISO COBOL defines strict requirements for numerical precision,
! gcobol computes with 128-bit operands.  This requirement applies to
! both host and target. For integers, gcobol requires the platform to
! support the GCC @code{__int128} type.  For floating point it uses
! @code{_Float128} or similar.  
  
  gcobol has so far been tested on two architectures only: x86_64 and
  aarch64 with little-endian encoding.
diff -Nrcpad gcc-16-20251019/gcc/doc/invoke.texi gcc-16-20251026/gcc/doc/invoke.texi
*** gcc-16-20251019/gcc/doc/invoke.texi	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/doc/invoke.texi	Sun Oct 26 22:32:33 2025
*************** Objective-C and Objective-C++ Dialects}.
*** 826,831 ****
--- 826,832 ----
  
  @emph{AArch64 Options} (@ref{AArch64 Options})
  @gccoptlist{-mabi=@var{name}  -mbig-endian  -mlittle-endian
+ -menable-sysreg-checking
  -mgeneral-regs-only
  -mcmodel=tiny  -mcmodel=small  -mcmodel=large
  -mstrict-align  -mno-strict-align
*************** The @samp{ilp32} model is deprecated.
*** 22159,22164 ****
--- 22160,22170 ----
  Generate big-endian code.  This is the default when GCC is configured for an
  @samp{aarch64_be-*-*} target.
  
+ @opindex menable-sysreg-checking
+ @item -menable-sysreg-checking
+ Generates an error message if an attempt is made to access a system register
+ which is not available on the target architecture.
+ 
  @opindex mgeneral-regs-only
  @item -mgeneral-regs-only
  Generate code which uses only the general-purpose registers.  This will prevent
*************** LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, S
*** 35164,35169 ****
--- 35170,35184 ----
  AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3 and
  SM4 instruction set support.
  
+ @item novalake
+ Intel Nova Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+ SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
+ XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
+ MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
+ VAES, VPCLMULQDQ, SERIALIZE, HRESET, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8,
+ AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 and PREFETCHI
+ instruction set support.
+ 
  @item sapphirerapids
  @itemx emeraldrapids
  Intel Sapphire Rapids/Emerald Rapids CPU with 64-bit extensions, MMX, SSE,
diff -Nrcpad gcc-16-20251019/gcc/doc/md.texi gcc-16-20251026/gcc/doc/md.texi
*** gcc-16-20251019/gcc/doc/md.texi	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/doc/md.texi	Sun Oct 26 22:32:33 2025
*************** of a vector of mode @var{m}.  Operand 1
*** 5736,5741 ****
--- 5736,5754 ----
  is the scalar result.  The mode of the scalar result is the same as one
  element of @var{m}.
  
+ @cindex @code{reduc_sbool_and_scal_@var{m}} instruction pattern
+ @cindex @code{reduc_sbool_ior_scal_@var{m}} instruction pattern
+ @cindex @code{reduc_sbool_xor_scal_@var{m}} instruction pattern
+ @item @samp{reduc_sbool_and_scal_@var{m}}
+ @itemx @samp{reduc_sbool_ior_scal_@var{m}}
+ @itemx @samp{reduc_sbool_xor_scal_@var{m}}
+ Compute the bitwise @code{AND}/@code{IOR}/@code{XOR} reduction of the elements
+ of a vector boolean of mode @var{m}.  Operand 1 is the vector input and
+ operand 0 is the scalar result.  The mode of the scalar result is @var{QImode}
+ with its value either zero or one.  If mode @var{m} is a scalar integer mode
+ then operand 2 is the number of elements in the input vector to provide
+ disambiguation for the case @var{m} is ambiguous.
+ 
  @cindex @code{extract_last_@var{m}} instruction pattern
  @item @code{extract_last_@var{m}}
  Find the last set bit in mask operand 1 and extract the associated element
diff -Nrcpad gcc-16-20251019/gcc/fold-const.cc gcc-16-20251026/gcc/fold-const.cc
*** gcc-16-20251019/gcc/fold-const.cc	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/fold-const.cc	Sun Oct 26 22:32:33 2025
*************** static tree fold_view_convert_expr (tree
*** 151,224 ****
  static tree fold_negate_expr (location_t, tree);
  
  /* This is a helper function to detect min/max for some operands of COND_EXPR.
!    The form is "(EXP0 CMP EXP1) ? EXP2 : EXP3". */
  tree_code
! minmax_from_comparison (tree_code cmp, tree exp0, tree exp1, tree exp2, tree exp3)
  {
!   enum tree_code code = ERROR_MARK;
! 
!   if (HONOR_NANS (exp0) || HONOR_SIGNED_ZEROS (exp0))
!     return ERROR_MARK;
! 
!   if (!operand_equal_p (exp0, exp2))
!     return ERROR_MARK;
! 
!   if (TREE_CODE (exp3) == INTEGER_CST && TREE_CODE (exp1) == INTEGER_CST)
      {
!       if (wi::to_widest (exp1) == (wi::to_widest (exp3) - 1))
  	{
! 	  /* X <= Y - 1 equals to X < Y.  */
! 	  if (cmp == LE_EXPR)
! 	    code = LT_EXPR;
! 	  /* X > Y - 1 equals to X >= Y.  */
! 	  if (cmp == GT_EXPR)
! 	    code = GE_EXPR;
! 	  /* a != MIN_RANGE<a> ? a : MIN_RANGE<a>+1 -> MAX_EXPR<MIN_RANGE<a>+1, a> */
! 	  if (cmp == NE_EXPR && TREE_CODE (exp0) == SSA_NAME)
! 	    {
! 	      int_range_max r;
! 	      get_range_query (cfun)->range_of_expr (r, exp0);
! 	      if (r.undefined_p ())
! 		r.set_varying (TREE_TYPE (exp0));
  
! 	      widest_int min = widest_int::from (r.lower_bound (),
! 						 TYPE_SIGN (TREE_TYPE (exp0)));
! 	      if (min == wi::to_widest (exp1))
! 		code = MAX_EXPR;
! 	    }
  	}
!       if (wi::to_widest (exp1) == (wi::to_widest (exp3) + 1))
  	{
! 	  /* X < Y + 1 equals to X <= Y.  */
! 	  if (cmp == LT_EXPR)
! 	    code = LE_EXPR;
! 	  /* X >= Y + 1 equals to X > Y.  */
! 	  if (cmp == GE_EXPR)
! 	  code = GT_EXPR;
! 	  /* a != MAX_RANGE<a> ? a : MAX_RANGE<a>-1 -> MIN_EXPR<MIN_RANGE<a>-1, a> */
! 	  if (cmp == NE_EXPR && TREE_CODE (exp0) == SSA_NAME)
! 	    {
! 	      int_range_max r;
! 	      get_range_query (cfun)->range_of_expr (r, exp0);
! 	      if (r.undefined_p ())
! 		r.set_varying (TREE_TYPE (exp0));
  
! 	      widest_int max = widest_int::from (r.upper_bound (),
! 						 TYPE_SIGN (TREE_TYPE (exp0)));
! 	      if (max == wi::to_widest (exp1))
! 		code = MIN_EXPR;
! 	    }
  	}
      }
!   if (code != ERROR_MARK
!       || operand_equal_p (exp1, exp3))
      {
        if (cmp == LT_EXPR || cmp == LE_EXPR)
! 	code = MIN_EXPR;
        if (cmp == GT_EXPR || cmp == GE_EXPR)
! 	code = MAX_EXPR;
      }
!   return code;
  }
  
  /* Return EXPR_LOCATION of T if it is not UNKNOWN_LOCATION.
--- 151,239 ----
  static tree fold_negate_expr (location_t, tree);
  
  /* This is a helper function to detect min/max for some operands of COND_EXPR.
!    The form is "(exp0 CMP cst1) ? exp0 : cst2". */
  tree_code
! minmax_from_comparison (tree_code cmp, tree exp0,
! 			const widest_int cst1,
! 			const widest_int cst2)
  {
!   if (cst1 == cst2)
      {
!       if (cmp == LE_EXPR || cmp == LT_EXPR)
! 	return MIN_EXPR;
!       if (cmp == GT_EXPR || cmp == GE_EXPR)
! 	return MAX_EXPR;
!     }
!   if (cst1 == cst2 - 1)
!     {
!       /* X <= Y - 1 equals to X < Y.  */
!       if (cmp == LE_EXPR)
! 	return MIN_EXPR;
!       /* X > Y - 1 equals to X >= Y.  */
!       if (cmp == GT_EXPR)
! 	return MAX_EXPR;
!       /* a != MIN_RANGE<a> ? a : MIN_RANGE<a>+1 -> MAX_EXPR<MIN_RANGE<a>+1, a> */
!       if (cmp == NE_EXPR && TREE_CODE (exp0) == SSA_NAME)
  	{
! 	  int_range_max r;
! 	  get_range_query (cfun)->range_of_expr (r, exp0);
! 	  if (r.undefined_p ())
! 	    r.set_varying (TREE_TYPE (exp0));
  
! 	  widest_int min = widest_int::from (r.lower_bound (),
! 					     TYPE_SIGN (TREE_TYPE (exp0)));
! 	  if (min == cst1)
! 	    return MAX_EXPR;
  	}
!   }
!   if (cst1 == cst2 + 1)
!     {
!       /* X < Y + 1 equals to X <= Y.  */
!       if (cmp == LT_EXPR)
!         return MIN_EXPR;
!       /* X >= Y + 1 equals to X > Y.  */
!       if (cmp == GE_EXPR)
! 	return MAX_EXPR;
!       /* a != MAX_RANGE<a> ? a : MAX_RANGE<a>-1 -> MIN_EXPR<MIN_RANGE<a>-1, a> */
!       if (cmp == NE_EXPR && TREE_CODE (exp0) == SSA_NAME)
  	{
! 	  int_range_max r;
! 	  get_range_query (cfun)->range_of_expr (r, exp0);
! 	  if (r.undefined_p ())
! 	    r.set_varying (TREE_TYPE (exp0));
  
! 	  widest_int max = widest_int::from (r.upper_bound (),
! 					     TYPE_SIGN (TREE_TYPE (exp0)));
! 	  if (max == cst1)
! 	    return MIN_EXPR;
  	}
      }
!   return ERROR_MARK;
! }
! 	
! 	
! /* This is a helper function to detect min/max for some operands of COND_EXPR.
!    The form is "(EXP0 CMP EXP1) ? EXP2 : EXP3". */
! tree_code
! minmax_from_comparison (tree_code cmp, tree exp0, tree exp1, tree exp2, tree exp3)
! {
!   if (HONOR_NANS (exp0) || HONOR_SIGNED_ZEROS (exp0))
!     return ERROR_MARK;
! 
!   if (!operand_equal_p (exp0, exp2))
!     return ERROR_MARK;
! 
!   if (operand_equal_p (exp1, exp3))
      {
        if (cmp == LT_EXPR || cmp == LE_EXPR)
! 	return MIN_EXPR;
        if (cmp == GT_EXPR || cmp == GE_EXPR)
! 	return MAX_EXPR;
      }
!   if (TREE_CODE (exp3) == INTEGER_CST
!       && TREE_CODE (exp1) == INTEGER_CST)
!     return minmax_from_comparison (cmp, exp0, wi::to_widest (exp1), wi::to_widest (exp3));
!   return ERROR_MARK;
  }
  
  /* Return EXPR_LOCATION of T if it is not UNKNOWN_LOCATION.
diff -Nrcpad gcc-16-20251019/gcc/fold-const.h gcc-16-20251026/gcc/fold-const.h
*** gcc-16-20251019/gcc/fold-const.h	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/fold-const.h	Sun Oct 26 22:32:33 2025
*************** extern tree fold_build_pointer_plus_hwi_
*** 254,259 ****
--- 254,262 ----
  #define fold_build_pointer_plus_hwi(p,o) \
  	fold_build_pointer_plus_hwi_loc (UNKNOWN_LOCATION, p, o)
  
+ extern tree_code minmax_from_comparison (tree_code, tree,
+ 					 const widest_int,
+ 					 const widest_int);
  extern tree_code minmax_from_comparison (tree_code, tree, tree,
  					 tree, tree);
  
diff -Nrcpad gcc-16-20251019/gcc/fortran/ChangeLog gcc-16-20251026/gcc/fortran/ChangeLog
*** gcc-16-20251019/gcc/fortran/ChangeLog	Sun Oct 19 22:32:13 2025
--- gcc-16-20251026/gcc/fortran/ChangeLog	Sun Oct 26 22:32:33 2025
***************
*** 1,3 ****
--- 1,53 ----
+ 2025-10-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/114023
+ 	* trans-expr.cc (gfc_trans_pointer_assignment): Always set dtype
+ 	when remapping a pointer.  For unlimited polymorphic LHS use
+ 	elem_len from RHS.
+ 	* trans-intrinsic.cc (gfc_conv_is_contiguous_expr): Extend inline
+ 	generated code for IS_CONTIGUOUS for pointer arguments to detect
+ 	when span differs from the element size.
+ 
+ 2025-10-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122386
+ 	* dependency.cc (gfc_ref_needs_temporary_p): Revert r16-518.
+ 	* trans-intrinsic.cc (gfc_conv_intrinsic_transfer): Force temporary
+ 	for SOURCE not being a simply-contiguous array.
+ 
+ 2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR fortran/121452
+ 	* openmp.cc (resolve_omp_do): Allow CONTINUE as end statement of a
+ 	perfectly nested loop.
+ 
+ 2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR c/120180
+ 	PR fortran/122306
+ 	* gfortran.h (enum gfc_exec_op): Add EXEC_OMP_FIRST_OPENMP_EXEC and
+ 	EXEC_OMP_LAST_OPENMP_EXEC.
+ 	* openmp.cc (gfc_match_omp_context_selector): Remove static. Remove
+ 	checks on score. Add cleanup. Remove checks on trait properties.
+ 	(gfc_match_omp_context_selector_specification): Remove static. Adjust
+ 	calls to gfc_match_omp_context_selector.
+ 	(gfc_match_omp_declare_variant): Adjust call to
+ 	gfc_match_omp_context_selector_specification.
+ 	(match_omp_metadirective): Likewise.
+ 	(icode_code_error_callback): Reject all statements except
+ 	'assume' and 'metadirective'.
+ 	(gfc_resolve_omp_context_selector): New function.
+ 	(resolve_omp_metadirective): Skip metadirectives which context selectors
+ 	can be statically resolved to false. Replace metadirective by its body
+ 	if only 'nothing' remains.
+ 	(gfc_resolve_omp_declare): Call gfc_resolve_omp_context_selector for
+ 	each variant.
+ 
+ 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* openmp.cc (gfc_omp_directive): Add comment to 'allocate';
+ 	add 6.x unimplemented directives as comment-out entries.
+ 
  2025-10-18  Yuao Ma  <c8ef@outlook.com>
  
  	* resolve.cc (resolve_conditional): Allow character in cond-expr.
diff -Nrcpad gcc-16-20251019/gcc/fortran/decl.cc gcc-16-20251026/gcc/fortran/decl.cc
*** gcc-16-20251019/gcc/fortran/decl.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/decl.cc	Sun Oct 26 22:32:33 2025
*************** variable_decl (int elem)
*** 3101,3107 ****
  	      goto cleanup;
  	    }
  
! 	  m = gfc_match_init_expr (&initializer);
  	  if (m == MATCH_NO)
  	    {
  	      gfc_error ("Expected an initialization expression at %C");
--- 3101,3116 ----
  	      goto cleanup;
  	    }
  
! 	  if (gfc_comp_struct (gfc_current_state ())
! 	      && gfc_current_block ()->attr.pdt_template)
! 	    {
! 	      m = gfc_match_expr (&initializer);
! 	      if (initializer && initializer->ts.type == BT_UNKNOWN)
! 		initializer->ts = current_ts;
! 	    }
! 	  else
! 	    m = gfc_match_init_expr (&initializer);
! 
  	  if (m == MATCH_NO)
  	    {
  	      gfc_error ("Expected an initialization expression at %C");
*************** variable_decl (int elem)
*** 3179,3185 ****
  	      gfc_error ("BOZ literal constant at %L cannot appear as an "
  			 "initializer", &initializer->where);
  	      m = MATCH_ERROR;
!       	      goto cleanup;
  	    }
  	  param->value = gfc_copy_expr (initializer);
  	}
--- 3188,3194 ----
  	      gfc_error ("BOZ literal constant at %L cannot appear as an "
  			 "initializer", &initializer->where);
  	      m = MATCH_ERROR;
! 	      goto cleanup;
  	    }
  	  param->value = gfc_copy_expr (initializer);
  	}
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 4035,4042 ****
  	  gfc_insert_parameter_exprs (kind_expr, type_param_spec_list);
  
  	  ok = gfc_simplify_expr (kind_expr, 1);
! 	  /* Variable expressions seem to default to BT_PROCEDURE.
! 	     TODO find out why this is and fix it.  */
  	  if (kind_expr->ts.type != BT_INTEGER
  	      && kind_expr->ts.type != BT_PROCEDURE)
  	    {
--- 4044,4051 ----
  	  gfc_insert_parameter_exprs (kind_expr, type_param_spec_list);
  
  	  ok = gfc_simplify_expr (kind_expr, 1);
! 	  /* Variable expressions default to BT_PROCEDURE in the absence of an
! 	     initializer so allow for this.  */
  	  if (kind_expr->ts.type != BT_INTEGER
  	      && kind_expr->ts.type != BT_PROCEDURE)
  	    {
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 4271,4276 ****
--- 4280,4288 ----
  
  	  if (!c2->initializer && c1->initializer)
  	    c2->initializer = gfc_copy_expr (c1->initializer);
+ 
+ 	  if (c2->initializer)
+ 	    gfc_insert_parameter_exprs (c2->initializer, type_param_spec_list);
  	}
  
        /* Copy the array spec.  */
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 4374,4380 ****
  	}
        else if (!(c2->attr.pdt_kind || c2->attr.pdt_len || c2->attr.pdt_string
  		 || c2->attr.pdt_array) && c1->initializer)
! 	c2->initializer = gfc_copy_expr (c1->initializer);
      }
  
    if (alloc_seen)
--- 4386,4406 ----
  	}
        else if (!(c2->attr.pdt_kind || c2->attr.pdt_len || c2->attr.pdt_string
  		 || c2->attr.pdt_array) && c1->initializer)
! 	{
! 	  c2->initializer = gfc_copy_expr (c1->initializer);
! 	  if (c2->initializer->ts.type == BT_UNKNOWN)
! 	    c2->initializer->ts = c2->ts;
! 	  gfc_insert_parameter_exprs (c2->initializer, type_param_spec_list);
! 	  /* The template initializers are parsed using gfc_match_expr rather
! 	     than gfc_match_init_expr. Apply the missing reduction to the
! 	     PDT instance initializers.  */
! 	  if (!gfc_reduce_init_expr (c2->initializer))
! 	    {
! 	      gfc_free_expr (c2->initializer);
! 	      goto error_return;
! 	    }
! 	  gfc_simplify_expr (c2->initializer, 1);
! 	}
      }
  
    if (alloc_seen)
diff -Nrcpad gcc-16-20251019/gcc/fortran/dependency.cc gcc-16-20251026/gcc/fortran/dependency.cc
*** gcc-16-20251019/gcc/fortran/dependency.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/dependency.cc	Sun Oct 26 22:32:33 2025
*************** gfc_ref_needs_temporary_p (gfc_ref *ref)
*** 944,955 ****
  	   types), not in characters.  */
  	return subarray_p;
  
-       case REF_INQUIRY:
- 	/* Within an array reference, inquiry references of complex
- 	   variables generally need a temporary.  */
- 	return subarray_p;
- 
        case REF_COMPONENT:
  	break;
        }
  
--- 944,951 ----
  	   types), not in characters.  */
  	return subarray_p;
  
        case REF_COMPONENT:
+       case REF_INQUIRY:
  	break;
        }
  
diff -Nrcpad gcc-16-20251019/gcc/fortran/gfortran.h gcc-16-20251026/gcc/fortran/gfortran.h
*** gcc-16-20251019/gcc/fortran/gfortran.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/gfortran.h	Sun Oct 26 22:32:33 2025
*************** enum gfc_exec_op
*** 3161,3167 ****
    EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
    EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA,
    EXEC_OACC_ATOMIC, EXEC_OACC_DECLARE,
!   EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
    EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
    EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
    EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
--- 3161,3168 ----
    EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
    EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA,
    EXEC_OACC_ATOMIC, EXEC_OACC_DECLARE,
!   EXEC_OMP_CRITICAL, EXEC_OMP_FIRST_OPENMP_EXEC = EXEC_OMP_CRITICAL,
!   EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
    EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
    EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
    EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
*************** enum gfc_exec_op
*** 3192,3198 ****
    EXEC_OMP_PARALLEL_MASKED_TASKLOOP, EXEC_OMP_PARALLEL_MASKED_TASKLOOP_SIMD,
    EXEC_OMP_MASKED_TASKLOOP, EXEC_OMP_MASKED_TASKLOOP_SIMD, EXEC_OMP_SCOPE,
    EXEC_OMP_UNROLL, EXEC_OMP_TILE, EXEC_OMP_INTEROP, EXEC_OMP_METADIRECTIVE,
!   EXEC_OMP_ERROR, EXEC_OMP_ALLOCATE, EXEC_OMP_ALLOCATORS, EXEC_OMP_DISPATCH
  };
  
  /* Enum Definition for locality types.  */
--- 3193,3200 ----
    EXEC_OMP_PARALLEL_MASKED_TASKLOOP, EXEC_OMP_PARALLEL_MASKED_TASKLOOP_SIMD,
    EXEC_OMP_MASKED_TASKLOOP, EXEC_OMP_MASKED_TASKLOOP_SIMD, EXEC_OMP_SCOPE,
    EXEC_OMP_UNROLL, EXEC_OMP_TILE, EXEC_OMP_INTEROP, EXEC_OMP_METADIRECTIVE,
!   EXEC_OMP_ERROR, EXEC_OMP_ALLOCATE, EXEC_OMP_ALLOCATORS, EXEC_OMP_DISPATCH,
!   EXEC_OMP_LAST_OPENMP_EXEC = EXEC_OMP_DISPATCH
  };
  
  /* Enum Definition for locality types.  */
diff -Nrcpad gcc-16-20251019/gcc/fortran/openmp.cc gcc-16-20251026/gcc/fortran/openmp.cc
*** gcc-16-20251019/gcc/fortran/openmp.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/openmp.cc	Sun Oct 26 22:32:33 2025
*************** struct gfc_omp_directive {
*** 59,64 ****
--- 59,65 ----
     and "nothing".  */
  
  static const struct gfc_omp_directive gfc_omp_directives[] = {
+   /* allocate as alias for allocators is also executive. */
    {"allocate", GFC_OMP_DIR_DECLARATIVE, ST_OMP_ALLOCATE},
    {"allocators", GFC_OMP_DIR_EXECUTABLE, ST_OMP_ALLOCATORS},
    {"assumes", GFC_OMP_DIR_INFORMATIONAL, ST_OMP_ASSUMES},
*************** static const struct gfc_omp_directive gf
*** 68,73 ****
--- 69,75 ----
    {"cancellation point", GFC_OMP_DIR_EXECUTABLE, ST_OMP_CANCELLATION_POINT},
    {"cancel", GFC_OMP_DIR_EXECUTABLE, ST_OMP_CANCEL},
    {"critical", GFC_OMP_DIR_EXECUTABLE, ST_OMP_CRITICAL},
+   /* {"declare induction", GFC_OMP_DIR_DECLARATIVE, ST_OMP_DECLARE_INDUCTION}, */
    /* {"declare mapper", GFC_OMP_DIR_DECLARATIVE, ST_OMP_DECLARE_MAPPER}, */
    {"declare reduction", GFC_OMP_DIR_DECLARATIVE, ST_OMP_DECLARE_REDUCTION},
    {"declare simd", GFC_OMP_DIR_DECLARATIVE, ST_OMP_DECLARE_SIMD},
*************** static const struct gfc_omp_directive gf
*** 79,85 ****
--- 81,90 ----
    {"do", GFC_OMP_DIR_EXECUTABLE, ST_OMP_DO},
    /* "error" becomes GFC_OMP_DIR_EXECUTABLE with at(execution) */
    {"error", GFC_OMP_DIR_UTILITY, ST_OMP_ERROR},
+   /* {"flatten", GFC_OMP_DIR_EXECUTABLE, ST_OMP_FLATTEN}, */
    {"flush", GFC_OMP_DIR_EXECUTABLE, ST_OMP_FLUSH},
+   /* {"fuse", GFC_OMP_DIR_EXECUTABLE, ST_OMP_FLUSE}, */
+   /* {"interchange", GFC_OMP_DIR_EXECUTABLE, ST_OMP_INTERCHANGE}, */
    {"interop", GFC_OMP_DIR_EXECUTABLE, ST_OMP_INTEROP},
    {"loop", GFC_OMP_DIR_EXECUTABLE, ST_OMP_LOOP},
    {"masked", GFC_OMP_DIR_EXECUTABLE, ST_OMP_MASKED},
*************** static const struct gfc_omp_directive gf
*** 98,108 ****
--- 103,117 ----
    {"section", GFC_OMP_DIR_SUBSIDIARY, ST_OMP_SECTION},
    {"simd", GFC_OMP_DIR_EXECUTABLE, ST_OMP_SIMD},
    {"single", GFC_OMP_DIR_EXECUTABLE, ST_OMP_SINGLE},
+   /* {"split", GFC_OMP_DIR_EXECUTABLE, ST_OMP_SPLIT}, */
+   /* {"strip", GFC_OMP_DIR_EXECUTABLE, ST_OMP_STRIP}, */
    {"target data", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TARGET_DATA},
    {"target enter data", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TARGET_ENTER_DATA},
    {"target exit data", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TARGET_EXIT_DATA},
    {"target update", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TARGET_UPDATE},
    {"target", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TARGET},
+   /* {"taskgraph", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TASKGRAPH}, */
+   /* {"task iteration", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TASK_ITERATION}, */
    {"taskloop", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TASKLOOP},
    {"taskwait", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TASKWAIT},
    {"taskyield", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TASKYIELD},
*************** static const struct gfc_omp_directive gf
*** 111,116 ****
--- 120,126 ----
    {"threadprivate", GFC_OMP_DIR_DECLARATIVE, ST_OMP_THREADPRIVATE},
    {"tile", GFC_OMP_DIR_EXECUTABLE, ST_OMP_TILE},
    {"unroll", GFC_OMP_DIR_EXECUTABLE, ST_OMP_UNROLL},
+   /* {"workdistribute", GFC_OMP_DIR_EXECUTABLE, ST_OMP_WORKDISTRIBUTE}, */
    {"workshare", GFC_OMP_DIR_EXECUTABLE, ST_OMP_WORKSHARE},
  };
  
*************** gfc_match_omp_interop (void)
*** 6306,6314 ****
     trait-score:
       score(score-expression)  */
  
! match
! gfc_match_omp_context_selector (gfc_omp_set_selector *oss,
! 				bool metadirective_p)
  {
    do
      {
--- 6316,6323 ----
     trait-score:
       score(score-expression)  */
  
! static match
! gfc_match_omp_context_selector (gfc_omp_set_selector *oss)
  {
    do
      {
*************** gfc_match_omp_context_selector (gfc_omp_
*** 6372,6393 ****
  		  gfc_error ("expected %<(%> at %C");
  		  return MATCH_ERROR;
  		}
! 	      if (gfc_match_expr (&os->score) != MATCH_YES
! 		  || !gfc_resolve_expr (os->score)
! 		  || os->score->ts.type != BT_INTEGER
! 		  || os->score->rank != 0)
! 		{
! 		  gfc_error ("%<score%> argument must be constant integer "
! 			     "expression at %C");
! 		  return MATCH_ERROR;
! 		}
! 
! 	      if (os->score->expr_type == EXPR_CONSTANT
! 		  && mpz_sgn (os->score->value.integer) < 0)
! 		{
! 		  gfc_error ("%<score%> argument must be non-negative at %C");
! 		  return MATCH_ERROR;
! 		}
  
  	      if (gfc_match (" )") != MATCH_YES)
  		{
--- 6381,6388 ----
  		  gfc_error ("expected %<(%> at %C");
  		  return MATCH_ERROR;
  		}
! 	      if (gfc_match_expr (&os->score) != MATCH_YES)
! 		return MATCH_ERROR;
  
  	      if (gfc_match (" )") != MATCH_YES)
  		{
*************** gfc_match_omp_context_selector (gfc_omp_
*** 6420,6425 ****
--- 6415,6422 ----
  		else
  		  {
  		    gfc_error ("expected identifier at %C");
+ 		    free (otp);
+ 		    os->properties = nullptr;
  		    return MATCH_ERROR;
  		  }
  	      }
*************** gfc_match_omp_context_selector (gfc_omp_
*** 6440,6445 ****
--- 6437,6444 ----
  		    {
  		      gfc_error ("expected identifier or string literal "
  				 "at %C");
+ 		      free (otp);
+ 		      os->properties = nullptr;
  		      return MATCH_ERROR;
  		    }
  
*************** gfc_match_omp_context_selector (gfc_omp_
*** 6460,6510 ****
  	      if (gfc_match_expr (&otp->expr) != MATCH_YES)
  		{
  		  gfc_error ("expected expression at %C");
! 		  return MATCH_ERROR;
! 		}
! 	      if (!gfc_resolve_expr (otp->expr)
! 		  || (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR
! 		      && otp->expr->ts.type != BT_LOGICAL)
! 		  || (property_kind == OMP_TRAIT_PROPERTY_DEV_NUM_EXPR
! 		      && otp->expr->ts.type != BT_INTEGER)
! 		  || otp->expr->rank != 0
! 		  || (!metadirective_p
! 		      && otp->expr->expr_type != EXPR_CONSTANT))
! 		{
! 		  if (metadirective_p)
! 		    {
! 		      if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
! 			gfc_error ("property must be a "
! 				   "logical expression at %L",
! 				   &otp->expr->where);
! 		      else
! 			gfc_error ("property must be an "
! 				   "integer expression at %L",
! 				   &otp->expr->where);
! 		    }
! 		  else
! 		    {
! 		      if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
! 			gfc_error ("property must be a constant "
! 				   "logical expression at %L",
! 				   &otp->expr->where);
! 		      else
! 			gfc_error ("property must be a constant "
! 				   "integer expression at %L",
! 				   &otp->expr->where);
! 		    }
! 		  return MATCH_ERROR;
! 		}
! 	      /* Device number must be conforming, which includes
! 		 omp_initial_device (-1) and omp_invalid_device (-4).  */
! 	      if (property_kind == OMP_TRAIT_PROPERTY_DEV_NUM_EXPR
! 		  && otp->expr->expr_type == EXPR_CONSTANT
! 		  && mpz_sgn (otp->expr->value.integer) < 0
! 		  && mpz_cmp_si (otp->expr->value.integer, -1) != 0
! 		  && mpz_cmp_si (otp->expr->value.integer, -4) != 0)
! 		{
! 		  gfc_error ("property must be a conforming device number "
! 			     "at %C");
  		  return MATCH_ERROR;
  		}
  	      break;
--- 6459,6466 ----
  	      if (gfc_match_expr (&otp->expr) != MATCH_YES)
  		{
  		  gfc_error ("expected expression at %C");
! 		  free (otp);
! 		  os->properties = nullptr;
  		  return MATCH_ERROR;
  		}
  	      break;
*************** gfc_match_omp_context_selector (gfc_omp_
*** 6580,6588 ****
       implementation
       user  */
  
! match
! gfc_match_omp_context_selector_specification (gfc_omp_set_selector **oss_head,
! 					      bool metadirective_p)
  {
    do
      {
--- 6536,6543 ----
       implementation
       user  */
  
! static match
! gfc_match_omp_context_selector_specification (gfc_omp_set_selector **oss_head)
  {
    do
      {
*************** gfc_match_omp_context_selector_specifica
*** 6619,6625 ****
        oss->code = set;
        *oss_head = oss;
  
!       if (gfc_match_omp_context_selector (oss, metadirective_p) != MATCH_YES)
  	return MATCH_ERROR;
  
        m = gfc_match (" }");
--- 6574,6580 ----
        oss->code = set;
        *oss_head = oss;
  
!       if (gfc_match_omp_context_selector (oss) != MATCH_YES)
  	return MATCH_ERROR;
  
        m = gfc_match (" }");
*************** gfc_match_omp_declare_variant (void)
*** 6750,6757 ****
  	      return MATCH_ERROR;
  	    }
  	  has_match = true;
! 	  if (gfc_match_omp_context_selector_specification (&odv->set_selectors,
! 							    false)
  	      != MATCH_YES)
  	    return MATCH_ERROR;
  	  if (gfc_match (" )") != MATCH_YES)
--- 6705,6711 ----
  	      return MATCH_ERROR;
  	    }
  	  has_match = true;
! 	  if (gfc_match_omp_context_selector_specification (&odv->set_selectors)
  	      != MATCH_YES)
  	    return MATCH_ERROR;
  	  if (gfc_match (" )") != MATCH_YES)
*************** match_omp_metadirective (bool begin_p)
*** 7042,7048 ****
  
        if (!default_p)
  	{
! 	  if (gfc_match_omp_context_selector_specification (&selectors, true)
  	      != MATCH_YES)
  	    return MATCH_ERROR;
  
--- 6996,7002 ----
  
        if (!default_p)
  	{
! 	  if (gfc_match_omp_context_selector_specification (&selectors)
  	      != MATCH_YES)
  	    return MATCH_ERROR;
  
*************** icode_code_error_callback (gfc_code **co
*** 11418,11499 ****
        /* Errors have already been diagnosed in match_exit_cycle.  */
        state->errorp = true;
        break;
!     case EXEC_OMP_CRITICAL:
!     case EXEC_OMP_DO:
!     case EXEC_OMP_FLUSH:
!     case EXEC_OMP_MASTER:
!     case EXEC_OMP_ORDERED:
!     case EXEC_OMP_PARALLEL:
!     case EXEC_OMP_PARALLEL_DO:
!     case EXEC_OMP_PARALLEL_SECTIONS:
!     case EXEC_OMP_PARALLEL_WORKSHARE:
!     case EXEC_OMP_SECTIONS:
!     case EXEC_OMP_SINGLE:
!     case EXEC_OMP_WORKSHARE:
!     case EXEC_OMP_ATOMIC:
!     case EXEC_OMP_BARRIER:
!     case EXEC_OMP_END_NOWAIT:
!     case EXEC_OMP_END_SINGLE:
!     case EXEC_OMP_TASK:
!     case EXEC_OMP_TASKWAIT:
!     case EXEC_OMP_TASKYIELD:
!     case EXEC_OMP_CANCEL:
!     case EXEC_OMP_CANCELLATION_POINT:
!     case EXEC_OMP_TASKGROUP:
!     case EXEC_OMP_SIMD:
!     case EXEC_OMP_DO_SIMD:
!     case EXEC_OMP_PARALLEL_DO_SIMD:
!     case EXEC_OMP_TARGET:
!     case EXEC_OMP_TARGET_DATA:
!     case EXEC_OMP_TEAMS:
!     case EXEC_OMP_DISTRIBUTE:
!     case EXEC_OMP_DISTRIBUTE_SIMD:
!     case EXEC_OMP_DISTRIBUTE_PARALLEL_DO:
!     case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD:
!     case EXEC_OMP_TARGET_TEAMS:
!     case EXEC_OMP_TEAMS_DISTRIBUTE:
!     case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD:
!     case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE:
!     case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD:
!     case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO:
!     case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO:
!     case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD:
!     case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD:
!     case EXEC_OMP_TARGET_UPDATE:
!     case EXEC_OMP_END_CRITICAL:
!     case EXEC_OMP_TARGET_ENTER_DATA:
!     case EXEC_OMP_TARGET_EXIT_DATA:
!     case EXEC_OMP_TARGET_PARALLEL:
!     case EXEC_OMP_TARGET_PARALLEL_DO:
!     case EXEC_OMP_TARGET_PARALLEL_DO_SIMD:
!     case EXEC_OMP_TARGET_SIMD:
!     case EXEC_OMP_TASKLOOP:
!     case EXEC_OMP_TASKLOOP_SIMD:
!     case EXEC_OMP_SCAN:
!     case EXEC_OMP_DEPOBJ:
!     case EXEC_OMP_PARALLEL_MASTER:
!     case EXEC_OMP_PARALLEL_MASTER_TASKLOOP:
!     case EXEC_OMP_PARALLEL_MASTER_TASKLOOP_SIMD:
!     case EXEC_OMP_MASTER_TASKLOOP:
!     case EXEC_OMP_MASTER_TASKLOOP_SIMD:
!     case EXEC_OMP_LOOP:
!     case EXEC_OMP_PARALLEL_LOOP:
!     case EXEC_OMP_TEAMS_LOOP:
!     case EXEC_OMP_TARGET_PARALLEL_LOOP:
!     case EXEC_OMP_TARGET_TEAMS_LOOP:
!     case EXEC_OMP_MASKED:
!     case EXEC_OMP_PARALLEL_MASKED:
!     case EXEC_OMP_PARALLEL_MASKED_TASKLOOP:
!     case EXEC_OMP_PARALLEL_MASKED_TASKLOOP_SIMD:
!     case EXEC_OMP_MASKED_TASKLOOP:
!     case EXEC_OMP_MASKED_TASKLOOP_SIMD:
!     case EXEC_OMP_SCOPE:
!     case EXEC_OMP_ERROR:
!     case EXEC_OMP_DISPATCH:
!       gfc_error ("%s cannot contain OpenMP directive in intervening code "
! 		 "at %L",
! 		 state->name, &code->loc);
!       state->errorp = true;
        break;
      case EXEC_CALL:
        /* Per OpenMP 5.2, the "omp_" prefix is reserved, so we don't have to
--- 11372,11381 ----
        /* Errors have already been diagnosed in match_exit_cycle.  */
        state->errorp = true;
        break;
!     case EXEC_OMP_ASSUME:
!     case EXEC_OMP_METADIRECTIVE:
!       /* Per OpenMP 6.0, some non-executable directives are allowed in
! 	 intervening code.  */
        break;
      case EXEC_CALL:
        /* Per OpenMP 5.2, the "omp_" prefix is reserved, so we don't have to
*************** icode_code_error_callback (gfc_code **co
*** 11509,11515 ****
  	}
        break;
      default:
!       break;
      }
    return 0;
  }
--- 11391,11404 ----
  	}
        break;
      default:
!       if (code->op >= EXEC_OMP_FIRST_OPENMP_EXEC
! 	  && code->op <= EXEC_OMP_LAST_OPENMP_EXEC)
! 	{
! 	  gfc_error ("%s cannot contain OpenMP directive in intervening code "
! 		     "at %L",
! 		     state->name, &code->loc);
! 	  state->errorp = true;
! 	}
      }
    return 0;
  }
*************** resolve_omp_do (gfc_code *code)
*** 12261,12267 ****
  		     name, i, &code->loc);
  	  goto fail;
  	}
!       else if (next != do_code->block->next || next->next)
  	/* Imperfectly nested loop found.  */
  	{
  	  /* Only diagnose violation of imperfect nesting constraints once.  */
--- 12150,12157 ----
  		     name, i, &code->loc);
  	  goto fail;
  	}
!       else if (next != do_code->block->next
! 	       || (next->next && next->next->op != EXEC_CONTINUE))
  	/* Imperfectly nested loop found.  */
  	{
  	  /* Only diagnose violation of imperfect nesting constraints once.  */
*************** resolve_omp_do (gfc_code *code)
*** 12312,12317 ****
--- 12202,12319 ----
  				  non_generated_count);
  }
  
+ /* Resolve the context selector. In particular, SKIP_P is set to true,
+    the context can never be matched.  */
+ 
+ static void
+ gfc_resolve_omp_context_selector (gfc_omp_set_selector *oss,
+ 				  bool is_metadirective, bool *skip_p)
+ {
+   if (skip_p)
+     *skip_p = false;
+   for (gfc_omp_set_selector *set_selector = oss; set_selector;
+        set_selector = set_selector->next)
+     for (gfc_omp_selector *os = set_selector->trait_selectors; os; os = os->next)
+       {
+ 	if (os->score)
+ 	  {
+ 	    if (!gfc_resolve_expr (os->score)
+ 		|| os->score->ts.type != BT_INTEGER
+ 		|| os->score->rank != 0)
+ 	      {
+ 		gfc_error ("%<score%> argument must be constant integer "
+ 			   "expression at %L", &os->score->where);
+ 		gfc_free_expr (os->score);
+ 		os->score = nullptr;
+ 	      }
+ 	    else if (os->score->expr_type == EXPR_CONSTANT
+ 		     && mpz_sgn (os->score->value.integer) < 0)
+ 	      {
+ 		gfc_error ("%<score%> argument must be non-negative at %L",
+ 			   &os->score->where);
+ 		gfc_free_expr (os->score);
+ 		os->score = nullptr;
+ 	      }
+ 	  }
+ 
+ 	enum omp_tp_type property_kind = omp_ts_map[os->code].tp_type;
+ 	gfc_omp_trait_property *otp = os->properties;
+ 
+ 	if (!otp)
+ 	  continue;
+ 	switch (property_kind)
+ 	  {
+ 	  case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
+ 	  case OMP_TRAIT_PROPERTY_BOOL_EXPR:
+ 	    if (!gfc_resolve_expr (otp->expr)
+ 		|| (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR
+ 		    && otp->expr->ts.type != BT_LOGICAL)
+ 		|| (property_kind == OMP_TRAIT_PROPERTY_DEV_NUM_EXPR
+ 		    && otp->expr->ts.type != BT_INTEGER)
+ 		|| otp->expr->rank != 0
+ 		|| (!is_metadirective && otp->expr->expr_type != EXPR_CONSTANT))
+ 	      {
+ 		if (is_metadirective)
+ 		  {
+ 		    if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
+ 		      gfc_error ("property must be a "
+ 				 "logical expression at %L",
+ 				 &otp->expr->where);
+ 		    else
+ 		      gfc_error ("property must be an "
+ 				 "integer expression at %L",
+ 				 &otp->expr->where);
+ 		  }
+ 		else
+ 		  {
+ 		    if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
+ 		      gfc_error ("property must be a constant "
+ 				 "logical expression at %L",
+ 				 &otp->expr->where);
+ 		    else
+ 		      gfc_error ("property must be a constant "
+ 				 "integer expression at %L",
+ 				 &otp->expr->where);
+ 		  }
+ 		/* Prevent later ICEs. */
+ 		gfc_expr *e;
+ 		if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
+ 		  e = gfc_get_logical_expr (gfc_default_logical_kind,
+ 					    &otp->expr->where, true);
+ 		else
+ 		  e = gfc_get_int_expr (gfc_default_integer_kind,
+ 					&otp->expr->where, 0);
+ 		gfc_free_expr (otp->expr);
+ 		otp->expr = e;
+ 		continue;
+ 	      }
+ 	    /* Device number must be conforming, which includes
+ 	       omp_initial_device (-1) and omp_invalid_device (-4).  */
+ 	    if (property_kind == OMP_TRAIT_PROPERTY_DEV_NUM_EXPR
+ 		&& otp->expr->expr_type == EXPR_CONSTANT
+ 		&& mpz_sgn (otp->expr->value.integer) < 0
+ 		&& mpz_cmp_si (otp->expr->value.integer, -1) != 0
+ 		&& mpz_cmp_si (otp->expr->value.integer, -4) != 0)
+ 	      gfc_error ("property must be a conforming device number at %L",
+ 			 &otp->expr->where);
+ 	    break;
+ 	  default:
+ 	    break;
+ 	  }
+ 	/* This only handles one specific case: User condition.
+ 	   FIXME: Handle more cases by calling omp_context_selector_matches;
+ 	   unfortunately, we cannot generate the tree here as, e.g., PARM_DECL
+ 	   backend decl are not available at this stage - but might be used in,
+ 	   e.g. user conditions. See PR122361.  */
+ 	if (skip_p && otp
+ 	    && os->code == OMP_TRAIT_USER_CONDITION
+ 	    && otp->expr->expr_type == EXPR_CONSTANT
+ 	    && otp->expr->value.logical == false)
+ 	  *skip_p = true;
+       }
+ }
+ 
+ 
  static void
  resolve_omp_metadirective (gfc_code *code, gfc_namespace *ns)
  {
*************** resolve_omp_metadirective (gfc_code *cod
*** 12319,12327 ****
  
    while (variant)
      {
        gfc_code *variant_code = variant->code;
        gfc_resolve_code (variant_code, ns);
!       variant = variant->next;
      }
  }
  
--- 12321,12358 ----
  
    while (variant)
      {
+       bool skip;
+       gfc_resolve_omp_context_selector (variant->selectors, true, &skip);
        gfc_code *variant_code = variant->code;
        gfc_resolve_code (variant_code, ns);
!       if (skip)
! 	{
! 	  /* The following should only be true if an error occurred
! 	     as the 'otherwise' clause should always match.  */
! 	  if (variant == code->ext.omp_variants && !variant->next)
! 	    break;
! 	  if (variant == code->ext.omp_variants)
! 	    code->ext.omp_variants = variant->next;
! 	  gfc_omp_variant *tmp = variant;
! 	  variant = variant->next;
! 	  gfc_free_omp_set_selector_list (tmp->selectors);
! 	  free (tmp);
! 	}
!       else
! 	variant = variant->next;
!     }
!   /* Replace metadirective by its body if only 'nothing' remains.  */
!   if (!code->ext.omp_variants->next && code->ext.omp_variants->stmt == ST_NONE)
!     {
!       gfc_code *next = code->next;
!       gfc_code *inner = code->ext.omp_variants->code;
!       gfc_free_omp_set_selector_list (code->ext.omp_variants->selectors);
!       free (code->ext.omp_variants);
!       *code = *inner;
!       free (inner);
!       while (code->next)
! 	code = code->next;
!       code->next = next;
      }
  }
  
*************** gfc_resolve_omp_declare (gfc_namespace *
*** 13098,13103 ****
--- 13129,13137 ----
  
    gfc_omp_declare_variant *odv;
    gfc_omp_namelist *range_begin = NULL;
+ 
+   for (odv = ns->omp_declare_variant; odv; odv = odv->next)
+     gfc_resolve_omp_context_selector (odv->set_selectors, false, nullptr);
    for (odv = ns->omp_declare_variant; odv; odv = odv->next)
      for (gfc_omp_namelist *n = odv->adjust_args_list; n != NULL; n = n->next)
        {
diff -Nrcpad gcc-16-20251019/gcc/fortran/primary.cc gcc-16-20251026/gcc/fortran/primary.cc
*** gcc-16-20251019/gcc/fortran/primary.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/primary.cc	Sun Oct 26 22:32:33 2025
*************** gfc_match_actual_arglist (int sub_flag,
*** 2071,2076 ****
--- 2071,2093 ----
  	    }
  	}
  
+     /* PDT kind expressions are acceptable as initialization expressions.
+        However, intrinsics with a KIND argument reject them. Convert the
+        expression now by use of the component initializer.  */
+     if (tail->expr
+ 	&& tail->expr->expr_type == EXPR_VARIABLE
+ 	&& gfc_expr_attr (tail->expr).pdt_kind)
+       {
+ 	gfc_ref *ref;
+ 	gfc_expr *tmp = NULL;
+ 	for (ref = tail->expr->ref; ref; ref = ref->next)
+ 	     if (!ref->next && ref->type == REF_COMPONENT
+ 		 && ref->u.c.component->attr.pdt_kind
+ 		 && ref->u.c.component->initializer)
+ 	  tmp = gfc_copy_expr (ref->u.c.component->initializer);
+ 	if (tmp)
+ 	  gfc_replace_expr (tail->expr, tmp);
+       }
  
      next:
        if (gfc_match_char (')') == MATCH_YES)
diff -Nrcpad gcc-16-20251019/gcc/fortran/resolve.cc gcc-16-20251026/gcc/fortran/resolve.cc
*** gcc-16-20251019/gcc/fortran/resolve.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/resolve.cc	Sun Oct 26 22:32:33 2025
*************** resolve_typebound_intrinsic_op (gfc_symb
*** 16077,16086 ****
  
  	  /* Preempt 'gfc_check_new_interface' for submodules, where the
  	     mechanism for handling module procedures winds up resolving
! 	     operator interfaces twice and would otherwise cause an error.  */
  	  for (intr = derived->ns->op[op]; intr; intr = intr->next)
  	    if (intr->sym == target_proc
! 		&& target_proc->attr.used_in_submodule)
  	      return true;
  
  	  if (!gfc_check_new_interface (derived->ns->op[op],
--- 16077,16089 ----
  
  	  /* Preempt 'gfc_check_new_interface' for submodules, where the
  	     mechanism for handling module procedures winds up resolving
! 	     operator interfaces twice and would otherwise cause an error.
! 	     Likewise, new instances of PDTs can cause the operator inter-
! 	     faces to be resolved multiple times.  */
  	  for (intr = derived->ns->op[op]; intr; intr = intr->next)
  	    if (intr->sym == target_proc
! 		&& (target_proc->attr.used_in_submodule
! 		    || derived->attr.pdt_type))
  	      return true;
  
  	  if (!gfc_check_new_interface (derived->ns->op[op],
diff -Nrcpad gcc-16-20251019/gcc/fortran/simplify.cc gcc-16-20251026/gcc/fortran/simplify.cc
*** gcc-16-20251019/gcc/fortran/simplify.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/simplify.cc	Sun Oct 26 22:32:33 2025
*************** static int
*** 120,145 ****
  get_kind (bt type, gfc_expr *k, const char *name, int default_kind)
  {
    int kind;
-   gfc_expr *tmp;
  
    if (k == NULL)
      return default_kind;
  
-   if (k->expr_type == EXPR_VARIABLE
-       && k->symtree->n.sym->ts.type == BT_DERIVED
-       && k->symtree->n.sym->ts.u.derived->attr.pdt_type)
-     {
-       gfc_ref *ref;
-       for (ref = k->ref; ref; ref = ref->next)
- 	if (!ref->next && ref->type == REF_COMPONENT
- 	    && ref->u.c.component->attr.pdt_kind
- 	    && ref->u.c.component->initializer)
- 	  {
- 	    tmp = gfc_copy_expr (ref->u.c.component->initializer);
- 	    gfc_replace_expr (k, tmp);
- 	  }
-     }
- 
    if (k->expr_type != EXPR_CONSTANT)
      {
        gfc_error ("KIND parameter of %s at %L must be an initialization "
--- 120,129 ----
diff -Nrcpad gcc-16-20251019/gcc/fortran/trans-expr.cc gcc-16-20251026/gcc/fortran/trans-expr.cc
*** gcc-16-20251019/gcc/fortran/trans-expr.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/trans-expr.cc	Sun Oct 26 22:32:33 2025
*************** gfc_trans_pointer_assignment (gfc_expr *
*** 11344,11364 ****
  	  int dim;
  	  gcc_assert (remap->u.ar.dimen == expr1->rank);
  
  	  if (rank_remap)
  	    {
  	      /* Do rank remapping.  We already have the RHS's descriptor
  		 converted in rse and now have to build the correct LHS
  		 descriptor for it.  */
  
! 	      tree dtype, data, span;
  	      tree offs, stride;
  	      tree lbound, ubound;
  
- 	      /* Set dtype.  */
- 	      dtype = gfc_conv_descriptor_dtype (desc);
- 	      tmp = gfc_get_dtype (TREE_TYPE (desc));
- 	      gfc_add_modify (&block, dtype, tmp);
- 
  	      /* Copy data pointer.  */
  	      data = gfc_conv_descriptor_data_get (rse.expr);
  	      gfc_conv_descriptor_data_set (&block, desc, data);
--- 11344,11376 ----
  	  int dim;
  	  gcc_assert (remap->u.ar.dimen == expr1->rank);
  
+ 	  /* Always set dtype.  */
+ 	  tree dtype = gfc_conv_descriptor_dtype (desc);
+ 	  tmp = gfc_get_dtype (TREE_TYPE (desc));
+ 	  gfc_add_modify (&block, dtype, tmp);
+ 
+ 	  /* For unlimited polymorphic LHS use elem_len from RHS.  */
+ 	  if (UNLIMITED_POLY (expr1) && expr2->ts.type != BT_CLASS)
+ 	    {
+ 	      tree elem_len;
+ 	      tmp = TYPE_SIZE_UNIT (gfc_typenode_for_spec (&expr2->ts));
+ 	      elem_len = fold_convert (gfc_array_index_type, tmp);
+ 	      elem_len = gfc_evaluate_now (elem_len, &block);
+ 	      tmp = gfc_conv_descriptor_elem_len (desc);
+ 	      gfc_add_modify (&block, tmp,
+ 			      fold_convert (TREE_TYPE (tmp), elem_len));
+ 	    }
+ 
  	  if (rank_remap)
  	    {
  	      /* Do rank remapping.  We already have the RHS's descriptor
  		 converted in rse and now have to build the correct LHS
  		 descriptor for it.  */
  
! 	      tree data, span;
  	      tree offs, stride;
  	      tree lbound, ubound;
  
  	      /* Copy data pointer.  */
  	      data = gfc_conv_descriptor_data_get (rse.expr);
  	      gfc_conv_descriptor_data_set (&block, desc, data);
diff -Nrcpad gcc-16-20251019/gcc/fortran/trans-intrinsic.cc gcc-16-20251026/gcc/fortran/trans-intrinsic.cc
*** gcc-16-20251019/gcc/fortran/trans-intrinsic.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/fortran/trans-intrinsic.cc	Sun Oct 26 22:32:33 2025
*************** gfc_conv_is_contiguous_expr (gfc_se *se,
*** 2316,2325 ****
--- 2316,2329 ----
    int i;
    tree fncall0;
    gfc_array_spec *as;
+   gfc_symbol *sym = NULL;
  
    if (arg->ts.type == BT_CLASS)
      gfc_add_class_array_ref (arg);
  
+   if (arg->expr_type == EXPR_VARIABLE)
+     sym = arg->symtree->n.sym;
+ 
    ss = gfc_walk_expr (arg);
    gcc_assert (ss != gfc_ss_terminator);
    gfc_init_se (&argse, NULL);
*************** gfc_conv_is_contiguous_expr (gfc_se *se,
*** 2342,2348 ****
        fncall0 = build_call_expr_loc (input_location,
  				     gfor_fndecl_is_contiguous0, 1, desc);
        se->expr = fncall0;
!       se->expr = convert (logical_type_node, se->expr);
      }
    else
      {
--- 2346,2352 ----
        fncall0 = build_call_expr_loc (input_location,
  				     gfor_fndecl_is_contiguous0, 1, desc);
        se->expr = fncall0;
!       se->expr = convert (boolean_type_node, se->expr);
      }
    else
      {
*************** gfc_conv_is_contiguous_expr (gfc_se *se,
*** 2374,2379 ****
--- 2378,2399 ----
  	}
        se->expr = cond;
      }
+ 
+   /* A pointer that does not have the CONTIGUOUS attribute needs to be checked
+      if it points to an array whose span differs from the element size.  */
+   if (as && sym && IS_POINTER(sym) && !sym->attr.contiguous)
+     {
+       tree span = gfc_conv_descriptor_span_get (desc);
+       tmp = fold_convert (TREE_TYPE (span),
+ 			  gfc_conv_descriptor_elem_len (desc));
+       cond = fold_build2_loc (input_location, EQ_EXPR, boolean_type_node,
+ 			      span, tmp);
+       se->expr = fold_build2_loc (input_location, TRUTH_ANDIF_EXPR,
+ 				  boolean_type_node, cond,
+ 				  convert (boolean_type_node, se->expr));
+     }
+ 
+   gfc_free_ss_chain (ss);
  }
  
  
*************** gfc_conv_intrinsic_transfer (gfc_se * se
*** 8728,8740 ****
      }
    else
      {
        argse.want_pointer = 0;
        gfc_conv_expr_descriptor (&argse, arg->expr);
        source = gfc_conv_descriptor_data_get (argse.expr);
        source_type = gfc_get_element_type (TREE_TYPE (argse.expr));
  
        /* Repack the source if not simply contiguous.  */
!       if (!gfc_is_simply_contiguous (arg->expr, false, true))
  	{
  	  tmp = gfc_build_addr_expr (NULL_TREE, argse.expr);
  
--- 8748,8765 ----
      }
    else
      {
+       bool simply_contiguous = gfc_is_simply_contiguous (arg->expr,
+ 							 false, true);
        argse.want_pointer = 0;
+       /* A non-contiguous SOURCE needs packing.  */
+       if (!simply_contiguous)
+ 	argse.force_tmp = 1;
        gfc_conv_expr_descriptor (&argse, arg->expr);
        source = gfc_conv_descriptor_data_get (argse.expr);
        source_type = gfc_get_element_type (TREE_TYPE (argse.expr));
  
        /* Repack the source if not simply contiguous.  */
!       if (!simply_contiguous)
  	{
  	  tmp = gfc_build_addr_expr (NULL_TREE, argse.expr);
  
diff -Nrcpad gcc-16-20251019/gcc/gimple-range-fold.cc gcc-16-20251026/gcc/gimple-range-fold.cc
*** gcc-16-20251019/gcc/gimple-range-fold.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/gimple-range-fold.cc	Sun Oct 26 22:32:33 2025
*************** fold_using_range::condexpr_adjust (vrang
*** 1187,1192 ****
--- 1187,1203 ----
  	  ssa2, src))
  	r2.intersect (tmp2);
      }
+   // If the same name is specified in the condition and COND_EXPR,
+   // combine the calculated condition range and the other one provided. ie:
+   // c_1 = b_2 < 10
+   // f_3 = c_1 ? 0 : b_2
+   // With b_2 providing the false value, the value of f_3 will be
+   // either 0 UNION  (0 = b_2 < 10), which is [-INF, 9].
+   // COND_EXPR is
+   if (ssa1 && cond_name == ssa1)
+     r1 = cond_true;
+   else if (ssa2 && cond_name == ssa2)
+     r2 = cond_false;
    return true;
  }
  
diff -Nrcpad gcc-16-20251019/gcc/internal-fn.cc gcc-16-20251026/gcc/internal-fn.cc
*** gcc-16-20251019/gcc/internal-fn.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/internal-fn.cc	Sun Oct 26 22:32:33 2025
*************** init_internal_fns ()
*** 194,199 ****
--- 194,200 ----
  #define mask_len_fold_left_direct { 1, 1, false }
  #define check_ptrs_direct { 0, 0, false }
  #define crc_direct { 1, -1, true }
+ #define reduc_sbool_direct { 0, 0, true }
  
  const direct_internal_fn_info direct_internal_fn_array[IFN_LAST + 1] = {
  #define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC) not_direct,
*************** expand_crc_optab_fn (internal_fn fn, gca
*** 4099,4104 ****
--- 4100,4141 ----
      }
  }
  
+ /* Expand .REDUC_SBOOL_{AND,IOR,XOR}.  */
+ 
+ static void
+ expand_reduc_sbool_optab_fn (internal_fn fn, gcall *stmt, direct_optab optab)
+ {
+   tree_pair types = direct_internal_fn_types (fn, stmt);
+   insn_code icode = direct_optab_handler (optab, TYPE_MODE (types.first));
+ 
+   /* Below copied from expand_fn_using_insn.  */
+ 
+   gcc_assert (icode != CODE_FOR_nothing);
+ 
+   expand_operand *ops = XALLOCAVEC (expand_operand, 3);
+   rtx lhs_rtx = NULL_RTX;
+   tree lhs = gimple_call_lhs (stmt);
+   if (lhs)
+     lhs_rtx = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE);
+   create_call_lhs_operand (&ops[0], lhs_rtx,
+ 			   insn_data[icode].operand[0].mode);
+ 
+   tree rhs = gimple_call_arg (stmt, 0);
+   tree rhs_type = TREE_TYPE (rhs);
+   rtx rhs_rtx = expand_normal (rhs);
+   gcc_assert (VECTOR_BOOLEAN_TYPE_P (rhs_type));
+   create_input_operand (&ops[1], rhs_rtx, TYPE_MODE (rhs_type));
+   if (SCALAR_INT_MODE_P (TYPE_MODE (rhs_type)))
+     {
+       rtx nunits = GEN_INT (TYPE_VECTOR_SUBPARTS (rhs_type).to_constant ());
+       gcc_assert (insn_operand_matches (icode, 2, nunits));
+       create_input_operand (&ops[2], nunits, SImode);
+     }
+   expand_insn (icode, SCALAR_INT_MODE_P (TYPE_MODE (rhs_type)) ? 3 : 2, ops);
+   if (lhs_rtx)
+     assign_call_lhs (lhs, lhs_rtx, &ops[0]);
+ }
+ 
  /* Expanders for optabs that can use expand_direct_optab_fn.  */
  
  #define expand_unary_optab_fn(FN, STMT, OPTAB) \
*************** multi_vector_optab_supported_p (convert_
*** 4261,4266 ****
--- 4298,4304 ----
  #define direct_check_ptrs_optab_supported_p direct_optab_supported_p
  #define direct_vec_set_optab_supported_p direct_optab_supported_p
  #define direct_vec_extract_optab_supported_p convert_optab_supported_p
+ #define direct_reduc_sbool_optab_supported_p direct_optab_supported_p
  
  /* Return the optab used by internal function FN.  */
  
diff -Nrcpad gcc-16-20251019/gcc/internal-fn.def gcc-16-20251026/gcc/internal-fn.def
*** gcc-16-20251019/gcc/internal-fn.def	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/internal-fn.def	Sun Oct 26 22:32:33 2025
*************** DEF_INTERNAL_OPTAB_FN (REDUC_IOR, ECF_CO
*** 330,335 ****
--- 330,342 ----
  		       reduc_ior_scal, unary)
  DEF_INTERNAL_OPTAB_FN (REDUC_XOR, ECF_CONST | ECF_NOTHROW,
  		       reduc_xor_scal, unary)
+ DEF_INTERNAL_OPTAB_FN (REDUC_SBOOL_AND, ECF_CONST | ECF_NOTHROW,
+ 		       reduc_sbool_and_scal, reduc_sbool)
+ DEF_INTERNAL_OPTAB_FN (REDUC_SBOOL_IOR, ECF_CONST | ECF_NOTHROW,
+ 		       reduc_sbool_ior_scal, reduc_sbool)
+ DEF_INTERNAL_OPTAB_FN (REDUC_SBOOL_XOR, ECF_CONST | ECF_NOTHROW,
+ 		       reduc_sbool_xor_scal, reduc_sbool)
+ 
  
  /* Extract the last active element from a vector.  */
  DEF_INTERNAL_OPTAB_FN (EXTRACT_LAST, ECF_CONST | ECF_NOTHROW,
diff -Nrcpad gcc-16-20251019/gcc/ipa-fnsummary.cc gcc-16-20251026/gcc/ipa-fnsummary.cc
*** gcc-16-20251019/gcc/ipa-fnsummary.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/ipa-fnsummary.cc	Sun Oct 26 22:32:33 2025
*************** redirect_to_unreachable (struct cgraph_e
*** 271,276 ****
--- 271,278 ----
    es->call_stmt_time = 0;
    if (callee)
      callee->remove_symbol_and_inline_clones ();
+   if (e->has_callback)
+     e->purge_callback_edges ();
    return e;
  }
  
*************** analyze_function_body (struct cgraph_nod
*** 3119,3126 ****
  		  for (cbe = edge->first_callback_edge (); cbe;
  		       cbe = cbe->next_callback_edge ())
  		    {
! 		      ipa_call_summary *es2 = ipa_call_summaries->get (cbe);
! 		      es2 = ipa_call_summaries->get_create (cbe);
  		      ipa_call_summaries->duplicate (edge, cbe, es, es2);
  		      /* Unlike speculative edges, callback edges have no real
  			 size or time; the call doesn't exist.  Reflect that in
--- 3121,3127 ----
  		  for (cbe = edge->first_callback_edge (); cbe;
  		       cbe = cbe->next_callback_edge ())
  		    {
! 		      ipa_call_summary *es2 = ipa_call_summaries->get_create (cbe);
  		      ipa_call_summaries->duplicate (edge, cbe, es, es2);
  		      /* Unlike speculative edges, callback edges have no real
  			 size or time; the call doesn't exist.  Reflect that in
diff -Nrcpad gcc-16-20251019/gcc/jit/ChangeLog gcc-16-20251026/gcc/jit/ChangeLog
*** gcc-16-20251019/gcc/jit/ChangeLog	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/ChangeLog	Sun Oct 26 22:32:33 2025
***************
*** 1,3 ****
--- 1,80 ----
+ 2025-10-22  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* docs/topics/types.rst: Document new types.
+ 	* dummy-frontend.cc: Support new types in tree_type_to_jit_type.
+ 	* jit-common.h: Update NUM_GCC_JIT_TYPES.
+ 	* jit-playback.cc: Support new types in get_tree_node_for_type.
+ 	* jit-recording.cc: Support new types.
+ 	* libgccjit.h (gcc_jit_types): Add new types.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_37): New ABI tag.
+ 	* docs/topics/types.rst: Document
+ 	gcc_jit_context_new_array_type_u64.
+ 	* jit-playback.cc (new_array_type): Change num_elements type to
+ 	uint64_t.
+ 	* jit-playback.h (new_array_type): Change num_elements type to
+ 	uint64_t.
+ 	* jit-recording.cc (recording::context::new_array_type): Change
+ 	num_elements type to uint64_t.
+ 	(recording::array_type::make_debug_string): Use uint64_t
+ 	format.
+ 	(recording::array_type::write_reproducer): Switch to
+ 	gcc_jit_context_new_array_type_u64.
+ 	* jit-recording.h (class array_type): Change num_elements type
+ 	to uint64_t.
+ 	(new_array_type): Change num_elements type to uint64_t.
+ 	(num_elements): Change return type to uint64_t.
+ 	* libgccjit.cc (gcc_jit_context_new_array_type_u64):
+ 	New function.
+ 	* libgccjit.h (gcc_jit_context_new_array_type_u64):
+ 	New function.
+ 	* libgccjit.exports: New function.
+ 	* libgccjit.map: New function.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* jit-playback.cc (add_error, add_error_va): Send DK_ERROR to
+ 	add_error_va.
+ 	(add_diagnostic): Call add_diagnostic instead of add_error.
+ 	* jit-recording.cc (DEFINE_DIAGNOSTIC_KIND): New define.
+ 	(recording::context::add_diagnostic): New function.
+ 	(recording::context::add_error): Send DK_ERROR to add_error_va.
+ 	(recording::context::add_error_va): New parameter diagnostic_kind.
+ 	* jit-recording.h (add_diagnostic): New function.
+ 	(add_error_va): New parameter diagnostic_kind.
+ 	* libgccjit.cc (jit_error): Send DK_ERROR to add_error_va.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR jit/105827
+ 	* dummy-frontend.cc: Fix lang_tree_node.
+ 	* jit-common.h: New function (jit_tree_chain_next) used by
+ 	lang_tree_node.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR jit/117886
+ 	* dummy-frontend.cc: Support some missing types.
+ 	* jit-playback.h (get_abort_on_unsupported_target_builtin): New
+ 	function.
+ 	* jit-recording.cc (get_abort_on_unsupported_target_builtin,
+ 	set_abort_on_unsupported_target_builtin): New functions.
+ 	* jit-recording.h (get_abort_on_unsupported_target_builtin,
+ 	set_abort_on_unsupported_target_builtin): New functions.
+ 	(m_abort_on_unsupported_target_builtin): New field.
+ 	* libgccjit.cc
+ 	(gcc_jit_context_set_abort_on_unsupported_target_builtin): New
+ 	function.
+ 	* libgccjit.h
+ 	(gcc_jit_context_set_abort_on_unsupported_target_builtin): New
+ 	function.
+ 	* libgccjit.exports (LIBGCCJIT_ABI_36): New ABI tag.
+ 	* libgccjit.map (LIBGCCJIT_ABI_36): New ABI tag.
+ 	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_36): New ABI tag.
+ 	* docs/topics/contexts.rst: Document new function.
+ 
  2025-10-08  Antoni Boucher  <bouanto@zoho.com>
  
  	PR jit/112466
diff -Nrcpad gcc-16-20251019/gcc/jit/docs/topics/compatibility.rst gcc-16-20251026/gcc/jit/docs/topics/compatibility.rst
*** gcc-16-20251019/gcc/jit/docs/topics/compatibility.rst	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/docs/topics/compatibility.rst	Sun Oct 26 22:32:33 2025
*************** information:
*** 466,468 ****
--- 466,483 ----
    * :func:`gcc_jit_target_info_cpu_supports`
    * :func:`gcc_jit_target_info_arch`
    * :func:`gcc_jit_target_info_supports_target_dependent_type`
+ 
+ .. _LIBGCCJIT_ABI_36:
+ 
+ ``LIBGCCJIT_ABI_36``
+ --------------------
+ ``LIBGCCJIT_ABI_36`` covers the addition of
+ 
+  * :func:`gcc_jit_context_set_abort_on_unsupported_target_builtin`
+ 
+ .. _LIBGCCJIT_ABI_37:
+ 
+ ``LIBGCCJIT_ABI_37``
+ --------------------
+ ``LIBGCCJIT_ABI_37`` covers the addition of
+ :func:`gcc_jit_context_new_array_type_u64`
diff -Nrcpad gcc-16-20251019/gcc/jit/docs/topics/contexts.rst gcc-16-20251026/gcc/jit/docs/topics/contexts.rst
*** gcc-16-20251019/gcc/jit/docs/topics/contexts.rst	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/docs/topics/contexts.rst	Sun Oct 26 22:32:33 2025
*************** Boolean options
*** 509,514 ****
--- 509,530 ----
  
        #ifdef LIBGCCJIT_HAVE_gcc_jit_context_set_bool_print_errors_to_stderr
  
+ .. function:: void \
+               gcc_jit_context_set_abort_on_unsupported_target_builtin (gcc_jit_context *ctxt)
+ 
+    By default, libgccjit will silently ignore when a target builtin has an
+    unsupported type.
+ 
+    This entrypoint can be used to make it abort when the specified context
+    encounters such a target builtin.
+ 
+    This entrypoint was added in :ref:`LIBGCCJIT_ABI_36`; you can test for
+    its presence using
+ 
+    .. code-block:: c
+ 
+       #ifdef LIBGCCJIT_HAVE_gcc_jit_context_set_abort_on_unsupported_target_builtin
+ 
  Integer options
  ***************
  
diff -Nrcpad gcc-16-20251019/gcc/jit/docs/topics/types.rst gcc-16-20251026/gcc/jit/docs/topics/types.rst
*** gcc-16-20251019/gcc/jit/docs/topics/types.rst	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/docs/topics/types.rst	Sun Oct 26 22:32:33 2025
*************** Standard types
*** 119,124 ****
--- 119,132 ----
         -
       * - :c:data:`GCC_JIT_TYPE_LONG_DOUBLE`
         -
+      * - :c:data:`GCC_JIT_TYPE_FLOAT16`
+        -
+      * - :c:data:`GCC_JIT_TYPE_FLOAT32`
+        -
+      * - :c:data:`GCC_JIT_TYPE_FLOAT64`
+        -
+      * - :c:data:`GCC_JIT_TYPE_FLOAT128`
+        -
       * - :c:data:`GCC_JIT_TYPE_CONST_CHAR_PTR`
         - C type: ``(const char *)``
       * - :c:data:`GCC_JIT_TYPE_SIZE_T`
*************** Pointers, `const`, and `volatile`
*** 163,168 ****
--- 171,194 ----
     Given non-`void` type "T", get type "T[N]" (for a constant N).
  
  .. function::  gcc_jit_type *\
+                gcc_jit_context_new_array_type_u64 (gcc_jit_context *ctxt, \
+                                                    gcc_jit_location *loc, \
+                                                    gcc_jit_type *element_type, \
+                                                    uint64_t num_elements)
+ 
+    Given non-`void` type "T", get type "T[N]" (for a constant N).
+ 
+    This is the same as gcc_jit_context_new_array_type, but the type of
+    ``num_elements` different and thus allows creating bigger array types.
+ 
+    This API entrypoint was added in :ref:`LIBGCCJIT_ABI_37`; you can test
+    for its presence using
+ 
+    .. code-block:: c
+ 
+       #ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_array_type_u64
+ 
+ .. function::  gcc_jit_type *\
                 gcc_jit_type_get_aligned (gcc_jit_type *type, \
                                           size_t alignment_in_bytes)
  
diff -Nrcpad gcc-16-20251019/gcc/jit/dummy-frontend.cc gcc-16-20251026/gcc/jit/dummy-frontend.cc
*** gcc-16-20251019/gcc/jit/dummy-frontend.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/dummy-frontend.cc	Sun Oct 26 22:32:33 2025
*************** struct GTY(()) lang_identifier
*** 956,968 ****
  
  /* The resulting tree type.  */
  
  union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
! 	   chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN (&%h.generic)) : NULL")))
! lang_tree_node
! {
!   union tree_node GTY((tag ("0"),
! 		       desc ("tree_node_structure (&%h)"))) generic;
!   struct lang_identifier GTY((tag ("1"))) identifier;
  };
  
  /* We don't use language_function.  */
--- 956,970 ----
  
  /* The resulting tree type.  */
  
+ /* See lang_tree_node in gcc/c/c-decl.cc.  */
  union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
!   chain_next ("(union lang_tree_node *) jit_tree_chain_next (&%h.generic)")))
!   lang_tree_node
!  {
!   union tree_node GTY ((tag ("0"),
! 			desc ("tree_node_structure (&%h)")))
!     generic;
!   struct lang_identifier GTY ((tag ("1"))) identifier;
  };
  
  /* We don't use language_function.  */
*************** jit_langhook_type_for_mode (machine_mode
*** 1170,1175 ****
--- 1172,1180 ----
  
  recording::type* tree_type_to_jit_type (tree type)
  {
+   gcc_assert (gcc::jit::active_playback_ctxt);
+   gcc::jit::playback::context* ctxt = gcc::jit::active_playback_ctxt;
+ 
    if (TREE_CODE (type) == VECTOR_TYPE)
    {
      tree inner_type = TREE_TYPE (type);
*************** recording::type* tree_type_to_jit_type (
*** 1190,1201 ****
      // FIXME: wrong type.
      return new recording::memento_of_get_type (&target_builtins_ctxt,
  					       GCC_JIT_TYPE_VOID);
-   /* TODO: Remove when we add support for sized floating-point types.  */
-   for (int i = 0; i < NUM_FLOATN_NX_TYPES; i++)
-     if (type == FLOATN_NX_TYPE_NODE (i))
-       // FIXME: wrong type.
-       return new recording::memento_of_get_type (&target_builtins_ctxt,
- 						 GCC_JIT_TYPE_VOID);
    if (type == void_type_node)
      return new recording::memento_of_get_type (&target_builtins_ctxt,
  					       GCC_JIT_TYPE_VOID);
--- 1195,1200 ----
*************** recording::type* tree_type_to_jit_type (
*** 1261,1266 ****
--- 1260,1285 ----
    else if (type == bfloat16_type_node)
      return new recording::memento_of_get_type (&target_builtins_ctxt,
  					       GCC_JIT_TYPE_BFLOAT16);
+   else if (type == float16_type_node)
+   {
+     return new recording::memento_of_get_type (&target_builtins_ctxt,
+ 					      GCC_JIT_TYPE_FLOAT16);
+   }
+   else if (type == float32_type_node)
+   {
+     return new recording::memento_of_get_type (&target_builtins_ctxt,
+ 					      GCC_JIT_TYPE_FLOAT32);
+   }
+   else if (type == float64_type_node)
+   {
+     return new recording::memento_of_get_type (&target_builtins_ctxt,
+ 					      GCC_JIT_TYPE_FLOAT64);
+   }
+   else if (type == float128_type_node)
+   {
+     return new recording::memento_of_get_type (&target_builtins_ctxt,
+ 					      GCC_JIT_TYPE_FLOAT128);
+   }
    else if (type == dfloat128_type_node)
      // FIXME: wrong type.
      return new recording::memento_of_get_type (&target_builtins_ctxt,
*************** recording::type* tree_type_to_jit_type (
*** 1282,1287 ****
--- 1301,1339 ----
        return nullptr;
      return element_type->get_pointer ();
    }
+   else if (type == unsigned_intTI_type_node)
+     return new recording::memento_of_get_type (&target_builtins_ctxt,
+       GCC_JIT_TYPE_UINT128_T);
+   else if (INTEGRAL_TYPE_P (type))
+   {
+     unsigned int size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
+     return target_builtins_ctxt.get_int_type (size, TYPE_UNSIGNED (type));
+   }
+   else if (SCALAR_FLOAT_TYPE_P (type))
+   {
+     unsigned int size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
+     enum gcc_jit_types type;
+     switch (size)
+     {
+       case 2:
+ 	type = GCC_JIT_TYPE_BFLOAT16;
+ 	break;
+       case 4:
+ 	type = GCC_JIT_TYPE_FLOAT;
+ 	break;
+       case 8:
+ 	type = GCC_JIT_TYPE_DOUBLE;
+ 	break;
+       default:
+ 	if (ctxt->get_abort_on_unsupported_target_builtin ())
+ 	{
+ 	  fprintf (stderr, "Unexpected float size: %d\n", size);
+ 	  abort ();
+ 	}
+ 	return NULL;
+     }
+     return new recording::memento_of_get_type (&target_builtins_ctxt, type);
+   }
    else
    {
      // Attempt to find an unqualified type when the current type has qualifiers.
*************** recording::type* tree_type_to_jit_type (
*** 1301,1306 ****
--- 1353,1365 ----
  	}
        }
      }
+ 
+     if (ctxt->get_abort_on_unsupported_target_builtin ())
+     {
+       fprintf (stderr, "Unknown type:\n");
+       debug_tree (type);
+       abort ();
+     }
    }
  
    return NULL;
diff -Nrcpad gcc-16-20251019/gcc/jit/jit-common.h gcc-16-20251026/gcc/jit/jit-common.h
*** gcc-16-20251019/gcc/jit/jit-common.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/jit-common.h	Sun Oct 26 22:32:33 2025
*************** along with GCC; see the file COPYING3.
*** 36,42 ****
  #endif
  #endif
  
! const int NUM_GCC_JIT_TYPES = GCC_JIT_TYPE_BFLOAT16 + 1;
  
  /* This comment is included by the docs.
  
--- 36,42 ----
  #endif
  #endif
  
! const int NUM_GCC_JIT_TYPES = GCC_JIT_TYPE_FLOAT128 + 1;
  
  /* This comment is included by the docs.
  
*************** const int NUM_GCC_JIT_TYPES = GCC_JIT_TY
*** 93,98 ****
--- 93,113 ----
  
     End of comment for inclusion in the docs.  */
  
+ /* See c_tree_chain_next in gcc/c-family/c-common.h.  */
+ static inline tree
+ jit_tree_chain_next (tree t)
+ {
+   /* TREE_CHAIN of a type is TYPE_STUB_DECL, which is different
+      kind of object, never a long chain of nodes.  Prefer
+      TYPE_NEXT_VARIANT for types.  */
+   if (CODE_CONTAINS_STRUCT (TREE_CODE (t), TS_TYPE_COMMON))
+     return TYPE_NEXT_VARIANT (t);
+   /* Otherwise, if there is TREE_CHAIN, return it.  */
+   if (CODE_CONTAINS_STRUCT (TREE_CODE (t), TS_COMMON))
+     return TREE_CHAIN (t);
+   return NULL;
+ }
+ 
  namespace gcc {
  
  namespace jit {
diff -Nrcpad gcc-16-20251019/gcc/jit/jit-playback.cc gcc-16-20251026/gcc/jit/jit-playback.cc
*** gcc-16-20251019/gcc/jit/jit-playback.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/jit-playback.cc	Sun Oct 26 22:32:33 2025
*************** get_tree_node_for_type (enum gcc_jit_typ
*** 295,300 ****
--- 295,333 ----
        return double_type_node;
      case GCC_JIT_TYPE_LONG_DOUBLE:
        return long_double_type_node;
+     case GCC_JIT_TYPE_FLOAT16:
+       if (float16_type_node == NULL || TYPE_PRECISION (float16_type_node) != 16)
+       {
+ 	add_error (NULL, "gcc_jit_types value unsupported on this target: %i",
+ 		   type_);
+ 	return NULL;
+       }
+       return float16_type_node;
+     case GCC_JIT_TYPE_FLOAT32:
+       if (float32_type_node == NULL || TYPE_PRECISION (float32_type_node) != 32)
+       {
+ 	add_error (NULL, "gcc_jit_types value unsupported on this target: %i",
+ 		   type_);
+ 	return NULL;
+       }
+       return float32_type_node;
+     case GCC_JIT_TYPE_FLOAT64:
+       if (float64_type_node == NULL || TYPE_PRECISION (float64_type_node) != 64)
+       {
+ 	add_error (NULL, "gcc_jit_types value unsupported on this target: %i",
+ 		   type_);
+ 	return NULL;
+       }
+       return float64_type_node;
+     case GCC_JIT_TYPE_FLOAT128:
+       if (float128_type_node == NULL
+ 	  || TYPE_PRECISION (float128_type_node) != 128)
+       {
+ 	add_error (NULL, "gcc_jit_types value unsupported on this target: %i",
+ 		   type_);
+ 	return NULL;
+       }
+       return float128_type_node;
  
      case GCC_JIT_TYPE_SIZE_T:
        return size_type_node;
*************** playback::type *
*** 344,350 ****
  playback::context::
  new_array_type (playback::location *loc,
  		playback::type *element_type,
! 		int num_elements)
  {
    gcc_assert (element_type);
  
--- 377,383 ----
  playback::context::
  new_array_type (playback::location *loc,
  		playback::type *element_type,
! 		uint64_t num_elements)
  {
    gcc_assert (element_type);
  
*************** add_error (location *loc, const char *fm
*** 3871,3877 ****
    va_list ap;
    va_start (ap, fmt);
    m_recording_ctxt->add_error_va (loc ? loc->get_recording_loc () : NULL,
! 				  fmt, ap);
    va_end (ap);
  }
  
--- 3904,3910 ----
    va_list ap;
    va_start (ap, fmt);
    m_recording_ctxt->add_error_va (loc ? loc->get_recording_loc () : NULL,
! 				  diagnostics::kind::error, fmt, ap);
    va_end (ap);
  }
  
*************** playback::context::
*** 3883,3895 ****
  add_error_va (location *loc, const char *fmt, va_list ap)
  {
    m_recording_ctxt->add_error_va (loc ? loc->get_recording_loc () : NULL,
! 				  fmt, ap);
  }
  
! /* Report a diagnostic up to the jit context as an error,
!    so that the compilation is treated as a failure.
!    For now, any kind of diagnostic is treated as an error by the jit
!    API.  */
  
  void
  playback::context::
--- 3916,3927 ----
  add_error_va (location *loc, const char *fmt, va_list ap)
  {
    m_recording_ctxt->add_error_va (loc ? loc->get_recording_loc () : NULL,
! 				  diagnostics::kind::error, fmt, ap);
  }
  
! /* Report a diagnostic up to the jit context, so that the
!    compilation is treated as a failure if the diagnostic
!    is an error.  */
  
  void
  playback::context::
*************** add_diagnostic (const char *text,
*** 3914,3920 ****
  						  false);
      }
  
!   m_recording_ctxt->add_error (rec_loc, "%s", text);
  }
  
  /* Dealing with the linemap API.  */
--- 3946,3952 ----
  						  false);
      }
  
!   m_recording_ctxt->add_diagnostic (rec_loc, diagnostic.m_kind, "%s", text);
  }
  
  /* Dealing with the linemap API.  */
diff -Nrcpad gcc-16-20251019/gcc/jit/jit-playback.h gcc-16-20251026/gcc/jit/jit-playback.h
*** gcc-16-20251019/gcc/jit/jit-playback.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/jit-playback.h	Sun Oct 26 22:32:33 2025
*************** public:
*** 88,94 ****
    type *
    new_array_type (location *loc,
  		  type *element_type,
! 		  int num_elements);
  
    field *
    new_field (location *loc,
--- 88,94 ----
    type *
    new_array_type (location *loc,
  		  type *element_type,
! 		  uint64_t num_elements);
  
    field *
    new_field (location *loc,
*************** public:
*** 340,345 ****
--- 340,350 ----
      return info;
    }
  
+   bool get_abort_on_unsupported_target_builtin () const
+   {
+     return m_recording_ctxt->get_abort_on_unsupported_target_builtin ();
+   }
+ 
  private:
    void dump_generated_code ();
  
diff -Nrcpad gcc-16-20251019/gcc/jit/jit-recording.cc gcc-16-20251026/gcc/jit/jit-recording.cc
*** gcc-16-20251019/gcc/jit/jit-recording.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/jit-recording.cc	Sun Oct 26 22:32:33 2025
*************** recording::context::get_int_type (int nu
*** 847,853 ****
  recording::type *
  recording::context::new_array_type (recording::location *loc,
  				    recording::type *element_type,
! 				    int num_elements)
  {
    if (struct_ *s = element_type->dyn_cast_struct ())
      if (!s->get_fields ())
--- 847,853 ----
  recording::type *
  recording::context::new_array_type (recording::location *loc,
  				    recording::type *element_type,
! 				    uint64_t num_elements)
  {
    if (struct_ *s = element_type->dyn_cast_struct ())
      if (!s->get_fields ())
*************** recording::context::set_output_ident (co
*** 1498,1503 ****
--- 1498,1515 ----
    record (memento);
  }
  
+ bool
+ recording::context::get_abort_on_unsupported_target_builtin ()
+ {
+   return m_abort_on_unsupported_target_builtin;
+ }
+ 
+ void
+ recording::context::set_abort_on_unsupported_target_builtin ()
+ {
+   m_abort_on_unsupported_target_builtin = true;
+ }
+ 
  /* Set the given integer option for this context, or add an error if
     it's not recognized.
  
*************** recording::context::populate_target_info
*** 1717,1727 ****
     it to stderr, and add it to the context.  */
  
  void
  recording::context::add_error (location *loc, const char *fmt, ...)
  {
    va_list ap;
    va_start (ap, fmt);
!   add_error_va (loc, fmt, ap);
    va_end (ap);
  }
  
--- 1729,1749 ----
     it to stderr, and add it to the context.  */
  
  void
+ recording::context::add_diagnostic (location *loc,
+   diagnostics::kind diagnostic_kind, const char *fmt, ...)
+ {
+   va_list ap;
+   va_start (ap, fmt);
+   add_error_va (loc, diagnostic_kind, fmt, ap);
+   va_end (ap);
+ }
+ 
+ void
  recording::context::add_error (location *loc, const char *fmt, ...)
  {
    va_list ap;
    va_start (ap, fmt);
!   add_error_va (loc, diagnostics::kind::error, fmt, ap);
    va_end (ap);
  }
  
*************** recording::context::add_error (location
*** 1729,1735 ****
     it to stderr, and add it to the context.  */
  
  void
! recording::context::add_error_va (location *loc, const char *fmt, va_list ap)
  {
    int len;
    char *malloced_msg;
--- 1751,1758 ----
     it to stderr, and add it to the context.  */
  
  void
! recording::context::add_error_va (location *loc,
!   diagnostics::kind diagnostic_kind, const char *fmt, va_list ap)
  {
    int len;
    char *malloced_msg;
*************** recording::context::add_error_va (locati
*** 1750,1756 ****
        has_ownership = true;
      }
    if (get_logger ())
!     get_logger ()->log ("error %i: %s", m_error_count, errmsg);
  
    const char *ctxt_progname =
      get_str_option (GCC_JIT_STR_OPTION_PROGNAME);
--- 1773,1781 ----
        has_ownership = true;
      }
    if (get_logger ())
!     get_logger ()->log ("%s %i: %s",
! 			diagnostics::get_text_for_kind (diagnostic_kind),
! 			m_error_count, errmsg);
  
    const char *ctxt_progname =
      get_str_option (GCC_JIT_STR_OPTION_PROGNAME);
*************** recording::context::add_error_va (locati
*** 1762,1774 ****
    if (print_errors_to_stderr)
    {
      if (loc)
!       fprintf (stderr, "%s: %s: error: %s\n",
  	       ctxt_progname,
  	       loc->get_debug_string (),
  	       errmsg);
      else
!       fprintf (stderr, "%s: error: %s\n",
  	       ctxt_progname,
  	       errmsg);
    }
  
--- 1787,1801 ----
    if (print_errors_to_stderr)
    {
      if (loc)
!       fprintf (stderr, "%s: %s: %s: %s\n",
  	       ctxt_progname,
  	       loc->get_debug_string (),
+ 	       diagnostics::get_text_for_kind (diagnostic_kind),
  	       errmsg);
      else
!       fprintf (stderr, "%s: %s: %s\n",
  	       ctxt_progname,
+ 	       diagnostics::get_text_for_kind (diagnostic_kind),
  	       errmsg);
    }
  
*************** recording::context::add_error_va (locati
*** 1784,1790 ****
    m_last_error_str = const_cast <char *> (errmsg);
    m_owns_last_error_str = has_ownership;
  
!   m_error_count++;
  }
  
  /* Get the message for the first error that occurred on this context, or
--- 1811,1818 ----
    m_last_error_str = const_cast <char *> (errmsg);
    m_owns_last_error_str = has_ownership;
  
!   if (diagnostic_kind == diagnostics::kind::error)
!     m_error_count++;
  }
  
  /* Get the message for the first error that occurred on this context, or
*************** recording::memento_of_get_type::get_size
*** 2634,2639 ****
--- 2662,2679 ----
        m = targetm.c.mode_for_floating_type (TI_LONG_DOUBLE_TYPE);
        size = GET_MODE_PRECISION (m).to_constant ();
        break;
+     case GCC_JIT_TYPE_FLOAT16:
+       size = 16;
+       break;
+     case GCC_JIT_TYPE_FLOAT32:
+       size = 32;
+       break;
+     case GCC_JIT_TYPE_FLOAT64:
+       size = 64;
+       break;
+     case GCC_JIT_TYPE_FLOAT128:
+       size = 128;
+       break;
      case GCC_JIT_TYPE_SIZE_T:
        size = MAX_BITS_PER_WORD;
        break;
*************** recording::memento_of_get_type::derefere
*** 2690,2695 ****
--- 2730,2739 ----
      case GCC_JIT_TYPE_BFLOAT16:
      case GCC_JIT_TYPE_DOUBLE:
      case GCC_JIT_TYPE_LONG_DOUBLE:
+     case GCC_JIT_TYPE_FLOAT16:
+     case GCC_JIT_TYPE_FLOAT32:
+     case GCC_JIT_TYPE_FLOAT64:
+     case GCC_JIT_TYPE_FLOAT128:
      case GCC_JIT_TYPE_COMPLEX_FLOAT:
      case GCC_JIT_TYPE_COMPLEX_DOUBLE:
      case GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE:
*************** recording::memento_of_get_type::is_int (
*** 2755,2760 ****
--- 2799,2808 ----
      case GCC_JIT_TYPE_BFLOAT16:
      case GCC_JIT_TYPE_DOUBLE:
      case GCC_JIT_TYPE_LONG_DOUBLE:
+     case GCC_JIT_TYPE_FLOAT16:
+     case GCC_JIT_TYPE_FLOAT32:
+     case GCC_JIT_TYPE_FLOAT64:
+     case GCC_JIT_TYPE_FLOAT128:
        return false;
  
      case GCC_JIT_TYPE_CONST_CHAR_PTR:
*************** recording::memento_of_get_type::is_signe
*** 2814,2819 ****
--- 2862,2871 ----
      case GCC_JIT_TYPE_BFLOAT16:
      case GCC_JIT_TYPE_DOUBLE:
      case GCC_JIT_TYPE_LONG_DOUBLE:
+     case GCC_JIT_TYPE_FLOAT16:
+     case GCC_JIT_TYPE_FLOAT32:
+     case GCC_JIT_TYPE_FLOAT64:
+     case GCC_JIT_TYPE_FLOAT128:
  
      case GCC_JIT_TYPE_CONST_CHAR_PTR:
  
*************** recording::memento_of_get_type::is_float
*** 2874,2879 ****
--- 2926,2935 ----
      case GCC_JIT_TYPE_BFLOAT16:
      case GCC_JIT_TYPE_DOUBLE:
      case GCC_JIT_TYPE_LONG_DOUBLE:
+     case GCC_JIT_TYPE_FLOAT16:
+     case GCC_JIT_TYPE_FLOAT32:
+     case GCC_JIT_TYPE_FLOAT64:
+     case GCC_JIT_TYPE_FLOAT128:
        return true;
  
      case GCC_JIT_TYPE_CONST_CHAR_PTR:
*************** recording::memento_of_get_type::is_bool
*** 2938,2943 ****
--- 2994,3003 ----
      case GCC_JIT_TYPE_BFLOAT16:
      case GCC_JIT_TYPE_DOUBLE:
      case GCC_JIT_TYPE_LONG_DOUBLE:
+     case GCC_JIT_TYPE_FLOAT16:
+     case GCC_JIT_TYPE_FLOAT32:
+     case GCC_JIT_TYPE_FLOAT64:
+     case GCC_JIT_TYPE_FLOAT128:
        return false;
  
      case GCC_JIT_TYPE_CONST_CHAR_PTR:
*************** static const char * const get_type_strin
*** 3015,3022 ****
    "__int32_t",    /* GCC_JIT_TYPE_INT32_T */
    "__int64_t",    /* GCC_JIT_TYPE_INT64_T */
    "__int128_t",   /* GCC_JIT_TYPE_INT128_T */
! 
!   "bfloat16", /* GCC_JIT_TYPE_BFLOAT16 */
  };
  
  /* Implementation of recording::memento::make_debug_string for
--- 3075,3085 ----
    "__int32_t",    /* GCC_JIT_TYPE_INT32_T */
    "__int64_t",    /* GCC_JIT_TYPE_INT64_T */
    "__int128_t",   /* GCC_JIT_TYPE_INT128_T */
!   "bfloat16",     /* GCC_JIT_TYPE_BFLOAT16 */
!   "_Float16",     /* GCC_JIT_TYPE_FLOAT16 */
!   "_Float32",     /* GCC_JIT_TYPE_FLOAT32 */
!   "_Float64",     /* GCC_JIT_TYPE_FLOAT64 */
!   "__float128",   /* GCC_JIT_TYPE_FLOAT128 */
  };
  
  /* Implementation of recording::memento::make_debug_string for
*************** static const char * const get_type_enum_
*** 3063,3068 ****
--- 3126,3135 ----
    "GCC_JIT_TYPE_INT64_T",
    "GCC_JIT_TYPE_INT128_T",
    "GCC_JIT_TYPE_BFLOAT16",
+   "GCC_JIT_TYPE_FLOAT16",
+   "GCC_JIT_TYPE_FLOAT32",
+   "GCC_JIT_TYPE_FLOAT64",
+   "GCC_JIT_TYPE_FLOAT128",
  };
  
  void
*************** recording::string *
*** 3363,3369 ****
  recording::array_type::make_debug_string ()
  {
    return string::from_printf (m_ctxt,
! 			      "%s[%d]",
  			      m_element_type->get_debug_string (),
  			      m_num_elements);
  }
--- 3430,3436 ----
  recording::array_type::make_debug_string ()
  {
    return string::from_printf (m_ctxt,
! 			      "%s[%" PRIu64 "]",
  			      m_element_type->get_debug_string (),
  			      m_num_elements);
  }
*************** recording::array_type::write_reproducer
*** 3376,3385 ****
  {
    const char *id = r.make_identifier (this, "array_type");
    r.write ("  gcc_jit_type *%s =\n"
! 	   "    gcc_jit_context_new_array_type (%s,\n"
! 	   "                                    %s, /* gcc_jit_location *loc */\n"
! 	   "                                    %s, /* gcc_jit_type *element_type */\n"
! 	   "                                    %i); /* int num_elements */\n",
  	   id,
  	   r.get_identifier (get_context ()),
  	   r.get_identifier (m_loc),
--- 3443,3452 ----
  {
    const char *id = r.make_identifier (this, "array_type");
    r.write ("  gcc_jit_type *%s =\n"
! 	   "    gcc_jit_context_new_array_type_u64 (%s,\n"
! 	   "                                        %s, /* gcc_jit_location *loc */\n"
! 	   "                                        %s, /* gcc_jit_type *element_type */\n"
! 	   "                                        %" PRIu64 "); /* int num_elements */\n",
  	   id,
  	   r.get_identifier (get_context ()),
  	   r.get_identifier (m_loc),
diff -Nrcpad gcc-16-20251019/gcc/jit/jit-recording.h gcc-16-20251026/gcc/jit/jit-recording.h
*** gcc-16-20251019/gcc/jit/jit-recording.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/jit-recording.h	Sun Oct 26 22:32:33 2025
*************** along with GCC; see the file COPYING3.
*** 24,29 ****
--- 24,30 ----
  #include "jit-common.h"
  #include "jit-logging.h"
  #include "jit-target.h"
+ #include "diagnostic-core.h"
  #include "libgccjit.h"
  
  #include <string>
*************** public:
*** 105,111 ****
    type *
    new_array_type (location *loc,
  		  type *element_type,
! 		  int num_elements);
  
    field *
    new_field (location *loc,
--- 106,112 ----
    type *
    new_array_type (location *loc,
  		  type *element_type,
! 		  uint64_t num_elements);
  
    field *
    new_field (location *loc,
*************** public:
*** 270,275 ****
--- 271,282 ----
    void
    set_output_ident (const char *output_ident);
  
+   bool
+   get_abort_on_unsupported_target_builtin ();
+ 
+   void
+   set_abort_on_unsupported_target_builtin ();
+ 
    void
    set_int_option (enum gcc_jit_int_option opt,
  		  int value);
*************** public:
*** 340,351 ****
    }
  
    void
    add_error (location *loc, const char *fmt, ...)
        GNU_PRINTF(3, 4);
  
    void
!   add_error_va (location *loc, const char *fmt, va_list ap)
!       GNU_PRINTF(3, 0);
  
    const char *
    get_first_error () const;
--- 347,365 ----
    }
  
    void
+   add_diagnostic (location *loc, enum diagnostics::kind diagnostic_kind,
+ 		  const char *fmt, ...)
+       GNU_PRINTF (4, 5);
+ 
+   void
    add_error (location *loc, const char *fmt, ...)
        GNU_PRINTF(3, 4);
  
    void
!   add_error_va (location *loc, enum diagnostics::kind diagnostic_kind,
! 		const char *fmt,
! 		va_list ap)
!       GNU_PRINTF (4, 0);
  
    const char *
    get_first_error () const;
*************** private:
*** 424,429 ****
--- 438,444 ----
    type *m_FILE_type;
  
    bool m_populated_target_info = false;
+   bool m_abort_on_unsupported_target_builtin = false;
  
    builtins_manager *m_builtins_manager; // lazily created
  
*************** class array_type : public type
*** 1030,1036 ****
    array_type (context *ctxt,
  	      location *loc,
  	      type *element_type,
! 	      int num_elements)
    : type (ctxt),
      m_loc (loc),
      m_element_type (element_type),
--- 1045,1051 ----
    array_type (context *ctxt,
  	      location *loc,
  	      type *element_type,
! 	      uint64_t num_elements)
    : type (ctxt),
      m_loc (loc),
      m_element_type (element_type),
*************** class array_type : public type
*** 1063,1069 ****
    bool is_bool () const final override { return false; }
    type *is_pointer () final override { return NULL; }
    type *is_array () final override { return m_element_type; }
!   int num_elements () { return m_num_elements; }
    bool is_signed () const final override { return false; }
  
    void replay_into (replayer *) final override;
--- 1078,1084 ----
    bool is_bool () const final override { return false; }
    type *is_pointer () final override { return NULL; }
    type *is_array () final override { return m_element_type; }
!   uint64_t num_elements () { return m_num_elements; }
    bool is_signed () const final override { return false; }
  
    void replay_into (replayer *) final override;
*************** class array_type : public type
*** 1075,1081 ****
   private:
    location *m_loc;
    type *m_element_type;
!   int m_num_elements;
  };
  
  class function_type : public type
--- 1090,1096 ----
   private:
    location *m_loc;
    type *m_element_type;
!   uint64_t m_num_elements;
  };
  
  class function_type : public type
diff -Nrcpad gcc-16-20251019/gcc/jit/libgccjit.cc gcc-16-20251026/gcc/jit/libgccjit.cc
*** gcc-16-20251019/gcc/jit/libgccjit.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/libgccjit.cc	Sun Oct 26 22:32:33 2025
*************** jit_error (gcc::jit::recording::context
*** 342,348 ****
    va_start (ap, fmt);
  
    if (ctxt)
!     ctxt->add_error_va (loc, fmt, ap);
    else
      {
        /* No context?  Send to stderr.  */
--- 342,348 ----
    va_start (ap, fmt);
  
    if (ctxt)
!     ctxt->add_error_va (loc, diagnostics::kind::error, fmt, ap);
    else
      {
        /* No context?  Send to stderr.  */
*************** gcc_jit_context_new_array_type (gcc_jit_
*** 784,794 ****
  				gcc_jit_type *element_type,
  				int num_elements)
  {
    RETURN_NULL_IF_FAIL (ctxt, NULL, loc, "NULL context");
    JIT_LOG_FUNC (ctxt->get_logger ());
    /* LOC can be NULL.  */
    RETURN_NULL_IF_FAIL (element_type, ctxt, loc, "NULL type");
-   RETURN_NULL_IF_FAIL (num_elements >= 0, ctxt, NULL, "negative size");
    RETURN_NULL_IF_FAIL (!element_type->is_void (), ctxt, loc,
  		       "void type for elements");
  
--- 784,804 ----
  				gcc_jit_type *element_type,
  				int num_elements)
  {
+   RETURN_NULL_IF_FAIL (num_elements >= 0, ctxt, NULL, "negative size");
+   return gcc_jit_context_new_array_type_u64 (ctxt, loc, element_type,
+     (uint64_t) num_elements);
+ }
+ 
+ gcc_jit_type *
+ gcc_jit_context_new_array_type_u64 (gcc_jit_context *ctxt,
+ 					      gcc_jit_location *loc,
+ 					      gcc_jit_type *element_type,
+ 					      uint64_t num_elements)
+ {
    RETURN_NULL_IF_FAIL (ctxt, NULL, loc, "NULL context");
    JIT_LOG_FUNC (ctxt->get_logger ());
    /* LOC can be NULL.  */
    RETURN_NULL_IF_FAIL (element_type, ctxt, loc, "NULL type");
    RETURN_NULL_IF_FAIL (!element_type->is_void (), ctxt, loc,
  		       "void type for elements");
  
*************** gcc_jit_target_info_supports_target_depe
*** 3951,3956 ****
--- 3961,3974 ----
      != info->m_supported_target_dependent_types.end ();
  }
  
+ void
+ gcc_jit_context_set_abort_on_unsupported_target_builtin (gcc_jit_context *ctxt)
+ {
+   RETURN_IF_FAIL (ctxt, NULL, NULL, "NULL context");
+ 
+   ctxt->set_abort_on_unsupported_target_builtin ();
+ }
+ 
  /* Public entrypoint.  See description in libgccjit.h.
  
     After error-checking, the real work is done by the
diff -Nrcpad gcc-16-20251019/gcc/jit/libgccjit.exports gcc-16-20251026/gcc/jit/libgccjit.exports
*** gcc-16-20251019/gcc/jit/libgccjit.exports	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/libgccjit.exports	Sun Oct 26 22:32:33 2025
*************** _gcc_jit_global_set_readonly
*** 239,254 ****
  # LIBGCCJIT_ABI_30
  _gcc_jit_context_convert_vector
  
! # LIBGCCJIT_ABI_31 
  _gcc_jit_context_new_vector_access
  _gcc_jit_context_new_rvalue_vector_perm
  
! # LIBGCCJIT_ABI_32 
  _gcc_jit_context_get_target_builtin_function
  
! # LIBGCCJIT_ABI_33 
  _gcc_jit_function_new_temp
  
! # LIBGCCJIT_ABI_34 
  _gcc_jit_context_set_output_ident
  
--- 239,266 ----
  # LIBGCCJIT_ABI_30
  _gcc_jit_context_convert_vector
  
! # LIBGCCJIT_ABI_31
  _gcc_jit_context_new_vector_access
  _gcc_jit_context_new_rvalue_vector_perm
  
! # LIBGCCJIT_ABI_32
  _gcc_jit_context_get_target_builtin_function
  
! # LIBGCCJIT_ABI_33
  _gcc_jit_function_new_temp
  
! # LIBGCCJIT_ABI_34
  _gcc_jit_context_set_output_ident
  
+ # LIBGCCJIT_ABI_35
+ _gcc_jit_context_get_target_info
+ _gcc_jit_target_info_release
+ _gcc_jit_target_info_cpu_supports
+ _gcc_jit_target_info_arch
+ _gcc_jit_target_info_supports_target_dependent_type
+ 
+ # LIBGCCJIT_ABI_36
+ _gcc_jit_context_set_abort_on_unsupported_target_builtin
+ 
+ # LIBGCCJIT_ABI_37
+ _gcc_jit_context_new_array_type_u64
diff -Nrcpad gcc-16-20251019/gcc/jit/libgccjit.h gcc-16-20251026/gcc/jit/libgccjit.h
*** gcc-16-20251019/gcc/jit/libgccjit.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/libgccjit.h	Sun Oct 26 22:32:33 2025
*************** along with GCC; see the file COPYING3.
*** 20,25 ****
--- 20,26 ----
  #ifndef LIBGCCJIT_H
  #define LIBGCCJIT_H
  
+ #include <stdint.h>
  #include <stdio.h>
  #ifdef __has_include
  #if __has_include (<sys/types.h>)
*************** enum gcc_jit_types
*** 618,623 ****
--- 619,628 ----
    GCC_JIT_TYPE_INT128_T,
  
    GCC_JIT_TYPE_BFLOAT16,
+   GCC_JIT_TYPE_FLOAT16,
+   GCC_JIT_TYPE_FLOAT32,
+   GCC_JIT_TYPE_FLOAT64,
+   GCC_JIT_TYPE_FLOAT128,
  };
  
  extern gcc_jit_type *
*************** gcc_jit_context_new_array_type (gcc_jit_
*** 676,681 ****
--- 681,700 ----
  				gcc_jit_type *element_type,
  				int num_elements);
  
+ /* Given type "T", get type "T[N]" (for a constant N).
+ 
+    This API entrypoint was added in LIBGCCJIT_ABI_37; you can test for its
+    presence using
+      #ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_array_type_u64
+ */
+ extern gcc_jit_type *
+ gcc_jit_context_new_array_type_u64 (gcc_jit_context *ctxt,
+ 				    gcc_jit_location *loc,
+ 				    gcc_jit_type *element_type,
+ 				    uint64_t num_elements);
+ 
+ #define LIBGCCJIT_HAVE_gcc_jit_context_new_array_type_u64
+ 
  /* Struct-handling.  */
  
  /* Create a field, for use within a struct or union.  */
*************** gcc_jit_context_set_output_ident (gcc_ji
*** 2216,2221 ****
--- 2235,2245 ----
  
  #define LIBGCCJIT_HAVE_gcc_jit_context_set_output_ident
  
+ extern void
+ gcc_jit_context_set_abort_on_unsupported_target_builtin (gcc_jit_context *ctxt);
+ 
+ #define LIBGCCJIT_HAVE_gcc_jit_context_set_abort_on_unsupported_target_builtin
+ 
  #ifdef __cplusplus
  }
  #endif /* __cplusplus */
diff -Nrcpad gcc-16-20251019/gcc/jit/libgccjit.map gcc-16-20251026/gcc/jit/libgccjit.map
*** gcc-16-20251019/gcc/jit/libgccjit.map	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/jit/libgccjit.map	Sun Oct 26 22:32:33 2025
*************** LIBGCCJIT_ABI_35 {
*** 334,336 ****
--- 334,346 ----
      gcc_jit_target_info_arch;
      gcc_jit_target_info_supports_target_dependent_type;
  } LIBGCCJIT_ABI_34;
+ 
+ LIBGCCJIT_ABI_36 {
+   global:
+     gcc_jit_context_set_abort_on_unsupported_target_builtin;
+ } LIBGCCJIT_ABI_35;
+ 
+ LIBGCCJIT_ABI_37 {
+   global:
+     gcc_jit_context_new_array_type_u64;
+ } LIBGCCJIT_ABI_36;
diff -Nrcpad gcc-16-20251019/gcc/m2/ChangeLog gcc-16-20251026/gcc/m2/ChangeLog
*** gcc-16-20251019/gcc/m2/ChangeLog	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/ChangeLog	Sun Oct 26 22:32:33 2025
***************
*** 1,3 ****
--- 1,88 ----
+ 2025-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122407
+ 	* gm2-compiler/FilterError.def (Copyright): Use correct
+ 	licence.
+ 	* gm2-compiler/FilterError.mod (Copyright): Ditto.
+ 	* gm2-compiler/M2Quads.mod (BuildNewProcedure): Rewrite.
+ 	(BuildIncProcedure): Ditto.
+ 	(BuildDecProcedure): Ditto.
+ 	(BuildInclProcedure): Ditto.
+ 	(BuildExclProcedure): Ditto.
+ 	(BuildAbsFunction): Ditto.
+ 	(BuildCapFunction): Ditto.
+ 	(BuildChrFunction): Ditto.
+ 	(BuildOrdFunction): Ditto.
+ 	(BuildIntFunction): Ditto.
+ 	(BuildMinFunction): Ditto.
+ 	(BuildMaxFunction): Ditto.
+ 	(BuildTruncFunction): Ditto.
+ 	(BuildTBitSizeFunction): Ditto.
+ 	(BuildTSizeFunction): Ditto.
+ 	(BuildSizeFunction): Ditto.
+ 
+ 2025-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122407
+ 	* Make-lang.in (GM2-LIBS-BOOT-DEFS): Add BinDict.def.
+ 	(GM2-LIBS-BOOT-MODS): Add BinDict.mod.
+ 	(GM2-COMP-BOOT-DEFS): Add FilterError.def.
+ 	(GM2-COMP-BOOT-MODS): Add FilterError.mod.
+ 	(GM2-LIBS-DEFS): Add BinDict.def.
+ 	(GM2-LIBS-MODS): Add BinDict.mod.
+ 	* gm2-compiler/M2Error.def (KillError): New procedure.
+ 	* gm2-compiler/M2Error.mod (WriteFormat3): Reformat.
+ 	(NewError): Rewrite and call AddToList.
+ 	(AddToList): New procedure.
+ 	(SubFromList): Ditto.
+ 	(WipeReferences): Ditto.
+ 	(KillError): Ditto.
+ 	* gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Return
+ 	caret if all token positions are identical.
+ 	* gm2-compiler/M2MetaError.mod (KillError): Import.
+ 	(FilterError): Import.
+ 	(FilterUnknown): New global.
+ 	(initErrorBlock): Initialize symcause and token.
+ 	(push): Capitalize comments.
+ 	(pop): Copy symcause to toblock if discovered.
+ 	(doError): Add parameter sym.
+ 	(defaultError): Assign token if discovered.
+ 	Pass NulSym to doError.
+ 	(updateTokSym): New procedure.
+ 	(chooseError): Call updateTokSym.
+ 	(doErrorScopeModule): Pass sym to doError.
+ 	(doErrorScopeForward): Ditto.
+ 	(doErrorScopeMod): Ditto.
+ 	(doErrorScopeFor): Ditto.
+ 	(doErrorScopeDefinition): Ditto.
+ 	(doErrorScopeDef): Ditto.
+ 	(doErrorScopeProc): Ditto.
+ 	(used): Pass sym[bol] to doError.
+ 	(op): Assign symcause when encountering
+ 	an error, warning or note.
+ 	(MetaErrorStringT1): Rewrite.
+ 	(MetaErrorStringT2): Ditto.
+ 	(MetaErrorStringT3): Ditto.
+ 	(MetaErrorStringT4): Ditto.
+ 	(isUniqueError): New procedure function.
+ 	(wrapErrors): Rewrite.
+ 	(FilterUnknown): Initialize.
+ 	* gm2-compiler/M2Quads.mod (BuildTSizeFunction): Add spell check
+ 	hint specifier.
+ 	* gm2-compiler/FilterError.def: New file.
+ 	* gm2-compiler/FilterError.mod: New file.
+ 	* gm2-libs/BinDict.def: New file.
+ 	* gm2-libs/BinDict.mod: New file.
+ 
+ 2025-10-19  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122333
+ 	* gm2-compiler/M2MetaError.mod (JoinSentances): Remove
+ 	unused variable.
+ 	* gm2-gcc/m2spellcheck.cc (m2spellcheck_InitCandidates): Rewrite.
+ 	(KillCandidates): Deallocate auto_vec candidates_array.
+ 	(candidates_array_vec_t): New declaration.
+ 
  2025-10-13  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	PR modula2/122241
diff -Nrcpad gcc-16-20251019/gcc/m2/Make-lang.in gcc-16-20251026/gcc/m2/Make-lang.in
*** gcc-16-20251019/gcc/m2/Make-lang.in	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/Make-lang.in	Sun Oct 26 22:32:33 2025
*************** GM2-LIBS-BOOT-DEFS = \
*** 671,676 ****
--- 671,677 ----
     ASCII.def \
     Args.def \
     Assertion.def \
+    BinDict.def \
     Break.def \
     CmdArgs.def \
     Debug.def \
*************** GM2-LIBS-BOOT-MODS = \
*** 718,723 ****
--- 719,725 ----
     ASCII.mod \
     Args.mod \
     Assertion.mod \
+    BinDict.mod \
     Break.mod \
     CmdArgs.mod \
     Debug.mod \
*************** GM2-LIBS-BOOT-CC = \
*** 769,774 ****
--- 771,777 ----
  # Definition modules for the front end found in gm2-compiler.
  
  GM2-COMP-BOOT-DEFS = \
+    FilterError.def \
     FifoQueue.def \
     Lists.def \
     M2ALU.def \
*************** GM2-COMP-BOOT-DEFS = \
*** 845,850 ****
--- 848,854 ----
  # Implementation modules for the front end found in gm2-compiler.
  
  GM2-COMP-BOOT-MODS = \
+    FilterError.mod \
     FifoQueue.mod \
     Lists.mod \
     Lists.mod \
*************** GM2-LIBS-DEFS = \
*** 946,951 ****
--- 950,956 ----
     ASCII.def \
     Args.def \
     Assertion.def \
+    BinDict.def \
     Break.def \
     Builtins.def \
     COROUTINES.def \
*************** GM2-LIBS-MODS = \
*** 1000,1005 ****
--- 1005,1011 ----
     ASCII.mod \
     Args.mod \
     Assertion.mod \
+    BinDict.mod \
     Break.mod \
     Builtins.mod \
     COROUTINES.mod \
*************** GM2-LIBS-CC = \
*** 1062,1067 ****
--- 1068,1074 ----
  # cc1gm2$(exeext) uses these definition modules found in the gm2-compiler directory.
  
  GM2-COMP-DEFS = \
+    FilterError.def \
     FifoQueue.def \
     Lists.def \
     M2ALU.def \
*************** GM2-COMP-DEFS = \
*** 1135,1140 ****
--- 1142,1148 ----
  # cc1gm2$(exeext) uses these implementation modules found in the gm2-compiler directory.
  
  GM2-COMP-MODS = \
+    FilterError.mod \
     FifoQueue.mod \
     Lists.mod \
     M2ALU.mod \
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/FilterError.def gcc-16-20251026/gcc/m2/gm2-compiler/FilterError.def
*** gcc-16-20251019/gcc/m2/gm2-compiler/FilterError.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/m2/gm2-compiler/FilterError.def	Sun Oct 26 22:32:33 2025
***************
*** 0 ****
--- 1,56 ----
+ (* FilterError.def provides a filter for token and symbol.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 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 GNU Modula-2; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE FilterError ;
+ 
+ TYPE
+    Filter ;
+ 
+ 
+ (*
+    Init - return a new empty Filter.
+ *)
+ 
+ PROCEDURE Init () : Filter ;
+ 
+ 
+ (*
+    AddSymError - adds the pair sym token to the filter.
+ *)
+ 
+ PROCEDURE AddSymError (filter: Filter;
+                        sym: CARDINAL; token: CARDINAL) ;
+ 
+ (*
+    IsSymError - return TRUE if the pair sym token have been entered in the filter.
+ *)
+ 
+ PROCEDURE IsSymError (filter: Filter; sym: CARDINAL; token: CARDINAL) : BOOLEAN ;
+ 
+ 
+ (*
+    Kill - deletes the entire filter tree.
+ *)
+ 
+ PROCEDURE Kill (VAR filter: Filter) ;
+ 
+ 
+ END FilterError.
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/FilterError.mod gcc-16-20251026/gcc/m2/gm2-compiler/FilterError.mod
*** gcc-16-20251019/gcc/m2/gm2-compiler/FilterError.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/m2/gm2-compiler/FilterError.mod	Sun Oct 26 22:32:33 2025
***************
*** 0 ****
--- 1,224 ----
+ (* FilterError.mod implements a filter for token and symbol.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 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 GNU Modula-2; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE FilterError ;
+ 
+ (* The purpose of this module is to be able to filter out multiple error
+    reports refering to the same symbol and token.  This is achieved by
+    maintaining a dictionary of symbols each pointing to a dictionary of
+    tokens.  *)
+ 
+ FROM SYSTEM IMPORT ADDRESS, ADR ;
+ FROM Storage IMPORT DEALLOCATE, ALLOCATE ;
+ FROM BinDict IMPORT Node ;
+ FROM Assertion IMPORT Assert ;
+ FROM libc IMPORT printf ;
+ 
+ IMPORT BinDict ;
+ 
+ CONST
+    Debugging = FALSE ;
+ 
+ TYPE
+    Filter = POINTER TO RECORD
+                           Sym2Dict: BinDict.Dictionary ;
+                        END ;
+ 
+    PtrToCardinal = POINTER TO CARDINAL ;
+    PtrToBoolean = POINTER TO BOOLEAN ;
+ 
+ 
+ (*
+    Init - return a new empty Filter.
+ *)
+ 
+ PROCEDURE Init () : Filter ;
+ VAR
+    filter: Filter ;
+ BEGIN
+    NEW (filter) ;
+    WITH filter^ DO
+       Sym2Dict := BinDict.Init (CompareCardinal, DeleteCardinal, DeleteTree) ;
+    END ;
+    RETURN filter
+ END Init ;
+ 
+ 
+ (*
+    Kill - deletes the entire filter tree and all contents.
+ *)
+ 
+ PROCEDURE Kill (VAR filter: Filter) ;
+ BEGIN
+    BinDict.Kill (filter^.Sym2Dict) ;
+    DISPOSE (filter)
+ END Kill ;
+ 
+ 
+ (*
+    CompareCardinal - return an INTEGER representing the comparison
+                      between left and right.
+                      0 if left == right, -1 if left < right,
+                     +1 if left > right.
+ *)
+ 
+ PROCEDURE CompareCardinal (left, right: PtrToCardinal) : INTEGER ;
+ BEGIN
+    IF left^ = right^
+    THEN
+       RETURN 0
+    ELSIF left^ < right^
+    THEN
+       RETURN -1
+    ELSE
+       RETURN 1
+    END
+ END CompareCardinal ;
+ 
+ 
+ (*
+    DeleteCardinal - deallocate the cardinal key.
+ *)
+ 
+ PROCEDURE DeleteCardinal (card: PtrToCardinal) ;
+ BEGIN
+    DISPOSE (card)
+ END DeleteCardinal ;
+ 
+ 
+ (*
+    DeleteBoolean - deallocate the boolean value.
+ *)
+ 
+ PROCEDURE DeleteBoolean (boolean: PtrToBoolean) ;
+ BEGIN
+    DISPOSE (boolean)
+ END DeleteBoolean ;
+ 
+ 
+ (*
+    DeleteTree - delete tree and all its contents.
+ *)
+ 
+ PROCEDURE DeleteTree (ErrorTree: BinDict.Dictionary) ;
+ BEGIN
+    BinDict.Kill (ErrorTree)
+ END DeleteTree ;
+ 
+ 
+ (*
+    AddSymError - adds the pair sym token to the filter.
+ *)
+ 
+ PROCEDURE AddSymError (filter: Filter;
+                        sym: CARDINAL; token: CARDINAL) ;
+ BEGIN
+    IF NOT IsSymError (filter, sym, token)
+    THEN
+       AddNewEntry (filter, sym, token, TRUE)
+    END
+ END AddSymError ;
+ 
+ 
+ (*
+    AddNewEntry - adds a new value to the sym token pair.
+ *)
+ 
+ PROCEDURE AddNewEntry (filter: Filter; sym: CARDINAL;
+                        token: CARDINAL; value: BOOLEAN) ;
+ VAR
+    TokenTree : BinDict.Dictionary ;
+    ptrToToken,
+    ptrToCard : PtrToCardinal ;
+    ptrToBool : PtrToBoolean ;
+ BEGIN
+    TokenTree := BinDict.Get (filter^.Sym2Dict, ADR (sym)) ;
+    IF TokenTree = NIL
+    THEN
+       TokenTree := BinDict.Init (CompareCardinal, DeleteCardinal, DeleteBoolean) ;
+       NEW (ptrToCard) ;
+       ptrToCard^ := sym ;
+       BinDict.Insert (filter^.Sym2Dict, ptrToCard, TokenTree) ;
+       Assert (BinDict.Get (filter^.Sym2Dict, ptrToCard) = TokenTree)
+    END ;
+    NEW (ptrToBool) ;
+    ptrToBool^ := value ;
+    NEW (ptrToToken) ;
+    ptrToToken^ := token ;
+    IF Debugging
+    THEN
+       printf ("adding sym %d: key = 0x%x, value = 0x%x  (%d, %d)\n",
+               sym, ptrToToken, ptrToBool, ptrToToken^, ptrToBool^)
+    END ;
+    BinDict.Insert (TokenTree, ptrToToken, ptrToBool) ;
+    Assert (BinDict.Get (TokenTree, ptrToToken) = ptrToBool) ;
+    IF Debugging
+    THEN
+       BinDict.PostOrder (TokenTree, PrintNode)
+    END
+ END AddNewEntry ;
+ 
+ 
+ (*
+    PrintNode -
+ *)
+ 
+ PROCEDURE PrintNode (node: Node) ;
+ VAR
+    ptrToCard : PtrToCardinal ;
+    ptrToBool : PtrToBoolean ;
+ BEGIN
+    ptrToCard := BinDict.Key (node) ;
+    ptrToBool := BinDict.Value (node) ;
+    printf ("key = 0x%x, value = 0x%x  (%d, %d)\n",
+             ptrToCard, ptrToBool, ptrToCard^, ptrToBool^)
+ END PrintNode ;
+ 
+ 
+ (*
+    IsSymError - return TRUE if the pair sym token have been
+                 entered in the filter.
+ *)
+ 
+ PROCEDURE IsSymError (filter: Filter; sym: CARDINAL; token: CARDINAL) : BOOLEAN ;
+ VAR
+    ptb      : PtrToBoolean ;
+    TokenTree: BinDict.Dictionary ;
+ BEGIN
+    TokenTree := BinDict.Get (filter^.Sym2Dict, ADR (sym)) ;
+    (* RETURN (TokenTree # NIL) ; *)
+    IF TokenTree = NIL
+    THEN
+       (* No symbol registered, therefore FALSE.  *)
+       RETURN FALSE
+    END ;
+    ptb := BinDict.Get (TokenTree, ADR (token)) ;
+    IF ptb = NIL
+    THEN
+       (* The symbol was registered, but no entry for token, therefore FALSE.  *)
+       RETURN FALSE
+    END ;
+    (* Found symbol and token so we return the result.  *)
+    RETURN ptb^
+ END IsSymError ;
+ 
+ 
+ END FilterError.
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/M2Error.def gcc-16-20251026/gcc/m2/gm2-compiler/M2Error.def
*** gcc-16-20251019/gcc/m2/gm2-compiler/M2Error.def	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/gm2-compiler/M2Error.def	Sun Oct 26 22:32:33 2025
*************** PROCEDURE MoveError (e: Error; AtTokenNo
*** 130,135 ****
--- 130,143 ----
  
  
  (*
+    KillError - remove error e from the error list and deallocate
+                memory associated with e.
+ *)
+ 
+ PROCEDURE KillError (VAR e: Error) ;
+ 
+ 
+ (*
     SetColor - informs the error module that this error will have had colors
                assigned to it.  If an error is issued without colors assigned
                then the default colors will be assigned to the legacy error
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/M2Error.mod gcc-16-20251026/gcc/m2/gm2-compiler/M2Error.mod
*** gcc-16-20251019/gcc/m2/gm2-compiler/M2Error.mod	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/gm2-compiler/M2Error.mod	Sun Oct 26 22:32:33 2025
*************** PROCEDURE WriteFormat3 (a: ARRAY OF CHAR
*** 369,376 ****
  VAR
     e: Error ;
  BEGIN
!    e := NewError(GetTokenNo()) ;
!    e^.s := DoFormat3(a, w1, w2, w3)
  END WriteFormat3 ;
  
  
--- 369,376 ----
  VAR
     e: Error ;
  BEGIN
!    e := NewError (GetTokenNo ()) ;
!    e^.s := DoFormat3 (a, w1, w2, w3)
  END WriteFormat3 ;
  
  
*************** END MoveError ;
*** 394,400 ****
  
  PROCEDURE NewError (AtTokenNo: CARDINAL) : Error ;
  VAR
!    e, f: Error ;
  BEGIN
     IF AtTokenNo = UnknownTokenNo
     THEN
--- 394,400 ----
  
  PROCEDURE NewError (AtTokenNo: CARDINAL) : Error ;
  VAR
!    e: Error ;
  BEGIN
     IF AtTokenNo = UnknownTokenNo
     THEN
*************** BEGIN
*** 414,431 ****
     END ;
     (* Assert (scopeKind # noscope) ;  *)
     e^.scope := currentScope ;
!    IF (head=NIL) OR (head^.token>AtTokenNo)
!    THEN
!       e^.next := head ;
!       head    := e
!    ELSE
!       f := head ;
!       WHILE (f^.next#NIL) AND (f^.next^.token<AtTokenNo) DO
!          f := f^.next
!       END ;
!       e^.next := f^.next ;
!       f^.next := e
!    END ;
     RETURN( e )
  END NewError ;
  
--- 414,420 ----
     END ;
     (* Assert (scopeKind # noscope) ;  *)
     e^.scope := currentScope ;
!    AddToList (e) ;
     RETURN( e )
  END NewError ;
  
*************** END NewNote ;
*** 463,468 ****
--- 452,546 ----
  
  
  (*
+    AddToList - adds error e to the list of errors in token order.
+ *)
+ 
+ PROCEDURE AddToList (e: Error) ;
+ VAR
+    f: Error ;
+ BEGIN
+    IF (head=NIL) OR (head^.token > e^.token)
+    THEN
+       e^.next := head ;
+       head    := e
+    ELSE
+       f := head ;
+       WHILE (f^.next # NIL) AND (f^.next^.token < e^.token) DO
+          f := f^.next
+       END ;
+       e^.next := f^.next ;
+       f^.next := e
+    END ;
+ END AddToList ;
+ 
+ 
+ (*
+    SubFromList - remove e from the global list.
+ *)
+ 
+ PROCEDURE SubFromList (e: Error) ;
+ VAR
+    f: Error ;
+ BEGIN
+    IF head = e
+    THEN
+       head := head^.next
+    ELSE
+       f := head ;
+       WHILE (f # NIL) AND (f^.next # e) DO
+          f := f^.next
+       END ;
+       IF (f # NIL) AND (f^.next = e)
+       THEN
+          f^.next := e^.next
+       ELSE
+          InternalError ('expecting e to be on the global list')
+       END
+    END ;
+    DISPOSE (e)
+ END SubFromList ;
+ 
+ 
+ (*
+    WipeReferences - remove any reference to e from the global list.
+ *)
+ 
+ PROCEDURE WipeReferences (e: Error) ;
+ VAR
+    f: Error ;
+ BEGIN
+    f := head ;
+    WHILE f # NIL DO
+       IF f^.parent = e
+       THEN
+          f^.parent := NIL
+       END ;
+       IF f^.child = e
+       THEN
+          f^.child := NIL
+       END ;
+       f := f^.next
+    END
+ END WipeReferences ;
+ 
+ 
+ (*
+    KillError - remove error e from the error list and deallocate
+                memory associated with e.
+ *)
+ 
+ PROCEDURE KillError (VAR e: Error) ;
+ BEGIN
+    IF head # NIL
+    THEN
+       SubFromList (e) ;
+       WipeReferences (e) ;
+       e := NIL
+    END
+ END KillError ;
+ 
+ 
+ (*
     ChainError - creates and returns a new error handle, this new error
                  is associated with, e, and is chained onto the end of, e.
                  If, e, is NIL then the result to NewError is returned.
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/M2LexBuf.mod gcc-16-20251026/gcc/m2/gm2-compiler/M2LexBuf.mod
*** gcc-16-20251019/gcc/m2/gm2-compiler/M2LexBuf.mod	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/gm2-compiler/M2LexBuf.mod	Sun Oct 26 22:32:33 2025
*************** BEGIN
*** 1078,1083 ****
--- 1078,1087 ----
     THEN
        caret := right
     END ;
+    IF (caret = left) AND (left = right)
+    THEN
+       RETURN caret
+    END ;
     IF isSrcToken (caret) AND isSrcToken (left) AND isSrcToken (right)
     THEN
        lc := TokenToLocation (caret) ;
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/M2MetaError.mod gcc-16-20251026/gcc/m2/gm2-compiler/M2MetaError.mod
*** gcc-16-20251019/gcc/m2/gm2-compiler/M2MetaError.mod	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/gm2-compiler/M2MetaError.mod	Sun Oct 26 22:32:33 2025
*************** FROM M2Base IMPORT ZType, RType, IsPseud
*** 26,32 ****
  FROM NameKey IMPORT Name, KeyToCharStar, NulName ;
  FROM StrLib IMPORT StrLen ;
  FROM M2LexBuf IMPORT GetTokenNo, UnknownTokenNo ;
! FROM M2Error IMPORT Error, NewError, NewWarning, NewNote, ErrorString, InternalError, ChainError, SetColor, FlushErrors, FlushWarnings ;
  FROM FIO IMPORT StdOut, WriteLine ;
  FROM SFIO IMPORT WriteS ;
  FROM StringConvert IMPORT ctos ;
--- 26,36 ----
  FROM NameKey IMPORT Name, KeyToCharStar, NulName ;
  FROM StrLib IMPORT StrLen ;
  FROM M2LexBuf IMPORT GetTokenNo, UnknownTokenNo ;
! 
! FROM M2Error IMPORT Error, NewError, KillError,
!                     NewWarning, NewNote, ErrorString, InternalError,
!                     ChainError, SetColor, FlushErrors, FlushWarnings ;
! 
  FROM FIO IMPORT StdOut, WriteLine ;
  FROM SFIO IMPORT WriteS ;
  FROM StringConvert IMPORT ctos ;
*************** FROM SymbolTable IMPORT NulSym,
*** 67,72 ****
--- 71,79 ----
  
  IMPORT M2ColorString ;
  IMPORT M2Error ;
+ IMPORT FilterError ;
+ 
+ FROM FilterError IMPORT Filter, AddSymError, IsSymError ;
  
  
  CONST
*************** TYPE
*** 85,90 ****
--- 92,99 ----
     errorBlock = RECORD
                     useError  : BOOLEAN ;
                     e         : Error ;
+                    symcause  : CARDINAL ;  (* The symbol (or NulSym) associated with the token no.  *)
+                    token     : CARDINAL ;
                     type      : errorType ;
                     out, in   : String ;
                     highplus1 : CARDINAL ;
*************** TYPE
*** 115,126 ****
  
  
  VAR
!    lastRoot  : Error ;
!    lastColor : colorType ;
!    seenAbort : BOOLEAN ;
!    dictionary : Index ;
!    outputStack: Index ;
!    freeEntry  : dictionaryEntry ;
  
  
  (*
--- 124,136 ----
  
  
  VAR
!    lastRoot     : Error ;
!    lastColor    : colorType ;
!    seenAbort    : BOOLEAN ;
!    dictionary   : Index ;
!    outputStack  : Index ;
!    freeEntry    : dictionaryEntry ;
!    FilterUnknown: Filter ;
  
  
  (*
*************** BEGIN
*** 513,518 ****
--- 523,530 ----
     WITH eb DO
        useError   := TRUE ;
        e          := NIL ;
+       symcause   := NulSym ;
+       token      := UnknownTokenNo ;
        type       := error ;  (* Default to the error color.  *)
        out        := InitString ('') ;
        in         := input ;
*************** END initErrorBlock ;
*** 543,551 ****
  
  PROCEDURE push (VAR newblock: errorBlock; oldblock: errorBlock) ;
  BEGIN
!    pushColor (oldblock) ;  (* save the current color.  *)
!    newblock := oldblock ;  (* copy all the fields.  *)
!    newblock.out := NIL ;  (* must do this before a clear as we have copied the address.  *)
     clear (newblock) ;
     newblock.quotes := TRUE
  END push ;
--- 555,563 ----
  
  PROCEDURE push (VAR newblock: errorBlock; oldblock: errorBlock) ;
  BEGIN
!    pushColor (oldblock) ;  (* Save the current color.  *)
!    newblock := oldblock ;  (* Now copy all the fields.  *)
!    newblock.out := NIL ;  (* We must do this before a clear as we have copied the address.  *)
     clear (newblock) ;
     newblock.quotes := TRUE
  END push ;
*************** BEGIN
*** 604,609 ****
--- 616,625 ----
     THEN
        toblock.e := fromblock.e
     END ;
+    IF toblock.symcause = NulSym
+    THEN
+       toblock.symcause := fromblock.symcause
+    END ;
     toblock.chain := fromblock.chain ;
     toblock.root := fromblock.root ;
     toblock.ini := fromblock.ini ;
*************** END doChain ;
*** 1173,1207 ****
     doError - creates and returns an error note.
  *)
  
! PROCEDURE doError (VAR eb: errorBlock; tok: CARDINAL) ;
  BEGIN
     IF eb.useError
     THEN
!       chooseError (eb, tok)
     END
  END doError ;
  
  
  (*
!    defaultError - adds the default error location to, tok, if one has not already been
!                   assigned.
  *)
  
  PROCEDURE defaultError (VAR eb: errorBlock; tok: CARDINAL) ;
  BEGIN
     IF eb.e = NIL
     THEN
!       doError (eb, tok)
     END
  END defaultError ;
  
  
  (*
     chooseError - choose the error kind dependant upon type.
                   Either an error, warning or note will be generated.
  *)
  
! PROCEDURE chooseError (VAR eb: errorBlock; tok: CARDINAL) ;
  BEGIN
     IF eb.chain
     THEN
--- 1189,1242 ----
     doError - creates and returns an error note.
  *)
  
! PROCEDURE doError (VAR eb: errorBlock; tok: CARDINAL; sym: CARDINAL) ;
  BEGIN
     IF eb.useError
     THEN
!       chooseError (eb, tok, sym)
     END
  END doError ;
  
  
  (*
!    defaultError - adds the default error location to, tok,
!                   if one has not already been assigned.
  *)
  
  PROCEDURE defaultError (VAR eb: errorBlock; tok: CARDINAL) ;
  BEGIN
     IF eb.e = NIL
     THEN
!       doError (eb, tok, NulSym)
!    END ;
!    IF eb.token = UnknownTokenNo
!    THEN
!       eb.token := tok
     END
  END defaultError ;
  
  
  (*
+    updateTokSym - assign symcause to sym if not NulSym.
+                   Update token.
+ *)
+ 
+ PROCEDURE updateTokSym (VAR eb: errorBlock; tok: CARDINAL; sym: CARDINAL) ;
+ BEGIN
+    IF sym # NulSym
+    THEN
+       eb.symcause := sym
+    END ;
+    eb.token := tok
+ END updateTokSym ;
+ 
+ 
+ (*
     chooseError - choose the error kind dependant upon type.
                   Either an error, warning or note will be generated.
  *)
  
! PROCEDURE chooseError (VAR eb: errorBlock; tok: CARDINAL; sym: CARDINAL) ;
  BEGIN
     IF eb.chain
     THEN
*************** BEGIN
*** 1217,1235 ****
                     eb.e := NewError (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END |
        warning:  IF eb.e=NIL
                  THEN
                     eb.e := NewWarning (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END |
        note   :  IF eb.e=NIL
                  THEN
                     eb.e := NewNote (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END
  
        ELSE
           InternalError ('unexpected enumeration value')
--- 1252,1273 ----
                     eb.e := NewError (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END ;
!                 updateTokSym (eb, tok, sym) |
        warning:  IF eb.e=NIL
                  THEN
                     eb.e := NewWarning (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END ;
!                 updateTokSym (eb, tok, sym) |
        note   :  IF eb.e=NIL
                  THEN
                     eb.e := NewNote (tok)
                  ELSE
                     eb.e := MoveError (eb.e, tok)
!                 END ;
!                 updateTokSym (eb, tok, sym)
  
        ELSE
           InternalError ('unexpected enumeration value')
*************** BEGIN
*** 1257,1265 ****
     THEN
        IF IsInnerModule (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym))
        ELSE
!          doError (eb, GetDeclaredMod (sym))
        END
     ELSE
        Assert (IsDefImp (scope)) ;
--- 1295,1303 ----
     THEN
        IF IsInnerModule (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym), sym)
        ELSE
!          doError (eb, GetDeclaredMod (sym), sym)
        END
     ELSE
        Assert (IsDefImp (scope)) ;
*************** BEGIN
*** 1269,1277 ****
           UNTIL GetScope(OuterModule)=NulSym.  *)
        IF GetDeclaredModule (sym) = UnknownTokenNo
        THEN
!          doError (eb, GetDeclaredDef (sym))
        ELSE
!          doError (eb, GetDeclaredMod (sym))
        END
     END
  END doErrorScopeModule ;
--- 1307,1315 ----
           UNTIL GetScope(OuterModule)=NulSym.  *)
        IF GetDeclaredModule (sym) = UnknownTokenNo
        THEN
!          doError (eb, GetDeclaredDef (sym), sym)
        ELSE
!          doError (eb, GetDeclaredMod (sym), sym)
        END
     END
  END doErrorScopeModule ;
*************** BEGIN
*** 1290,1298 ****
     THEN
        IF IsInnerModule (scope)
        THEN
!          doError (eb, GetDeclaredFor (sym))
        ELSE
!          doError (eb, GetDeclaredFor (sym))
        END
     ELSE
        Assert (IsDefImp (scope)) ;
--- 1328,1336 ----
     THEN
        IF IsInnerModule (scope)
        THEN
!          doError (eb, GetDeclaredFor (sym), sym)
        ELSE
!          doError (eb, GetDeclaredFor (sym), sym)
        END
     ELSE
        Assert (IsDefImp (scope)) ;
*************** BEGIN
*** 1302,1310 ****
           UNTIL GetScope(OuterModule)=NulSym.  *)
        IF GetDeclaredModule (sym) = UnknownTokenNo
        THEN
!          doError (eb, GetDeclaredDef (sym))
        ELSE
!          doError (eb, GetDeclaredFor (sym))
        END
     END
  END doErrorScopeForward ;
--- 1340,1348 ----
           UNTIL GetScope(OuterModule)=NulSym.  *)
        IF GetDeclaredModule (sym) = UnknownTokenNo
        THEN
!          doError (eb, GetDeclaredDef (sym), sym)
        ELSE
!          doError (eb, GetDeclaredFor (sym), sym)
        END
     END
  END doErrorScopeForward ;
*************** BEGIN
*** 1324,1335 ****
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredMod (sym))
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym))
        ELSE
           doErrorScopeModule (eb, sym)
        END
--- 1362,1373 ----
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredMod (sym), sym)
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym), sym)
        ELSE
           doErrorScopeModule (eb, sym)
        END
*************** BEGIN
*** 1353,1364 ****
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredFor (sym))
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredFor (sym))
        ELSE
           doErrorScopeForward (eb, sym)
        END
--- 1391,1402 ----
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredFor (sym), sym)
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredFor (sym), sym)
        ELSE
           doErrorScopeForward (eb, sym)
        END
*************** BEGIN
*** 1392,1407 ****
     IF IsModule (scope)
     THEN
        (* No definition module for a program module.  *)
!       doError (eb, GetDeclaredMod (sym))
     ELSE
        Assert (IsDefImp (scope)) ;
        IF GetDeclaredDefinition (sym) = UnknownTokenNo
        THEN
           (* Fall back to the implementation module if no declaration exists
              in the definition module.  *)
!          doError (eb, GetDeclaredMod (sym))
        ELSE
!          doError (eb, GetDeclaredDef (sym))
        END
     END
  END doErrorScopeDefinition ;
--- 1430,1445 ----
     IF IsModule (scope)
     THEN
        (* No definition module for a program module.  *)
!       doError (eb, GetDeclaredMod (sym), sym)
     ELSE
        Assert (IsDefImp (scope)) ;
        IF GetDeclaredDefinition (sym) = UnknownTokenNo
        THEN
           (* Fall back to the implementation module if no declaration exists
              in the definition module.  *)
!          doError (eb, GetDeclaredMod (sym), sym)
        ELSE
!          doError (eb, GetDeclaredDef (sym), sym)
        END
     END
  END doErrorScopeDefinition ;
*************** BEGIN
*** 1421,1432 ****
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredFor (sym))
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredDef (sym))
        ELSE
           doErrorScopeDefinition (eb, sym)
        END
--- 1459,1470 ----
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredFor (sym), sym)
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredDef (sym), sym)
        ELSE
           doErrorScopeDefinition (eb, sym)
        END
*************** BEGIN
*** 1477,1501 ****
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredDef (sym))
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsVar (sym) OR IsParameter (sym)
        THEN
!          doError (eb, GetVarParamTok (sym))
        ELSIF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredDef (sym))
        ELSIF IsModule (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym))
        ELSE
           Assert (IsDefImp (scope)) ;
           IF GetDeclaredDefinition (sym) = UnknownTokenNo
           THEN
!             doError (eb, GetDeclaredMod (sym))
           ELSE
!             doError (eb, GetDeclaredDef (sym))
           END
        END
     END ;
--- 1515,1539 ----
     IF scope = NulSym
     THEN
        M2Error.EnterErrorScope (NIL) ;
!       doError (eb, GetDeclaredDef (sym), sym)
     ELSE
        M2Error.EnterErrorScope (GetErrorScope (scope)) ;
        IF IsVar (sym) OR IsParameter (sym)
        THEN
!          doError (eb, GetVarParamTok (sym), sym)
        ELSIF IsProcedure (scope)
        THEN
!          doError (eb, GetDeclaredDef (sym), sym)
        ELSIF IsModule (scope)
        THEN
!          doError (eb, GetDeclaredMod (sym), sym)
        ELSE
           Assert (IsDefImp (scope)) ;
           IF GetDeclaredDefinition (sym) = UnknownTokenNo
           THEN
!             doError (eb, GetDeclaredMod (sym), sym)
           ELSE
!             doError (eb, GetDeclaredDef (sym), sym)
           END
        END
     END ;
*************** PROCEDURE used (VAR eb: errorBlock; sym:
*** 1550,1556 ****
  BEGIN
     IF bol <= HIGH (sym)
     THEN
!       doError (eb, GetFirstUsed (sym[bol]))
     END
  END used ;
  
--- 1588,1594 ----
  BEGIN
     IF bol <= HIGH (sym)
     THEN
!       doError (eb, GetFirstUsed (sym[bol]), sym[bol])
     END
  END used ;
  
*************** BEGIN
*** 1755,1761 ****
        'B':  declaredType (eb, sym, bol) |
        'C':  eb.chain := TRUE |
        'D':  declaredDef (eb, sym, bol) |
!       'E':  eb.type := error |
        'F':  filename (eb) ;
              DEC (eb.ini) |
        'G':  declaredFor (eb, sym, bol) |
--- 1793,1800 ----
        'B':  declaredType (eb, sym, bol) |
        'C':  eb.chain := TRUE |
        'D':  declaredDef (eb, sym, bol) |
!       'E':  eb.type := error ;
!             eb.symcause := sym[bol] |
        'F':  filename (eb) ;
              DEC (eb.ini) |
        'G':  declaredFor (eb, sym, bol) |
*************** BEGIN
*** 1764,1770 ****
              DEC (eb.ini) |
        'M':  declaredMod (eb, sym, bol) |
        'N':  doCount (eb, sym, bol) |
!       'O':  eb.type := note |
        'P':  pushColor (eb) |
        'Q':  resetDictionary |
        'R':  eb.root := TRUE |
--- 1803,1810 ----
              DEC (eb.ini) |
        'M':  declaredMod (eb, sym, bol) |
        'N':  doCount (eb, sym, bol) |
!       'O':  eb.type := note ;
!             eb.symcause := sym[bol] |
        'P':  pushColor (eb) |
        'Q':  resetDictionary |
        'R':  eb.root := TRUE |
*************** BEGIN
*** 1772,1778 ****
        'T':  doGetType (eb, sym, bol) |
        'U':  used (eb, sym, bol) |
        'V':  declaredVar (eb, sym, bol) |
!       'W':  eb.type := warning |
        'X':  pushOutput (eb) |
        'Y':  processDefine (eb) |
        'Z':  popOutput (eb) |
--- 1812,1819 ----
        'T':  doGetType (eb, sym, bol) |
        'U':  used (eb, sym, bol) |
        'V':  declaredVar (eb, sym, bol) |
!       'W':  eb.type := warning ;
!             eb.symcause := sym[bol] |
        'X':  pushOutput (eb) |
        'Y':  processDefine (eb) |
        'Z':  popOutput (eb) |
*************** BEGIN
*** 2402,2408 ****
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    ErrorString (eb.e, Dup (eb.out)) ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT1 ;
--- 2443,2454 ----
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    IF isUniqueError (eb)
!    THEN
!       ErrorString (eb.e, Dup (eb.out)) ;
!    ELSE
!       KillError (eb.e)
!    END ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT1 ;
*************** BEGIN
*** 2425,2431 ****
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    ErrorString (eb.e, Dup (eb.out)) ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT2 ;
--- 2471,2482 ----
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    IF isUniqueError (eb)
!    THEN
!       ErrorString (eb.e, Dup (eb.out))
!    ELSE
!       KillError (eb.e)
!    END ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT2 ;
*************** BEGIN
*** 2450,2456 ****
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    ErrorString (eb.e, Dup (eb.out)) ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT3 ;
--- 2501,2512 ----
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    IF isUniqueError (eb)
!    THEN
!       ErrorString (eb.e, Dup (eb.out))
!    ELSE
!       KillError (eb.e)
!    END ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT3 ;
*************** BEGIN
*** 2475,2481 ****
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    ErrorString (eb.e, Dup (eb.out)) ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT4 ;
--- 2531,2542 ----
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    IF isUniqueError (eb)
!    THEN
!       ErrorString (eb.e, Dup (eb.out))
!    ELSE
!       KillError (eb.e)
!    END ;
     killErrorBlock (eb) ;
     checkAbort
  END MetaErrorStringT4 ;
*************** END MetaError4 ;
*** 2518,2523 ****
--- 2579,2609 ----
  
  
  (*
+    isUniqueError - return TRUE if the symbol associated with the
+                    error block is unknown and we have seen the same
+                    token before.
+ *)
+ 
+ PROCEDURE isUniqueError (VAR eb: errorBlock) : BOOLEAN ;
+ BEGIN
+    IF (eb.symcause # NulSym) AND IsUnknown (eb.symcause)
+    THEN
+       (* A candidate for filtering.  *)
+       IF IsSymError (FilterUnknown, eb.symcause, eb.token)
+       THEN
+          (* Seen and reported about this unknown and token
+             location before.  *)
+          RETURN FALSE
+       ELSE
+          (* Remember this combination.  *)
+          AddSymError (FilterUnknown, eb.symcause, eb.token)
+       END
+    END ;
+    RETURN TRUE
+ END isUniqueError ;
+ 
+ 
+ (*
     wrapErrors -
  *)
  
*************** BEGIN
*** 2531,2545 ****
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    lastRoot := eb.e ;
!    ErrorString (eb.e, Dup (eb.out)) ;
!    killErrorBlock (eb) ;
!    initErrorBlock (eb, InitString (m2), sym) ;
!    eb.type := chained ;
!    ebnf (eb, sym) ;
!    flushColor (eb) ;
!    defaultError (eb, tok) ;
!    ErrorString (eb.e, Dup (eb.out)) ;
     killErrorBlock (eb)
  END wrapErrors ;
  
--- 2617,2636 ----
     ebnf (eb, sym) ;
     flushColor (eb) ;
     defaultError (eb, tok) ;
!    IF isUniqueError (eb)
!    THEN
!       lastRoot := eb.e ;
!       ErrorString (eb.e, Dup (eb.out)) ;
!       killErrorBlock (eb) ;
!       initErrorBlock (eb, InitString (m2), sym) ;
!       eb.type := chained ;
!       ebnf (eb, sym) ;
!       flushColor (eb) ;
!       defaultError (eb, tok) ;
!       ErrorString (eb.e, Dup (eb.out))
!    ELSE
!       KillError (eb.e)
!    END ;
     killErrorBlock (eb)
  END wrapErrors ;
  
*************** BEGIN
*** 2871,2875 ****
     seenAbort := FALSE ;
     outputStack := InitIndex (1) ;
     dictionary := InitIndex (1) ;
!    freeEntry := NIL
  END M2MetaError.
--- 2962,2967 ----
     seenAbort := FALSE ;
     outputStack := InitIndex (1) ;
     dictionary := InitIndex (1) ;
!    freeEntry := NIL ;
!    FilterUnknown := FilterError.Init ()
  END M2MetaError.
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-compiler/M2Quads.mod gcc-16-20251026/gcc/m2/gm2-compiler/M2Quads.mod
*** gcc-16-20251019/gcc/m2/gm2-compiler/M2Quads.mod	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/m2/gm2-compiler/M2Quads.mod	Sun Oct 26 22:32:33 2025
*************** BEGIN
*** 7244,7250 ****
              PushT (2) ;                        (* Two parameters *)
              BuildProcedureCall (combinedtok)
           ELSE
!             MetaErrorT0 (paramtok, 'parameter to {%EkNEW} must be a pointer')
           END
        ELSE
           MetaErrorT0 (functok, '{%E}ALLOCATE procedure not found for NEW substitution')
--- 7244,7251 ----
              PushT (2) ;                        (* Two parameters *)
              BuildProcedureCall (combinedtok)
           ELSE
!             MetaErrorT1 (paramtok, 'parameter to {%EkNEW} must be a pointer,' +
!                          ' seen {%1Ed} {%1&s}', PtrSym)
           END
        ELSE
           MetaErrorT0 (functok, '{%E}ALLOCATE procedure not found for NEW substitution')
*************** BEGIN
*** 7333,7339 ****
              PushT (2) ;                               (* Two parameters *)
              BuildProcedureCall (combinedtok)
           ELSE
!             MetaErrorT0 (paramtok, 'argument to {%EkDISPOSE} must be a pointer')
           END
        ELSE
           MetaErrorT0 (functok, '{%E}DEALLOCATE procedure not found for DISPOSE substitution')
--- 7334,7341 ----
              PushT (2) ;                               (* Two parameters *)
              BuildProcedureCall (combinedtok)
           ELSE
!             MetaErrorT1 (paramtok, 'argument to {%EkDISPOSE} must be a pointer,' +
!                          ' seen {%1Ed} {%1&s}', PtrSym)
           END
        ELSE
           MetaErrorT0 (functok, '{%E}DEALLOCATE procedure not found for DISPOSE substitution')
*************** END CheckRangeIncDec ;
*** 7442,7447 ****
--- 7444,7450 ----
  
  PROCEDURE BuildIncProcedure (proctok: CARDINAL) ;
  VAR
+    vartok    : CARDINAL ;
     NoOfParam,
     dtype,
     OperandSym,
*************** BEGIN
*** 7452,7457 ****
--- 7455,7461 ----
     IF (NoOfParam = 1) OR (NoOfParam = 2)
     THEN
        VarSym := OperandT (NoOfParam) ;  (* Bottom/first parameter.  *)
+       vartok := OperandTok (NoOfParam) ;
        IF IsVar (VarSym)
        THEN
           dtype := GetDType (VarSym) ;
*************** BEGIN
*** 7464,7476 ****
  	    PopT (OperandSym)
           END ;
  
!          PushTtok (VarSym, proctok) ;
!          TempSym := DereferenceLValue (proctok, VarSym) ;
           CheckRangeIncDec (proctok, TempSym, OperandSym, PlusTok) ;  (* TempSym + OperandSym.  *)
           BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym + OperandSym.  *)
        ELSE
!          MetaErrorT1 (proctok,
!                       'base procedure {%EkINC} expects a variable as a parameter but was given {%1Ed}',
                        VarSym)
        END
     ELSE
--- 7468,7480 ----
  	    PopT (OperandSym)
           END ;
  
!          PushTtok (VarSym, vartok) ;
!          TempSym := DereferenceLValue (vartok, VarSym) ;
           CheckRangeIncDec (proctok, TempSym, OperandSym, PlusTok) ;  (* TempSym + OperandSym.  *)
           BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym + OperandSym.  *)
        ELSE
!          MetaErrorT1 (vartok,
!                       'base procedure {%EkINC} expects a variable as a parameter but was given {%1Ed} {%1&s}',
                        VarSym)
        END
     ELSE
*************** END BuildIncProcedure ;
*** 7513,7518 ****
--- 7517,7523 ----
  
  PROCEDURE BuildDecProcedure (proctok: CARDINAL) ;
  VAR
+    vartok    : CARDINAL ;
     NoOfParam,
     dtype,
     OperandSym,
*************** BEGIN
*** 7523,7528 ****
--- 7528,7534 ----
     IF (NoOfParam = 1) OR (NoOfParam = 2)
     THEN
        VarSym := OperandT (NoOfParam) ;  (* Bottom/first parameter.  *)
+       vartok := OperandTok (NoOfParam) ;
        IF IsVar (VarSym)
        THEN
           dtype := GetDType (VarSym) ;
*************** BEGIN
*** 7535,7547 ****
  	    PopT (OperandSym)
           END ;
  
!          PushTtok (VarSym, proctok) ;
!          TempSym := DereferenceLValue (OperandTok (NoOfParam), VarSym) ;
           CheckRangeIncDec (proctok, TempSym, OperandSym, MinusTok) ;  (* TempSym - OperandSym.  *)
           BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym - OperandSym.  *)
        ELSE
!          MetaErrorT1 (proctok,
!                       'base procedure {%EkDEC} expects a variable as a parameter but was given {%1Ed}',
                        VarSym)
        END
     ELSE
--- 7541,7553 ----
  	    PopT (OperandSym)
           END ;
  
!          PushTtok (VarSym, vartok) ;
!          TempSym := DereferenceLValue (vartok, VarSym) ;
           CheckRangeIncDec (proctok, TempSym, OperandSym, MinusTok) ;  (* TempSym - OperandSym.  *)
           BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym - OperandSym.  *)
        ELSE
!          MetaErrorT1 (vartok,
!                       'base procedure {%EkDEC} expects a variable as a parameter but was given {%1Ed} {%1&s}',
                        VarSym)
        END
     ELSE
*************** END DereferenceLValue ;
*** 7604,7609 ****
--- 7610,7616 ----
  
  PROCEDURE BuildInclProcedure (proctok: CARDINAL) ;
  VAR
+    vartok,
     optok     : CARDINAL ;
     NoOfParam,
     DerefSym,
*************** BEGIN
*** 7614,7619 ****
--- 7621,7627 ----
     IF NoOfParam = 2
     THEN
        VarSym := OperandT (2) ;
+       vartok := OperandTok (2) ;
        MarkArrayWritten (OperandA (2)) ;
        OperandSym := OperandT (1) ;
        optok := OperandTok (1) ;
*************** BEGIN
*** 7625,7638 ****
              BuildRange (InitInclCheck (VarSym, DerefSym)) ;
              GenQuadO (proctok, InclOp, VarSym, NulSym, DerefSym, FALSE)
           ELSE
!             MetaErrorT1 (proctok,
!                          'the first parameter to {%EkINCL} must be a set variable but is {%1Ed}',
!                          VarSym)
           END
        ELSE
!          MetaErrorT1 (proctok,
!                       'base procedure {%EkINCL} expects a variable as a parameter but is {%1Ed}',
!                       VarSym)
        END
     ELSE
        MetaErrorT0 (proctok, 'the base procedure {%EkINCL} expects 1 or 2 parameters')
--- 7633,7646 ----
              BuildRange (InitInclCheck (VarSym, DerefSym)) ;
              GenQuadO (proctok, InclOp, VarSym, NulSym, DerefSym, FALSE)
           ELSE
!             MetaErrorT1 (vartok,
!                          'the first parameter to {%EkINCL} must be a set variable,' +
!                          ' seen {%1Ed} {%1&s}', VarSym)
           END
        ELSE
!          MetaErrorT1 (vartok,
!                       'base procedure {%EkINCL} expects a variable as a parameter,' +
!                       ' seen {%1Ed} {%1&s}', VarSym)
        END
     ELSE
        MetaErrorT0 (proctok, 'the base procedure {%EkINCL} expects 1 or 2 parameters')
*************** END BuildInclProcedure ;
*** 7668,7673 ****
--- 7676,7682 ----
  
  PROCEDURE BuildExclProcedure (proctok: CARDINAL) ;
  VAR
+    vartok,
     optok     : CARDINAL ;
     NoOfParam,
     DerefSym,
*************** BEGIN
*** 7678,7683 ****
--- 7687,7693 ----
     IF NoOfParam=2
     THEN
        VarSym := OperandT (2) ;
+       vartok := OperandTok (2) ;
        MarkArrayWritten (OperandA(2)) ;
        OperandSym := OperandT (1) ;
        optok := OperandTok (1) ;
*************** BEGIN
*** 7689,7702 ****
              BuildRange (InitExclCheck (VarSym, DerefSym)) ;
              GenQuadO (proctok, ExclOp, VarSym, NulSym, DerefSym, FALSE)
           ELSE
!             MetaErrorT1 (proctok,
!                          'the first parameter to {%EkEXCL} must be a set variable but is {%1Ed}',
!                          VarSym)
           END
        ELSE
!          MetaErrorT1 (proctok,
!                       'base procedure {%EkEXCL} expects a variable as a parameter but is {%1Ed}',
!                       VarSym)
        END
     ELSE
        MetaErrorT0 (proctok,
--- 7699,7712 ----
              BuildRange (InitExclCheck (VarSym, DerefSym)) ;
              GenQuadO (proctok, ExclOp, VarSym, NulSym, DerefSym, FALSE)
           ELSE
!             MetaErrorT1 (vartok,
!                          'the first parameter to {%EkEXCL} must be a set variable,'
!                          + ' seen {%1Ed} {%1&s}', VarSym)
           END
        ELSE
!          MetaErrorT1 (vartok,
!                       'base procedure {%EkEXCL} expects a variable as a parameter,' +
!                       ' seen {%1Ed} {%1&s}', VarSym)
        END
     ELSE
        MetaErrorT0 (proctok,
*************** BEGIN
*** 7986,7992 ****
     proctok := OperandTok (NoOfParam+1) ;
     IF NOT IsAModula2Type (ProcSym)
     THEN
!       MetaError1 ('coersion expecting a type, seen {%1Ea} which is {%1Ed}', ProcSym)
     END ;
     IF NoOfParam = 1
     THEN
--- 7996,8002 ----
     proctok := OperandTok (NoOfParam+1) ;
     IF NOT IsAModula2Type (ProcSym)
     THEN
!       MetaError1 ('coersion expecting a type, seen {%1Ea} which is {%1Ed} {%1&s}', ProcSym)
     END ;
     IF NoOfParam = 1
     THEN
*************** BEGIN
*** 8674,8680 ****
     IF ConstExpr AND IsVar (Var)
     THEN
        MetaErrorT2 (optok,
!                    'the procedure function {%1Ea} is being called from within a constant expression and therefore the parameter {%2a} must be a constant, seen a {%2dav}',
                     Func, Var) ;
        RETURN TRUE
     ELSE
--- 8684,8690 ----
     IF ConstExpr AND IsVar (Var)
     THEN
        MetaErrorT2 (optok,
!                    'the procedure function {%1Ea} is being called from within a constant expression and therefore the parameter {%2a} must be a constant, seen a {%2dav} {%2&s}',
                     Func, Var) ;
        RETURN TRUE
     ELSE
*************** BEGIN
*** 8884,8890 ****
           PushTtok (Res, combinedtok)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%1EkODD} must be a variable or constant, seen {%1ad}',
                        Var) ;
           PushTtok (False, combinedtok)
        END
--- 8894,8900 ----
           PushTtok (Res, combinedtok)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%1EkODD} must be a variable or constant, seen {%1ad} {%1&s}',
                        Var) ;
           PushTtok (False, combinedtok)
        END
*************** BEGIN
*** 8963,8975 ****
           PushTFtok (Res, GetSType (Var), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'the parameter to {%AkABS} must be a variable or constant, seen {%1ad}',
!                       Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkABS} only has one parameter, seen {%1n} parameters',
!                    NoOfParam)
     END
  END BuildAbsFunction ;
  
--- 8973,8985 ----
           PushTFtok (Res, GetSType (Var), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'the parameter to {%AkABS} must be a variable or constant,' +
!                       ' seen {%1ad} {%1&s}', Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkABS} only has one parameter,' +
!                    ' seen {%1n} parameters', NoOfParam)
     END
  END BuildAbsFunction ;
  
*************** BEGIN
*** 9027,9039 ****
           PushTFtok (Res, Char, combinedtok)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%AkCAP} must be a variable or constant, seen {%1ad}',
!                       Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkCAP} only has one parameter, seen {%1n} parameters',
!                    NoOfParam)
     END
  END BuildCapFunction ;
  
--- 9037,9049 ----
           PushTFtok (Res, Char, combinedtok)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%AkCAP} must be a variable or constant,' +
!                       ' seen {%1ad} {%1&s}', Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkCAP} only has one parameter,' +
!                    ' seen {%1n} parameters', NoOfParam)
     END
  END BuildCapFunction ;
  
*************** BEGIN
*** 9106,9118 ****
           BuildConvertFunction (Convert, ConstExpr)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%AkCHR} must be a variable or constant, seen {%1ad}',
!                       Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkCHR} only has one parameter, seen {%1n} parameters',
!                    NoOfParam)
     END
  END BuildChrFunction ;
  
--- 9116,9128 ----
           BuildConvertFunction (Convert, ConstExpr)
        ELSE
           MetaErrorT1 (optok,
!                       'the parameter to {%AkCHR} must be a variable or constant,' +
!                       ' seen {%1ad} {%1&s}', Var)
        END
     ELSE
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%AkCHR} only has one parameter,' +
!                    ' seen {%1n} parameters', NoOfParam)
     END
  END BuildChrFunction ;
  
*************** BEGIN
*** 9186,9198 ****
           BuildConvertFunction (Convert, ConstExpr)
        ELSE
           MetaErrorT2 (optok,
!                       'the parameter to {%1Aa} must be a variable or constant, seen {%2ad}',
                        Sym, Var)
        END
     ELSE
        MetaErrorT2 (functok,
!                    'the pseudo procedure {%1Aa} only has one parameter, seen {%2n} parameters',
!                    Sym, NoOfParam)
     END
  END BuildOrdFunction ;
  
--- 9196,9209 ----
           BuildConvertFunction (Convert, ConstExpr)
        ELSE
           MetaErrorT2 (optok,
!                       'the parameter to {%1Aa} must be a variable or constant,' +
!                       ' seen {%2ad} {%2&s}',
                        Sym, Var)
        END
     ELSE
        MetaErrorT2 (functok,
!                    'the pseudo procedure {%1Aa} only has one parameter,' +
!                    ' seen {%2n} parameters', Sym, NoOfParam)
     END
  END BuildOrdFunction ;
  
*************** BEGIN
*** 9265,9278 ****
        ELSE
           combinedtok := MakeVirtualTok (functok, optok, optok) ;
           MetaErrorT2 (optok,
!                       'the parameter to {%1Ea} must be a variable or constant, seen {%2ad}',
!                       Sym, Var) ;
           PushTtok (combinedtok, MakeConstLit (combinedtok, MakeKey ('0'), ZType))
        END
     ELSE
        MetaErrorT2 (functok,
!                    'the pseudo procedure {%1Ea} only has one parameter, seen {%2n} parameters',
!                    Sym, NoOfParam) ;
        PushTtok (functok, MakeConstLit (functok, MakeKey ('0'), ZType))
     END
  END BuildIntFunction ;
--- 9276,9289 ----
        ELSE
           combinedtok := MakeVirtualTok (functok, optok, optok) ;
           MetaErrorT2 (optok,
!                       'the parameter to {%1Ea} must be a variable or constant,' +
!                       ' seen {%2ad} {%2&s}', Sym, Var) ;
           PushTtok (combinedtok, MakeConstLit (combinedtok, MakeKey ('0'), ZType))
        END
     ELSE
        MetaErrorT2 (functok,
!                    'the pseudo procedure {%1Ea} only has one parameter,' +
!                    ' seen {%2n} parameters', Sym, NoOfParam) ;
        PushTtok (functok, MakeConstLit (functok, MakeKey ('0'), ZType))
     END
  END BuildIntFunction ;
*************** BEGIN
*** 9338,9344 ****
              AreConst := FALSE ;
           ELSIF NOT IsConst (OperandT (i))
           THEN
!             MetaError1 ('problem in the {%1EN} argument for {%kMAKEADR}, all arguments to {%kMAKEADR} must be either variables or constants', i)
           END ;
           INC (i)
        END ;
--- 9349,9356 ----
              AreConst := FALSE ;
           ELSIF NOT IsConst (OperandT (i))
           THEN
!             MetaError1 ('problem in the {%1EN} argument for {%kMAKEADR},' +
!                         ' all arguments to {%kMAKEADR} must be either variables or constants', i)
           END ;
           INC (i)
        END ;
*************** BEGIN
*** 9350,9356 ****
        PopN (NoOfParameters+1) ;
        PushTFtok (ReturnVar, GetSType (MakeAdr), resulttok)
     ELSE
!       MetaError1 ('the pseudo procedure {%EkMAKEADR} requires at least one parameter, seen {%1n}', NoOfParameters) ;
        PopN (1) ;
        PushTFtok (Nil, GetSType (MakeAdr), functok)
     END
--- 9362,9369 ----
        PopN (NoOfParameters+1) ;
        PushTFtok (ReturnVar, GetSType (MakeAdr), resulttok)
     ELSE
!       MetaError1 ('the pseudo procedure {%EkMAKEADR} requires at least one parameter,' +
!                   ' seen {%1n}', NoOfParameters) ;
        PopN (1) ;
        PushTFtok (Nil, GetSType (MakeAdr), functok)
     END
*************** BEGIN
*** 9422,9436 ****
           PushTFtok (returnVar, GetSType (varSet), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'SYSTEM procedure {%1EkSHIFT} expects a constant or variable which has a type of SET as its first parameter, seen {%1ad}',
                        varSet) ;
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Cardinal), Cardinal, combinedtok)
        END
     ELSE
        combinedtok := MakeVirtualTok (functok, functok, paramtok) ;
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%kSHIFT} requires at least two parameters, seen {%1En}',
!                    NoOfParam) ;
        PopN (NoOfParam + 1) ;
        PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Cardinal), Cardinal, combinedtok)
     END
--- 9435,9450 ----
           PushTFtok (returnVar, GetSType (varSet), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'SYSTEM procedure {%1EkSHIFT} expects a constant or variable which has a type of SET as its first parameter,' +
!                       ' seen {%1ad} {%1&s}',
                        varSet) ;
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Cardinal), Cardinal, combinedtok)
        END
     ELSE
        combinedtok := MakeVirtualTok (functok, functok, paramtok) ;
        MetaErrorT1 (functok,
!                    'the pseudo procedure {%kSHIFT} requires at least two parameters,' +
!                    ' seen {%1En}', NoOfParam) ;
        PopN (NoOfParam + 1) ;
        PushTFtok (MakeConstLit (combinedtok, MakeKey ('0'), Cardinal), Cardinal, combinedtok)
     END
*************** BEGIN
*** 9499,9506 ****
           PushTFtok (returnVar, GetSType (varSet), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'SYSTEM procedure {%EkROTATE} expects a constant or variable which has a type of SET as its first parameter, seen {%1ad}',
!                       varSet) ;
           PushTFtok (MakeConstLit (functok, MakeKey('0'), Cardinal), Cardinal, functok)
        END
     ELSE
--- 9513,9520 ----
           PushTFtok (returnVar, GetSType (varSet), combinedtok)
        ELSE
           MetaErrorT1 (vartok,
!                       'SYSTEM procedure {%EkROTATE} expects a constant or variable which has a type of SET as its first parameter,' +
!                       ' seen {%1ad} {%1&s}', varSet) ;
           PushTFtok (MakeConstLit (functok, MakeKey('0'), Cardinal), Cardinal, functok)
        END
     ELSE
*************** BEGIN
*** 9570,9577 ****
           (* Spellcheck.  *)
           (* It is sensible not to try and recover when we dont know the return type.  *)
           MetaErrorT1 (typetok,
!                       'undeclared type found in builtin procedure function {%AkVAL} {%1ad} {%1&s}',
!                       Type) ;
           (* Non recoverable error.  *)
           UnknownReported (Type)
        ELSIF ConstExprError (ProcSym, Exp, exptok, ConstExpr)
--- 9584,9591 ----
           (* Spellcheck.  *)
           (* It is sensible not to try and recover when we dont know the return type.  *)
           MetaErrorT1 (typetok,
!                       'undeclared type found in builtin procedure function' +
!                       ' {%AkVAL} {%1ad} {%1&s}', Type) ;
           (* Non recoverable error.  *)
           UnknownReported (Type)
        ELSIF ConstExprError (ProcSym, Exp, exptok, ConstExpr)
*************** BEGIN
*** 10001,10015 ****
        ELSE
           (* we dont know the type therefore cannot fake a return.  *)
           MetaErrorT1 (vartok,
!                       'parameter to {%AkMIN} must be a type or a variable, seen {%1ad}',
!                       Var)
           (* non recoverable error.  *)
        END
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkMIN} only has one parameter, seen  {%1n}',
!                    NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildMinFunction ;
--- 10015,10029 ----
        ELSE
           (* we dont know the type therefore cannot fake a return.  *)
           MetaErrorT1 (vartok,
!                       'parameter to {%AkMIN} must be a type or a variable,' +
!                       ' seen {%1ad} {%1&s}', Var)
           (* non recoverable error.  *)
        END
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkMIN} only has one parameter,' +
!                    ' seen  {%1n}', NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildMinFunction ;
*************** BEGIN
*** 10062,10076 ****
        ELSE
           (* we dont know the type therefore cannot fake a return.  *)
           MetaErrorT1 (vartok,
!                       'parameter to {%AkMAX} must be a type or a variable, seen {%1ad}',
!                       Var)
           (* non recoverable error.  *) ;
        END
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkMAX} only has one parameter, seen {%1n}',
!                    NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildMaxFunction ;
--- 10076,10090 ----
        ELSE
           (* we dont know the type therefore cannot fake a return.  *)
           MetaErrorT1 (vartok,
!                       'parameter to {%AkMAX} must be a type or a variable,' +
!                       ' seen {%1ad} {%1&s}', Var)
           (* non recoverable error.  *) ;
        END
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkMAX} only has one parameter,' +
!                    ' seen {%1n}', NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildMaxFunction ;
*************** BEGIN
*** 10156,10163 ****
              END
           ELSE
              MetaErrorT2 (vartok,
!                          'argument to {%1Ead} must be a variable or constant, seen {%2ad}',
!                          Sym, Var) ;
              PushTFtok (MakeConstLit (functok, MakeKey('0'), Type), Type, functok)
           END
        ELSE
--- 10170,10177 ----
              END
           ELSE
              MetaErrorT2 (vartok,
!                          'argument to {%1Ead} must be a variable or constant,' +
!                          ' seen {%2ad} {%2&s}', Sym, Var) ;
              PushTFtok (MakeConstLit (functok, MakeKey('0'), Type), Type, functok)
           END
        ELSE
*************** BEGIN
*** 10166,10172 ****
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkTRUNC} only has one parameter, seen  {%1n}', NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildTruncFunction ;
--- 10180,10187 ----
     ELSE
        (* we dont know the type therefore cannot fake a return.  *)
        MetaErrorT1 (functok,
!                    'the pseudo builtin procedure function {%AkTRUNC} only has one parameter,' +
!                    ' seen  {%1n}', NoOfParam)
        (* non recoverable error.  *)
     END
  END BuildTruncFunction ;
*************** BEGIN
*** 10323,10330 ****
        ELSE
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
           MetaErrorT2 (vartok,
!                       'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable, seen {%2ad}',
!                       func, Var)
        END
     ELSE
        PopN (NoOfParam+1) ;  (* destroy arguments to this function *)
--- 10338,10345 ----
        ELSE
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
           MetaErrorT2 (vartok,
!                       'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable,' +
!                       ' seen {%2ad} {%2&s}', func, Var)
        END
     ELSE
        PopN (NoOfParam+1) ;  (* destroy arguments to this function *)
*************** BEGIN
*** 10399,10406 ****
        ELSE
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
           MetaErrorT2 (vartok,
!                       'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable, seen {%2ad}',
!                       func, Var)
        END
     ELSE
        PopN (NoOfParam+1) ;  (* destroy arguments to this function *)
--- 10414,10421 ----
        ELSE
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), RType), RType, combinedtok) ;
           MetaErrorT2 (vartok,
!                       'the parameter to the builtin procedure function {%1Ead} must be a constant or a variable,' +
!                       ' seen {%2ad} {%2&s}', func, Var)
        END
     ELSE
        PopN (NoOfParam+1) ;  (* destroy arguments to this function *)
*************** BEGIN
*** 10489,10499 ****
           IF IsVar (l) OR IsConst (l)
           THEN
              MetaErrorT2 (functok,
!                       'the builtin procedure {%1Ead} requires two parameters, both must be variables or constants but the second parameter is {%2d}',
                        func, r)
           ELSE
              MetaErrorT2 (functok,
!                          'the builtin procedure {%1Ead} requires two parameters, both must be variables or constants but the first parameter is {%2d}',
                        func, l)
           END ;
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), CType), CType, combinedtok)
--- 10504,10516 ----
           IF IsVar (l) OR IsConst (l)
           THEN
              MetaErrorT2 (functok,
!                       'the builtin procedure {%1Ead} requires two parameters,' +
!                       ' both must be variables or constants but the second parameter is {%2d}',
                        func, r)
           ELSE
              MetaErrorT2 (functok,
!                          'the builtin procedure {%1Ead} requires two parameters,' +
!                          ' both must be variables or constants but the first parameter is {%2d}',
                        func, l)
           END ;
           PushTFtok (MakeConstLit (combinedtok, MakeKey ('1.0'), CType), CType, combinedtok)
*************** END BuildCmplxFunction ;
*** 10536,10542 ****
  
  PROCEDURE BuildAdrFunction ;
  VAR
!    endtok,
     combinedTok,
     procTok,
     t,
--- 10553,10560 ----
  
  PROCEDURE BuildAdrFunction ;
  VAR
!    param,
!    paramTok,
     combinedTok,
     procTok,
     t,
*************** BEGIN
*** 10552,10558 ****
     PopT (noOfParameters) ;
     procSym := OperandT (noOfParameters + 1) ;
     procTok := OperandTok (noOfParameters + 1) ;  (* token of procedure ADR.  *)
!    endtok := OperandTok (1) ;  (* last parameter.  *)
     combinedTok := MakeVirtualTok (procTok, procTok, endtok) ;
     IF noOfParameters # 1
     THEN
--- 10570,10577 ----
     PopT (noOfParameters) ;
     procSym := OperandT (noOfParameters + 1) ;
     procTok := OperandTok (noOfParameters + 1) ;  (* token of procedure ADR.  *)
!    paramTok := OperandTok (1) ;  (* last parameter.  *)
!    param := OperandT (1) ;
     combinedTok := MakeVirtualTok (procTok, procTok, endtok) ;
     IF noOfParameters # 1
     THEN
*************** BEGIN
*** 10560,10587 ****
                      'SYSTEM procedure ADR expects 1 parameter') ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTF (Nil, Address)
!    ELSIF IsConstString (OperandT (1))
     THEN
!       returnVar := MakeLeftValue (combinedTok, OperandT (1), RightValue,
                                    GetSType (procSym)) ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (returnVar, GetSType (returnVar), combinedTok)
!    ELSIF (NOT IsVar(OperandT(1))) AND (NOT IsProcedure(OperandT(1)))
     THEN
!       MetaErrorNT0 (combinedTok,
!                     'SYSTEM procedure ADR expects a variable, procedure or a constant string as its parameter') ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (Nil, Address, combinedTok)
!    ELSIF IsProcedure (OperandT (1))
     THEN
!       returnVar := MakeLeftValue (combinedTok, OperandT (1), RightValue,
                                    GetSType (procSym)) ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (returnVar, GetSType (returnVar), combinedTok)
     ELSE
!       Type := GetSType (OperandT (1)) ;
        Dim := OperandD (1) ;
!       MarkArrayWritten (OperandT (1)) ;
        MarkArrayWritten (OperandA (1)) ;
        (* if the operand is an unbounded which has not been indexed
           then we will lookup its address from the unbounded record.
--- 10579,10607 ----
                      'SYSTEM procedure ADR expects 1 parameter') ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTF (Nil, Address)
!    ELSIF IsConstString (param)
     THEN
!       returnVar := MakeLeftValue (combinedTok, param, RightValue,
                                    GetSType (procSym)) ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (returnVar, GetSType (returnVar), combinedTok)
!    ELSIF (NOT IsVar (param)) AND (NOT IsProcedure (param))
     THEN
!       MetaErrorT1 (paramTok,
!                    'SYSTEM procedure ADR expects a variable, procedure or a constant string as its parameter,' +
!                    ' seen {%1Ed} {%1&s}', param) ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (Nil, Address, combinedTok)
!    ELSIF IsProcedure (param)
     THEN
!       returnVar := MakeLeftValue (combinedTok, param, RightValue,
                                    GetSType (procSym)) ;
        PopN (noOfParameters + 1) ;    (* destroy the arguments and function *)
        PushTFtok (returnVar, GetSType (returnVar), combinedTok)
     ELSE
!       Type := GetSType (param) ;
        Dim := OperandD (1) ;
!       MarkArrayWritten (param) ;
        MarkArrayWritten (OperandA (1)) ;
        (* if the operand is an unbounded which has not been indexed
           then we will lookup its address from the unbounded record.
*************** BEGIN
*** 10590,10596 ****
        IF IsUnbounded (Type) AND (Dim = 0)
        THEN
           (* we will reference the address field of the unbounded structure *)
!          UnboundedSym := OperandT (1) ;
           rw := OperandRW (1) ;
           PushTFrw (UnboundedSym, GetSType (UnboundedSym), rw) ;
           Field := GetUnboundedAddressOffset (GetSType (UnboundedSym)) ;
--- 10610,10616 ----
        IF IsUnbounded (Type) AND (Dim = 0)
        THEN
           (* we will reference the address field of the unbounded structure *)
!          UnboundedSym := param ;
           rw := OperandRW (1) ;
           PushTFrw (UnboundedSym, GetSType (UnboundedSym), rw) ;
           Field := GetUnboundedAddressOffset (GetSType (UnboundedSym)) ;
*************** BEGIN
*** 10614,10627 ****
        ELSE
           returnVar := MakeTemporary (combinedTok, RightValue) ;
           PutVar (returnVar, GetSType (procSym)) ;
!          IF GetMode (OperandT (1)) = LeftValue
           THEN
              PutVar (returnVar, GetSType (procSym)) ;
!             GenQuadO (combinedTok, ConvertOp, returnVar, GetSType (procSym), OperandT (1), FALSE)
           ELSE
!             GenQuadO (combinedTok, AddrOp, returnVar, NulSym, OperandT (1), FALSE)
           END ;
!          PutWriteQuad (OperandT (1), GetMode (OperandT (1)), NextQuad-1) ;
           rw := OperandMergeRW (1) ;
           Assert (IsLegal (rw))
        END ;
--- 10634,10647 ----
        ELSE
           returnVar := MakeTemporary (combinedTok, RightValue) ;
           PutVar (returnVar, GetSType (procSym)) ;
!          IF GetMode (param) = LeftValue
           THEN
              PutVar (returnVar, GetSType (procSym)) ;
!             GenQuadO (combinedTok, ConvertOp, returnVar, GetSType (procSym), param, FALSE)
           ELSE
!             GenQuadO (combinedTok, AddrOp, returnVar, NulSym, param, FALSE)
           END ;
!          PutWriteQuad (param, GetMode (param), NextQuad-1) ;
           rw := OperandMergeRW (1) ;
           Assert (IsLegal (rw))
        END ;
*************** BEGIN
*** 10710,10718 ****
           GenQuadO (resulttok, SizeOp, ReturnVar, NulSym, Type, TRUE)
        END
     ELSE
!       resulttok := functok ;
!       MetaErrorT1 (resulttok,
!                    '{%E}SYSTEM procedure {%kSIZE} expects a variable or type as its parameter, seen {%1Ed}',
                     OperandT (1)) ;
        ReturnVar := MakeConstLit (resulttok, MakeKey('0'), Cardinal)
     END ;
--- 10730,10738 ----
           GenQuadO (resulttok, SizeOp, ReturnVar, NulSym, Type, TRUE)
        END
     ELSE
!       paramtok := OperandTok (1) ;
!       MetaErrorT1 (paramtok,
!                    '{%E}SYSTEM procedure {%kSIZE} expects a variable or type as its parameter, seen {%1Ed} {%1&s}',
                     OperandT (1)) ;
        ReturnVar := MakeConstLit (resulttok, MakeKey('0'), Cardinal)
     END ;
*************** BEGIN
*** 10776,10783 ****
           PutVar (ReturnVar, Cardinal) ;
           GenQuadO (resulttok, SizeOp, ReturnVar, NulSym, GetSType (OperandT (1)), FALSE)
        ELSE
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTSIZE} expects a variable or type as its first parameter, seen {%1Ed}',
                        OperandT (1)) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
--- 10796,10804 ----
           PutVar (ReturnVar, Cardinal) ;
           GenQuadO (resulttok, SizeOp, ReturnVar, NulSym, GetSType (OperandT (1)), FALSE)
        ELSE
+          (* Spellcheck.  *)
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTSIZE} expects a variable or type as its first parameter, seen {%1Ed} {%1&s}',
                        OperandT (1)) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
*************** BEGIN
*** 10801,10807 ****
        ELSE
           resulttok := MakeVirtualTok (functok, functok, paramtok) ;
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTSIZE} expects the first parameter to be a record type, seen {%1d}',
                        Record) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
--- 10822,10828 ----
        ELSE
           resulttok := MakeVirtualTok (functok, functok, paramtok) ;
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTSIZE} expects the first parameter to be a record type, seen {%1d} {%1&s}',
                        Record) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
*************** BEGIN
*** 10865,10871 ****
           GenQuadO (resulttok, StandardFunctionOp, ReturnVar, ProcSym, OperandT(1), FALSE)
        ELSE
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTBITSIZE} expects a variable as its first parameter, seen {%1d}',
                        OperandT (1)) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
--- 10886,10892 ----
           GenQuadO (resulttok, StandardFunctionOp, ReturnVar, ProcSym, OperandT(1), FALSE)
        ELSE
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTBITSIZE} expects a variable as its first parameter, seen {%1d} {%1&s}',
                        OperandT (1)) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
*************** BEGIN
*** 10888,10894 ****
        ELSE
           resulttok := MakeVirtualTok (functok, functok, paramtok) ;
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTBITSIZE} expects the first parameter to be a record type, seen {%1d}',
                        Record) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
--- 10909,10915 ----
        ELSE
           resulttok := MakeVirtualTok (functok, functok, paramtok) ;
           MetaErrorT1 (resulttok,
!                       '{%E}SYSTEM procedure function {%kTBITSIZE} expects the first parameter to be a record type, seen {%1d} {%1&s}',
                        Record) ;
           ReturnVar := MakeConstLit (resulttok, MakeKey ('0'), Cardinal)
        END
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-libs/BinDict.def gcc-16-20251026/gcc/m2/gm2-libs/BinDict.def
*** gcc-16-20251019/gcc/m2/gm2-libs/BinDict.def	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/m2/gm2-libs/BinDict.def	Sun Oct 26 22:32:33 2025
***************
*** 0 ****
--- 1,92 ----
+ (* BinDict.def provides a generic binary dictionary.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ DEFINITION MODULE BinDict ;
+ 
+ FROM SYSTEM IMPORT ADDRESS ;
+ 
+ TYPE
+    Dictionary ;
+    Node ;
+    Compare   = PROCEDURE (ADDRESS, ADDRESS) : INTEGER ;
+    Delete    = PROCEDURE (ADDRESS) ;
+    VisitNode = PROCEDURE (Node) ;
+ 
+ 
+ (*
+    Init - create and return a new binary dictionary which will use
+           the compare procedure to order the contents as they are added.
+ *)
+ 
+ PROCEDURE Init (KeyCompare: Compare;
+                 KeyDelete, ValueDelete: Delete) : Dictionary ;
+ 
+ 
+ (*
+    Kill - delete the dictionary and its contents.
+           dict is assigned to NIL.
+ *)
+ 
+ PROCEDURE Kill (VAR dict: Dictionary) ;
+ 
+ 
+ (*
+    PostOrder - visit each dictionary entry in post order.
+ *)
+ 
+ PROCEDURE PostOrder (dict: Dictionary; visit: VisitNode) ;
+ 
+ 
+ (*
+    Insert - insert key value pair into the dictionary.
+ *)
+ 
+ PROCEDURE Insert (dict: Dictionary; key, value: ADDRESS) ;
+ 
+ 
+ (*
+    Get - return the value associated with the key or NIL
+          if it does not exist.
+ *)
+ 
+ PROCEDURE Get (dict: Dictionary; key: ADDRESS) : ADDRESS ;
+ 
+ 
+ (*
+    Value - return the value from node.
+ *)
+ 
+ PROCEDURE Value (node: Node) : ADDRESS ;
+ 
+ 
+ (*
+    Key - return the key from node.
+ *)
+ 
+ PROCEDURE Key (node: Node) : ADDRESS ;
+ 
+ 
+ END BinDict.
diff -Nrcpad gcc-16-20251019/gcc/m2/gm2-libs/BinDict.mod gcc-16-20251026/gcc/m2/gm2-libs/BinDict.mod
*** gcc-16-20251019/gcc/m2/gm2-libs/BinDict.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/m2/gm2-libs/BinDict.mod	Sun Oct 26 22:32:33 2025
***************
*** 0 ****
--- 1,272 ----
+ (* BinDict.mod provides a generic binary dictionary.
+ 
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+ 
+ This file is part of GNU Modula-2.
+ 
+ GNU Modula-2 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.
+ 
+ GNU Modula-2 is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+ 
+ Under Section 7 of GPL version 3, you are granted additional
+ permissions described in the GCC Runtime Library Exception, version
+ 3.1, as published by the Free Software Foundation.
+ 
+ You should have received a copy of the GNU General Public License and
+ a copy of the GCC Runtime Library Exception along with this program;
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  *)
+ 
+ IMPLEMENTATION MODULE BinDict ;
+ 
+ FROM Storage IMPORT ALLOCATE, DEALLOCATE ;
+ 
+ 
+ TYPE
+    Dictionary = POINTER TO RECORD
+                               content    : Node ;
+                               compare    : Compare ;
+                               deleteKey,
+                               deleteValue: Delete
+                            END ;
+ 
+    Node = POINTER TO RECORD
+                         dict : Dictionary ;
+                         left,
+                         right: Node ;
+                         key,
+                         value: ADDRESS ;
+                      END ;
+ 
+ 
+ (*
+    Init - create and return a new binary dictionary which will use
+           the compare procedure to order the contents as they are
+           added.
+ *)
+ 
+ PROCEDURE Init (KeyCompare: Compare; KeyDelete,
+                 ValueDelete: Delete) : Dictionary ;
+ VAR
+    dict: Dictionary ;
+ BEGIN
+    NEW (dict) ;
+    WITH dict^ DO
+       content := NIL ;
+       compare := KeyCompare ;
+       deleteKey := KeyDelete ;
+       deleteValue := ValueDelete
+    END ;
+    RETURN dict
+ END Init ;
+ 
+ 
+ (*
+    Kill - delete the dictionary and its contents.
+           dict is assigned to NIL.
+ *)
+ 
+ PROCEDURE Kill (VAR dict: Dictionary) ;
+ BEGIN
+    PostOrder (dict, DeleteNode) ;
+    DISPOSE (dict) ;
+    dict := NIL
+ END Kill ;
+ 
+ 
+ (*
+    DeleteNode - deletes node dict, key and value.
+ *)
+ 
+ PROCEDURE DeleteNode (node: Node) ;
+ BEGIN
+    IF node # NIL
+    THEN
+       WITH node^ DO
+          dict^.deleteKey (key) ;
+          dict^.deleteValue (value)
+       END ;
+       DISPOSE (node)
+    END
+ END DeleteNode ;
+ 
+ 
+ (*
+    Insert - insert key value pair into the dictionary.
+ *)
+ 
+ PROCEDURE Insert (dict: Dictionary; key, value: ADDRESS) ;
+ BEGIN
+    dict^.content := InsertNode (dict, dict^.content, key, value)
+ END Insert ;
+ 
+ 
+ (*
+    InsertNode - insert the key value pair as a new node in the
+                 binary tree within dict.
+ *)
+ 
+ PROCEDURE InsertNode (dict: Dictionary;
+                       node: Node;
+                       key, value: ADDRESS) : Node ;
+ BEGIN
+    IF node = NIL
+    THEN
+       RETURN ConsNode (dict, key, value, NIL, NIL)
+    ELSE
+       CASE dict^.compare (key, node^.key) OF
+ 
+        0:  HALT |  (* Not expecting to replace a key value.  *)
+       -1:  RETURN ConsNode (dict, node^.key, node^.value,
+                             InsertNode (dict, node^.left,
+                                         key, value), node^.right) |
+       +1:  RETURN ConsNode (dict, node^.key, node^.value,
+                             node^.left,
+                             InsertNode (dict, node^.right,
+                                         key, value))
+       END
+    END
+ END InsertNode ;
+ 
+ 
+ (*
+    ConsNode - return a new node containing the pairing key and value.
+               The new node fields are assigned left, right and dict.
+ *)
+ 
+ PROCEDURE ConsNode (dict: Dictionary;
+                     key, value: ADDRESS;
+                     left, right: Node) : Node ;
+ VAR
+    node: Node ;
+ BEGIN
+    NEW (node) ;
+    node^.key := key ;
+    node^.value := value ;
+    node^.left := left ;
+    node^.right := right ;
+    node^.dict := dict ;
+    RETURN node
+ END ConsNode ;
+ 
+ 
+ (*
+    KeyExist - return TRUE if dictionary contains an entry key.
+               It compares the content and not the address pointer.
+ *)
+ 
+ PROCEDURE KeyExist (dict: Dictionary; key: ADDRESS) : BOOLEAN ;
+ BEGIN
+    RETURN KeyExistNode (dict^.content, key)
+ END KeyExist ;
+ 
+ 
+ (*
+    KeyExistNode - return TRUE if the binary tree under node contains
+                   key.
+ *)
+ 
+ PROCEDURE KeyExistNode (node: Node; key: ADDRESS) : BOOLEAN ;
+ BEGIN
+    IF node # NIL
+    THEN
+       CASE node^.dict^.compare (key, node^.key) OF
+ 
+        0:  RETURN TRUE |
+       -1:  RETURN KeyExistNode (node^.left, key) |
+       +1:  RETURN KeyExistNode (node^.right, key)
+ 
+       END
+    END ;
+    RETURN FALSE
+ END KeyExistNode ;
+ 
+ 
+ (*
+    Value - return the value from node.
+ *)
+ 
+ PROCEDURE Value (node: Node) : ADDRESS ;
+ BEGIN
+    RETURN node^.value
+ END Value ;
+ 
+ 
+ (*
+    Key - return the key from node.
+ *)
+ 
+ PROCEDURE Key (node: Node) : ADDRESS ;
+ BEGIN
+    RETURN node^.value
+ END Key ;
+ 
+ 
+ (*
+    Get - return the value associated with the key or NIL
+          if it does not exist.
+ *)
+ 
+ PROCEDURE Get (dict: Dictionary; key: ADDRESS) : ADDRESS ;
+ BEGIN
+    RETURN GetNode (dict^.content, key)
+ END Get ;
+ 
+ 
+ (*
+    GetNode - return the value in binary node tree which
+              is associated with key.
+ *)
+ 
+ PROCEDURE GetNode (node: Node; key: ADDRESS) : ADDRESS ;
+ BEGIN
+    IF node # NIL
+    THEN
+       CASE node^.dict^.compare (key, node^.key) OF
+ 
+        0: RETURN node^.value |
+       +1: RETURN GetNode (node^.right, key) |
+       -1: RETURN GetNode (node^.left, key)
+ 
+       END
+    END ;
+    RETURN NIL
+ END GetNode ;
+ 
+ 
+ (*
+    PostOrder - visit each dictionary entry in post order.
+ *)
+ 
+ PROCEDURE PostOrder (dict: Dictionary; visit: VisitNode) ;
+ BEGIN
+    IF dict # NIL
+    THEN
+       PostOrderNode (dict^.content, visit)
+    END
+ END PostOrder ;
+ 
+ 
+ (*
+    PostOrderNode - visit the tree node in post order.
+ *)
+ 
+ PROCEDURE PostOrderNode (node: Node; visit: VisitNode) ;
+ BEGIN
+    IF node # NIL
+    THEN
+       PostOrderNode (node^.left, visit) ;
+       PostOrderNode (node^.right, visit) ;
+       visit (node)
+    END
+ END PostOrderNode ;
+ 
+ 
+ END BinDict.
diff -Nrcpad gcc-16-20251019/gcc/match.pd gcc-16-20251026/gcc/match.pd
*** gcc-16-20251019/gcc/match.pd	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/match.pd	Sun Oct 26 22:32:33 2025
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 794,799 ****
--- 794,820 ----
   (rdiv @0 (negate @1))
   (rdiv (negate @0) @1))
  
+ /* convert semantics of round(x) function to floor(x+0.5).  */
+ /* (x-floor(x)) < (ceil(x)-x) ? floor(x) : ceil(x) --> floor(x+0.5).  */
+ /* (x-floor(x)) >= (ceil(x)-x) ? ceil(x) : floor(x) --> floor(x+0.5).  */
+ /* (ceil(x)-x) > (x-floor(x)) ? floor(x) : ceil(x) --> floor(x+0.5).  */
+ /* (ceil(x)-x) <= (x-floor(x)) ? ceil(x) : floor(x) --> floor(x+0.5).  */
+ (for op (lt lt lt lt ge ge ge ge)
+      bt (BUILT_IN_FLOORF BUILT_IN_FLOOR BUILT_IN_FLOORL IFN_FLOOR
+ 	 BUILT_IN_CEILF BUILT_IN_CEIL BUILT_IN_CEILL IFN_CEIL)
+      bf (BUILT_IN_CEILF BUILT_IN_CEIL BUILT_IN_CEILL IFN_CEIL
+ 	 BUILT_IN_FLOORF BUILT_IN_FLOOR BUILT_IN_FLOORL IFN_FLOOR)
+      floor (BUILT_IN_FLOORF BUILT_IN_FLOOR BUILT_IN_FLOORL IFN_FLOOR
+ 	    BUILT_IN_FLOORF BUILT_IN_FLOOR BUILT_IN_FLOORL IFN_FLOOR)
+      ceil (BUILT_IN_CEILF BUILT_IN_CEIL BUILT_IN_CEILL IFN_CEIL
+ 	   BUILT_IN_CEILF BUILT_IN_CEIL BUILT_IN_CEILL IFN_CEIL)
+  (simplify
+   (cond (op:c (minus:s SSA_NAME@0 (floor SSA_NAME@0))
+ 	      (minus:s (ceil SSA_NAME@0) SSA_NAME@0))
+ 	(bt SSA_NAME@0) (bf SSA_NAME@0))
+   (if (!HONOR_SIGNED_ZEROS (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type))
+    (floor (plus @0 { build_real (type, dconsthalf); })))))
+ 
  (if (flag_unsafe_math_optimizations)
   /* Simplify (C / x op 0.0) to x op 0.0 for C != 0, C != Inf/Nan.
      Since C / x may underflow to zero, do this only for unsafe math.  */
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6572,6578 ****
       tree c1_type = TREE_TYPE (@3), c2_type = TREE_TYPE (@2);
       enum tree_code code = ERROR_MARK;
  
!      if (INTEGRAL_TYPE_P (from_type)
  	 && int_fits_type_p (@2, from_type)
  	 && (types_match (c1_type, from_type)
  	     || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
--- 6593,6621 ----
       tree c1_type = TREE_TYPE (@3), c2_type = TREE_TYPE (@2);
       enum tree_code code = ERROR_MARK;
  
!      /* `((signed)a) < 0` should be converted back into
!         `a >= (unsigned)SIGNED_TYPE_MIN`.
! 	`((signed)a) >= 0` should be converted back into
! 	`a < (unsigned)SIGNED_TYPE_MIN`. */
!      if (integer_zerop (@3)
!          && INTEGRAL_TYPE_P (from_type)
!          && (cmp == GE_EXPR || cmp == LT_EXPR)
! 	 && TYPE_UNSIGNED (from_type)
! 	 && !TYPE_UNSIGNED (c1_type)
! 	 && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
! 	 && int_fits_type_p (@2, from_type)
! 	 && (types_match (c2_type, from_type)
! 	     || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
! 		 && (TYPE_UNSIGNED (from_type)
! 		     || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
! 	{
! 	  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
! 	  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
! 	  code = minmax_from_comparison (ncmp, @1, c1, wi::to_widest (@2));
! 	}
! 
!      if (code == ERROR_MARK
!          && INTEGRAL_TYPE_P (from_type)
  	 && int_fits_type_p (@2, from_type)
  	 && (types_match (c1_type, from_type)
  	     || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6894,6899 ****
--- 6937,6971 ----
            && integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, @3, @4)))
        (max @2 @4))))))
  
+ /* Optimize (((signed)a CMP 0) ? max<a,CST2> : CST3 */
+ (for cmp    (lt  ge)
+      minmax (min max)
+  (simplify
+   (cond (cmp:c (nop_convert @0) integer_zerop@1) (minmax@2 @0 INTEGER_CST@3) INTEGER_CST@4)
+    (if (!TYPE_UNSIGNED (TREE_TYPE (@1))
+         && TYPE_UNSIGNED (TREE_TYPE (@0)))
+     (with
+      {
+        tree_code code;
+        /* ((signed)a) < 0 -> a > SIGNED_MAX */
+        /* ((signed)a) >= 0 -> a <= SIGNED_MAX */
+        widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
+        tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
+        code = minmax_from_comparison (ncmp, @0, c1, wi::to_widest (@4));
+      }
+      (if (ncmp == LE_EXPR
+ 	  && code == MIN_EXPR
+ 	  && wi::le_p (wi::to_wide (@3),
+ 		       wi::to_wide (@4),
+ 		       TYPE_SIGN (type)))
+       (min @2 @4)
+       (if (ncmp == GT_EXPR
+ 	   && code == MAX_EXPR
+ 	   && wi::ge_p (wi::to_wide (@3),
+ 		        wi::to_wide (@4),
+ 		        TYPE_SIGN (type)))
+        (max @2 @4)))))))
+ 
  #if GIMPLE
  /* These patterns should be after min/max detection as simplifications
     of `(type)(zero_one ==/!= 0)` to `(type)(zero_one)`
*************** and,
*** 11855,11860 ****
--- 11927,11985 ----
        (if (full_perm_p)
  	(vec_perm (op@3 @0 @1) @3 @2))))))
  
+ /* Fold
+      x = VEC_PERM_EXPR <a, ANY, sel0>;
+      y = VEC_PERM_EXPR <ANY, b, sel0>;
+      c = VEC_PERM_EXPR <x, y, sel1>;
+    into
+      c = VEC_PERM_EXPR <a, b, sel0>;
+    if sel0 combined with sel1 denotes extracting a contiguous subvector from
+    the conceptual concatenated [ a | b ].  */
+ (simplify
+  (vec_perm (view_convert? (vec_perm @0 @4 VECTOR_CST@2))
+ 	   (view_convert? (vec_perm @5 @1 VECTOR_CST@2))
+ 	   VECTOR_CST@3)
+  (with
+   {
+     bool can_fold = false;
+     unsigned HOST_WIDE_INT nelts;
+     vec_perm_builder builder;
+     if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
+ 	&& tree_to_vec_perm_builder (&builder, @2))
+       {
+ 	/* Set can_fold to true when
+ 	   - sel0 is a vector of consecutive indices.
+ 	   - sel1 is composed of two parts of consecutive indices [ ia | ib ],
+ 	     selecting the elements originally in 'a' and 'b', respectively.  */
+ 	vec_perm_indices sel0 (builder, 2, VECTOR_CST_NELTS (@2));
+ 	unsigned int sel0_first_idx = sel0[0].to_constant ();
+ 	unsigned int elt_size = vector_element_bits (TREE_TYPE (@0));
+ 	unsigned int ia_size = tree_to_uhwi (TYPE_SIZE (type))
+ 			       - elt_size * sel0_first_idx;
+ 	unsigned int ib_start;
+ 	if (sel0.series_p (0, 1, sel0_first_idx, 1)
+ 	    && multiple_p (ia_size, vector_element_bits (type), &ib_start)
+ 	    && tree_to_vec_perm_builder (&builder, @3))
+ 	  {
+ 	    /* Check if the ib part contains consecutive indices starting from
+ 	       'nelts + ib_start'.  */
+ 	    vec_perm_indices sel1 (builder, 2, VECTOR_CST_NELTS (@3));
+ 	    can_fold = sel1.series_p (ib_start, 1, nelts + ib_start, 1);
+ 
+ 	    /* Check if the ia part contains indices [0 ... ib_start - 1].  */
+ 	    if (can_fold)
+ 	      for (unsigned int i = 0; i < ib_start; i++)
+ 		if (sel1[i].to_constant () != i)
+ 		  {
+ 		    can_fold = false;
+ 		    break;
+ 		  }
+ 	  }
+       }
+   }
+   (if (can_fold)
+     (view_convert (vec_perm @0 @1 @2)))))
+ 
  #if GIMPLE
  /* Simplify (a >> 1) + (b >> 1) + ((a | b) & 1) to .AVG_CEIL (a, b).
     Similar for (a | b) - ((a ^ b) >> 1).  */
diff -Nrcpad gcc-16-20251019/gcc/omp-low.cc gcc-16-20251026/gcc/omp-low.cc
*** gcc-16-20251019/gcc/omp-low.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/omp-low.cc	Sun Oct 26 22:32:33 2025
*************** check_omp_nesting_restrictions (gimple *
*** 3307,3313 ****
  	    }
  	  else if (gimple_code (stmt) == GIMPLE_OMP_ATOMIC_LOAD
  		   || gimple_code (stmt) == GIMPLE_OMP_ATOMIC_STORE
! 		   || gimple_code (stmt) == GIMPLE_OMP_SCAN)
  	    return true;
  	  else if (gimple_code (stmt) == GIMPLE_OMP_FOR
  		   && gimple_omp_for_kind (ctx->stmt) == GF_OMP_FOR_KIND_SIMD)
--- 3307,3314 ----
  	    }
  	  else if (gimple_code (stmt) == GIMPLE_OMP_ATOMIC_LOAD
  		   || gimple_code (stmt) == GIMPLE_OMP_ATOMIC_STORE
! 		   || gimple_code (stmt) == GIMPLE_OMP_SCAN
! 		   || gimple_code (stmt) == GIMPLE_OMP_STRUCTURED_BLOCK)
  	    return true;
  	  else if (gimple_code (stmt) == GIMPLE_OMP_FOR
  		   && gimple_omp_for_kind (ctx->stmt) == GF_OMP_FOR_KIND_SIMD)
*************** check_omp_nesting_restrictions (gimple *
*** 3337,3343 ****
  	       && gimple_code (stmt) != GIMPLE_OMP_PARALLEL
  	       && (gimple_code (stmt) != GIMPLE_OMP_FOR
  		   || gimple_omp_for_kind (stmt) != GF_OMP_FOR_KIND_SIMD)
! 	       && gimple_code (stmt) != GIMPLE_OMP_SCAN)
  	{
  	  if (ctx->loop_p)
  	    error_at (gimple_location (stmt),
--- 3338,3345 ----
  	       && gimple_code (stmt) != GIMPLE_OMP_PARALLEL
  	       && (gimple_code (stmt) != GIMPLE_OMP_FOR
  		   || gimple_omp_for_kind (stmt) != GF_OMP_FOR_KIND_SIMD)
! 	       && gimple_code (stmt) != GIMPLE_OMP_SCAN
! 	       && gimple_code (stmt) != GIMPLE_OMP_STRUCTURED_BLOCK)
  	{
  	  if (ctx->loop_p)
  	    error_at (gimple_location (stmt),
diff -Nrcpad gcc-16-20251019/gcc/optabs.def gcc-16-20251026/gcc/optabs.def
*** gcc-16-20251019/gcc/optabs.def	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/optabs.def	Sun Oct 26 22:32:33 2025
*************** OPTAB_D (reduc_umin_scal_optab, "reduc_u
*** 403,408 ****
--- 403,411 ----
  OPTAB_D (reduc_and_scal_optab,  "reduc_and_scal_$a")
  OPTAB_D (reduc_ior_scal_optab,  "reduc_ior_scal_$a")
  OPTAB_D (reduc_xor_scal_optab,  "reduc_xor_scal_$a")
+ OPTAB_D (reduc_sbool_and_scal_optab, "reduc_sbool_and_scal_$a")
+ OPTAB_D (reduc_sbool_ior_scal_optab, "reduc_sbool_ior_scal_$a")
+ OPTAB_D (reduc_sbool_xor_scal_optab, "reduc_sbool_xor_scal_$a")
  OPTAB_D (fold_left_plus_optab, "fold_left_plus_$a")
  OPTAB_D (mask_fold_left_plus_optab, "mask_fold_left_plus_$a")
  OPTAB_D (mask_len_fold_left_plus_optab, "mask_len_fold_left_plus_$a")
diff -Nrcpad gcc-16-20251019/gcc/poly-int.h gcc-16-20251026/gcc/poly-int.h
*** gcc-16-20251019/gcc/poly-int.h	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/poly-int.h	Sun Oct 26 22:32:33 2025
*************** template<> struct poly_int_fullness<true
*** 374,380 ****
  /* A class containing polynomial integers.  The polynomial has N coefficients
     of type C, and N - 1 indeterminates.  */
  template<unsigned int N, typename C>
! struct poly_int
  {
  public:
    poly_int () = default;
--- 374,380 ----
  /* A class containing polynomial integers.  The polynomial has N coefficients
     of type C, and N - 1 indeterminates.  */
  template<unsigned int N, typename C>
! class poly_int
  {
  public:
    poly_int () = default;
diff -Nrcpad gcc-16-20251019/gcc/range-op.cc gcc-16-20251026/gcc/range-op.cc
*** gcc-16-20251019/gcc/range-op.cc	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/range-op.cc	Sun Oct 26 22:32:33 2025
*************** operator_cast::fold_range (irange &r, tr
*** 3103,3110 ****
        int_range_max tmp;
        fold_pair (tmp, x, inner, outer);
        r.union_ (tmp);
        if (r.varying_p ())
! 	return true;
      }
  
    update_bitmask (r, inner, outer);
--- 3103,3111 ----
        int_range_max tmp;
        fold_pair (tmp, x, inner, outer);
        r.union_ (tmp);
+       // If we hit varying, go update the bitmask.
        if (r.varying_p ())
! 	break;
      }
  
    update_bitmask (r, inner, outer);
*************** operator_cast::op1_range (irange &r, tre
*** 3204,3209 ****
--- 3205,3229 ----
  	}
        // And intersect with any known value passed in the extra operand.
        r.intersect (op2);
+       if (r.undefined_p ())
+ 	return true;
+ 
+       // Now create a bitmask indicating that the lower bit must match the
+       // bits in the LHS.   Zero-extend LHS bitmask to precision of op1.
+       irange_bitmask bm = lhs.get_bitmask ();
+       wide_int mask = wide_int::from (bm.mask (), TYPE_PRECISION (type),
+ 				      UNSIGNED);
+       wide_int value = wide_int::from (bm.value (), TYPE_PRECISION (type),
+ 				       UNSIGNED);
+ 
+       // Set then additonal unknown bits in mask.
+       wide_int lim = wi::mask (TYPE_PRECISION (lhs_type), true,
+ 			       TYPE_PRECISION (type));
+       mask = mask | lim;
+ 
+       // Now set the new bitmask for the range.
+       irange_bitmask new_bm (value, mask);
+       r.update_bitmask (new_bm);
        return true;
      }
  
*************** operator_bitwise_and::wi_fold (irange &r
*** 3502,3507 ****
--- 3522,3543 ----
  			       const wide_int &rh_lb,
  			       const wide_int &rh_ub) const
  {
+   // The AND algorithm does not handle complex signed operations well.
+   // If a signed range crosses the boundry between signed and unsigned
+   // proces sit as 2 ranges and union the results.
+   if (TYPE_SIGN (type) == SIGNED
+       && wi::neg_p (lh_lb, SIGNED) != wi::neg_p (lh_ub, SIGNED))
+     {
+       int prec = TYPE_PRECISION (type);
+       int_range_max tmp;
+       // Process [lh_lb, -1]
+       wi_fold (tmp, type, lh_lb, wi::minus_one (prec), rh_lb, rh_ub);
+       // Now Process [0, rh_ub]
+       wi_fold (r, type, wi::zero (prec), lh_ub, rh_lb, rh_ub);
+       r.union_ (tmp);
+       return;
+     }
+ 
    if (wi_optimize_and_or (r, BIT_AND_EXPR, type, lh_lb, lh_ub, rh_lb, rh_ub))
      return;
  
diff -Nrcpad gcc-16-20251019/gcc/testsuite/ChangeLog gcc-16-20251026/gcc/testsuite/ChangeLog
*** gcc-16-20251019/gcc/testsuite/ChangeLog	Sun Oct 19 22:32:14 2025
--- gcc-16-20251026/gcc/testsuite/ChangeLog	Sun Oct 26 22:32:33 2025
***************
*** 1,3 ****
--- 1,492 ----
+ 2025-10-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/114023
+ 	* gfortran.dg/is_contiguous_5.f90: New test.
+ 
+ 2025-10-25  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* gcc.target/loongarch/lasx-reduc-1.c: New test.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gcc.dg/pr110405.c: New.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/114025
+ 	* g++.dg/pr114025.C: New.
+ 
+ 2025-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122407
+ 	* gm2.dg/spell/iso/fail/badspellabs.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspelladr.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellcap.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellchr.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellchr2.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspelldec.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellexcl.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellinc.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellincl.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellnew.mod: New test.
+ 	* gm2.dg/spell/iso/fail/badspellsize.mod: New test.
+ 	* gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp: New test.
+ 
+ 2025-10-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/122402
+ 	* gcc.target/aarch64/auto-init-padding-2.c: Turn off SRA.
+ 	* gcc.target/aarch64/auto-init-padding-4.c: Likewise.
+ 
+ 2025-10-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122386
+ 	* gfortran.dg/transfer_array_subref_2.f90: New test.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gcc.dg/pr114725.c: New.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/118254
+ 	PR tree-optimization/114331
+ 	* gcc.dg/pr114331.c: New.
+ 	* gcc.dg/pr118254.c: New.
+ 
+ 2025-10-24  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* gcc.dg/torture/vect-permute-ice.c: New test.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/vect/vect-pr122406-1.c: Adjust to expect reduction
+ 	chain vectorization.
+ 	* gcc.dg/vect/vect-pr122406-2.c: Likewise.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122406
+ 	* gcc.dg/vect/vect-pr122406-1.c: New testcase.
+ 	* gcc.dg/vect/vect-pr122406-2.c: Likewise.
+ 
+ 2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR fortran/121452
+ 	* c-c++-common/gomp/pr121452-1.c: New test.
+ 	* c-c++-common/gomp/pr121452-2.c: New test.
+ 	* gfortran.dg/gomp/pr121452-1.f90: New test.
+ 	* gfortran.dg/gomp/pr121452-2.f90: New test.
+ 	* gfortran.dg/gomp/pr121452-3.f90: New test.
+ 
+ 2025-10-24  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122323
+ 	* gcc.target/i386/builtin-fabs-2.c: Also scan (%edi)for x32.
+ 
+ 2025-10-24  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* gcc.dg/fold-vecperm-1.c: New test.
+ 
+ 2025-10-24  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* lib/target-supports.exp (check_weak_available):
+ 	Return 1 for VxWorks7.
+ 
+ 2025-10-24  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* gcc.dg/c23-static-assert-5.c, gcc.dg/c23-static-assert-6.c,
+ 	gcc.dg/c23-static-assert-7.c, gcc.dg/c23-static-assert-8.c,
+ 	gcc.dg/c2y-static-assert-2.c, gcc.dg/c2y-static-assert-3.c,
+ 	gcc.dg/c2y-static-assert-4.c: New tests.
+ 
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* cobol.dg/group2/Length_overflow__2_.out: Updated test result.
+ 	* cobol.dg/group2/Length_overflow_with_offset__1_.out: Likewise.
+ 	* cobol.dg/group2/Offset_overflow.out: Likewise.
+ 	* cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob: New test.
+ 	* cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out: New test.
+ 	* cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob: New test.
+ 	* cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out: New test.
+ 	* cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob: New test.
+ 	* cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out: New test.
+ 	* cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob: New test.
+ 	* cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out: New test.
+ 	* cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob: New test.
+ 	* cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob: New test.
+ 	* cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out: New test.
+ 	* cobol.dg/group2/Recursive_subscripts.cob: New test.
+ 	* cobol.dg/group2/Recursive_subscripts.out: New test.
+ 	* cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob: New test.
+ 	* cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out: New test.
+ 	* cobol.dg/group2/Subscript_by_arithmetic_expression.cob: New test.
+ 	* cobol.dg/group2/Subscript_out_of_bounds__1_.cob: New test.
+ 	* cobol.dg/group2/Subscript_out_of_bounds__1_.out: New test.
+ 	* cobol.dg/group2/Subscript_out_of_bounds__2_.cob: New test.
+ 	* cobol.dg/group2/Subscript_out_of_bounds__2_.out: New test.
+ 	* cobol.dg/group2/Subscripted_refmods.cob: New test.
+ 	* cobol.dg/group2/Subscripted_refmods.out: New test.
+ 	* cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob: New test.
+ 	* cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out: New test.
+ 	* cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob: New test.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* gcc.dg/tree-ssa/bool-12.c: Update based on when BIT_AND/BIT_IOR
+ 	is created and no longer MIN/MAX.
+ 
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 	    James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* cobol.dg/typo-1.cob: New test for squiggles and carets.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* gcc.target/aarch64/fmv_priority1.c: New test.
+ 	* gcc.target/aarch64/fmv_priority2.c: New test.
+ 	* gcc.target/aarch64/fmv_priority.in: Support file.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/122190
+ 	* gcc.target/aarch64/pr122190.c: New test
+ 
+ 2025-10-23  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* gcc.dg/fold-round-1.c: New test.
+ 
+ 2025-10-23  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122223
+ 	* gcc.target/arm/mve/intrinsics/pr122223.c: Relax expected code.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* gcc.target/i386/pr101639_reduc_mask_vdi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_vqi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_vsi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_ior_vqi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_and_vqi.c: New test.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* gcc.target/i386/pr101639_reduc_mask_di.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_hi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_qi.c: New test.
+ 	* gcc.target/i386/pr101639_reduc_mask_si.c: New test.
+ 
+ 2025-10-22  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR middle-end/122378
+ 	* c-c++-common/gomp/attrs-metadirective-2.c: Uncomment local label
+ 	declaration.
+ 	* c-c++-common/gomp/metadirective-2.c: Likewise.
+ 
+ 2025-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/122302
+ 	* g++.dg/cpp0x/pr122302.C: New test.
+ 	* g++.dg/cpp/embed-27.C: New test.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-10.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-11.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-12.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-13.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-14.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-15.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-16.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-17.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-18.c: New test.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gcc.target/aarch64/vect-reduc-bool-1.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-2.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-3.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-4.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-5.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-6.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-7.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-8.c: New test.
+ 	* gcc.target/aarch64/vect-reduc-bool-9.c: New test.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-1.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-2.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-3.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-4.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-5.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-6.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-7.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-8.c: New test.
+ 	* gcc.target/aarch64/sve/vect-reduc-bool-9.c: New test.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122364
+ 	* gcc.dg/vect/vect-reduc-chain-5.c: New testcase.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122370
+ 	* gcc.dg/vect/vect-pr122370.c: New testcase.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122371
+ 	* gcc.dg/vect/vect-pr122371.c: New testcase.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122365
+ 	* gcc.dg/vect/vect-reduc-bool-9.c: New testcase.
+ 
+ 2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* g++.target/i386/mv16.C: Ditto.
+ 	* gcc.target/i386/funcspec-56.inc: Handle new march.
+ 
+ 2025-10-22  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* gcc.target/i386/pr122320-mask16.c: New test.
+ 	* gcc.target/i386/pr122320-mask2.c: New test.
+ 	* gcc.target/i386/pr122320-mask32.c: New test.
+ 	* gcc.target/i386/pr122320-mask4.c: New test.
+ 	* gcc.target/i386/pr122320-mask64.c: New test.
+ 	* gcc.target/i386/pr122320-mask8.c: New test.
+ 
+ 2025-10-22  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* jit.dg/all-non-failing-tests.h: Mention new test.
+ 	* jit.dg/test-sized-float.c: New test.
+ 
+ 2025-10-21  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* gcc.dg/c2y-generic-6.c: New test.
+ 	* gcc.dg/c2y-generic-7.c: New test.
+ 
+ 2025-10-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/ext/is_implicit_lifetime.C: New test.
+ 
+ 2025-10-21  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122189
+ 	* gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
+ 	* gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
+ 	* gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
+ 	* gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
+ 
+ 2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR c/120180
+ 	PR fortran/122306
+ 	* c-c++-common/gomp/imperfect1.c: Adjust dg-error.
+ 	* c-c++-common/gomp/imperfect4.c: Likewise.
+ 	* c-c++-common/gomp/pr120180.c: Move to...
+ 	* c-c++-common/gomp/pr120180-1.c: ...here. Remove dg-error.
+ 	* g++.dg/gomp/attrs-imperfect1.C: Adjust dg-error.
+ 	* g++.dg/gomp/attrs-imperfect4.C: Likewise.
+ 	* gfortran.dg/gomp/declare-variant-2.f90: Adjust dg-error.
+ 	* gfortran.dg/gomp/declare-variant-20.f90: Likewise.
+ 	* c-c++-common/gomp/pr120180-2.c: New test.
+ 	* g++.dg/gomp/pr120180-1.C: New test.
+ 	* gfortran.dg/gomp/pr120180-1.f90: New test.
+ 	* gfortran.dg/gomp/pr120180-2.f90: New test.
+ 	* gfortran.dg/gomp/pr122306-1.f90: New file.
+ 	* gfortran.dg/gomp/pr122306-2.f90: New file.
+ 
+ 2025-10-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* gcc.target/i386/sse4_1-stv-10.c: New test case.
+ 	* gcc.target/i386/sse4_1-stv-11.c: Likewise.
+ 	* gcc.target/i386/sse4_1-stv-12.c: Likewise.
+ 
+ 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-c++-common/gomp/assumes-2.c: Change for 'invalid'
+ 	to 'unknown' change for end directives.
+ 	* c-c++-common/gomp/begin-assumes-2.c: Likewise.
+ 	* c-c++-common/gomp/assume-2.c: Likewise. Check 'declare
+ 	mapper'.
+ 
+ 2025-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120687
+ 	* gcc.dg/vect/vect-reduc-chain-4.c: New testcase.
+ 
+ 2025-10-21  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR target/104116
+ 	* gcc.dg/vect/pr104116-ceil-div-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-div-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-div.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-mod-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-mod-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-mod.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-udiv-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-udiv-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-udiv.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-umod-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-umod-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-ceil-umod.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-div-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-div-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-div.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-mod-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-mod-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-floor-mod.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-div-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-div-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-div.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-mod-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-mod-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-mod.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-udiv-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-udiv-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-udiv.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-umod-2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-umod-pow2.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116-round-umod.c: disable vectorization.
+ 	* gcc.dg/vect/pr104116.h (init_arr): use std idiom, correct
+ 	indentation.
+ 	(init_uarr): use std idiom.
+ 
+ 2025-10-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/95699
+ 	PR tree-optimization/101024
+ 	PR tree-optimization/110068
+ 	* gcc.dg/tree-ssa/pr101024-1.c: New test.
+ 	* gcc.dg/tree-ssa/pr110068-1.c: New test.
+ 
+ 2025-10-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/reduc/reduc-8.c: Adjust expected output.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* jit.dg/all-non-failing-tests.h: Add test-arrays-u64.c.
+ 	* jit.dg/test-arrays-u64.c: New test.
+ 
+ 2025-10-20  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* gcc.dg/ipa/ipcp-cb-spec1.c: Moved to libgomp/testsuite/libgomp.c/.
+ 	* gcc.dg/ipa/ipcp-cb-spec2.c: Likewise.
+ 	* gcc.dg/ipa/ipcp-cb1.c: Likewise.
+ 
+ 2025-10-20  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* jit.dg/test-error-array-bounds.c: Fix test.
+ 
+ 2025-10-20  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR c++/114457
+ 	* c-c++-common/goacc/kernels-decompose-pr100280-1.c: Skip for
+ 	c++26 until PR121975 is fixed.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/component_value1.adb: New test.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/use_type3.adb: New test.
+ 
+ 2025-10-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* gcc.target/aarch64/acle/asm-inlined-sysreg-1.c: New test.
+ 	* gcc.target/aarch64/acle/asm-inlined-sysreg-2.c: Likewise.
+ 	* gcc.target/aarch64/acle/rwsr-gated-1.c: Likewise.
+ 	* gcc.target/aarch64/acle/rwsr-gated-2.c: Likewise.
+ 	* lib/target-supports.exp
+ 	(check_effective_target_aarch64_sysreg_guarding_ok): Check
+ 	assembler support of -menable-sysreg-checking flag.
+ 
+ 2025-10-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/riscv/rvv/vsetvl/imm_switch-6.c: Skip scan-asm test for -O1 too.
+ 	* gcc.target/riscv/rvv/vsetvl/imm_switch-7.c: Likewise.
+ 	* gcc.target/riscv/shrink-wrap-1.c: Likewise.  Skip for -Og as well.
+ 	* gcc.target/riscv/xandes/xandesperf-1.c: Adjust expected output.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/renaming18.adb: New test.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/101639
+ 	PR tree-optimization/103495
+ 	* gcc.dg/vect/vect-reduc-bool-1.c: New testcase.
+ 	* gcc.dg/vect/vect-reduc-bool-2.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-3.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-4.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-5.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-6.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-7.c: Likewise.
+ 	* gcc.dg/vect/vect-reduc-bool-8.c: Likewise.
+ 
+ 2025-10-20  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/99930
+ 	PR target/122323
+ 	* gcc.target/i386/builtin-copysign-2.c: New test.
+ 	* gcc.target/i386/builtin-copysign-3.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-4.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-5.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-6.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-7.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-8a.c: Likewise.
+ 	* gcc.target/i386/builtin-copysign-8b.c: Likewise.
+ 	* gcc.target/i386/builtin-fabs-1.c: Likewise.
+ 	* gcc.target/i386/builtin-fabs-2.c: Likewise.
+ 
+ 2025-10-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR testsuite/122212
+ 	PR testsuite/52641
+ 	* gcc.dg/torture/pr122212.c: Pass 0xffffffff instead of -1u
+ 	for all bits set in uint32_t.
+ 
+ 2025-10-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR testsuite/122016
+ 	PR testsuite/52641
+ 	* gcc.dg/torture/pr122016.c (strncmp): Use __SIZE_TYPE__ instead
+ 	of long as type of the size argument.
+ 
+ 2025-10-19  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/sat/sat_arith.h: Add test helper macros.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u16-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u16-from-u32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u16-from-u64.rv32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u16-from-u64.rv64.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u32-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u32-from-u64.rv32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u32-from-u64.rv64.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u64-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u8-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u8-from-u16.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u8-from-u32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u8-from-u64.rv32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-7-u8-from-u64.rv64.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u64.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u32-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u32-from-u64.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u64-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u128.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u16.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u32.c: New test.
+ 	* gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u64.c: New test.
+ 
  2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>
  
  	PR c++/119060
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c gcc-16-20251026/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c	Sun Oct 26 22:32:35 2025
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
+ 
  /* Reduced from 'libgomp.oacc-c-c++-common/kernels-loop-2.c'.  */
  
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/assume-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/assume-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/assume-2.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/assume-2.c	Sun Oct 26 22:32:35 2025
*************** foo (int i, int *a)
*** 31,42 ****
    ;
    #pragma omp assume contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
    ;
!   #pragma omp assume contains (end assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
    ;
    #pragma omp assume contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
    ;
    #pragma omp assume absent (target enter something)		/* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
    ;
    #pragma omp assume foobar					/* { dg-error "expected assumption clause" } */
    ;
    #pragma omp assume ext_GCC_foobarbaz, ext_GCC_baz (1, 12, 1 < 17), no_parallelism	/* { dg-warning "unknown assumption clause 'ext_GCC_foobarbaz'" } */
--- 31,44 ----
    ;
    #pragma omp assume contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
    ;
!   #pragma omp assume contains (end assumes)			/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
    ;
    #pragma omp assume contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
    ;
    #pragma omp assume absent (target enter something)		/* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
    ;
+   #pragma omp assume contains (declare mapper)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument: declarative, informational, and meta directives not permitted" } */
+   ;
    #pragma omp assume foobar					/* { dg-error "expected assumption clause" } */
    ;
    #pragma omp assume ext_GCC_foobarbaz, ext_GCC_baz (1, 12, 1 < 17), no_parallelism	/* { dg-warning "unknown assumption clause 'ext_GCC_foobarbaz'" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/assumes-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/assumes-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/assumes-2.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/assumes-2.c	Sun Oct 26 22:32:35 2025
***************
*** 13,19 ****
  #pragma omp assumes absent (assume)				/* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes absent (assumes)				/* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
! #pragma omp assumes contains (end assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
  #pragma omp assumes contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
  #pragma omp assumes absent (target enter something)		/* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes foobar					/* { dg-error "expected assumption clause" } */
--- 13,19 ----
  #pragma omp assumes absent (assume)				/* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes absent (assumes)				/* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
! #pragma omp assumes contains (end assumes)			/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
  #pragma omp assumes contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
  #pragma omp assumes absent (target enter something)		/* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
  #pragma omp assumes foobar					/* { dg-error "expected assumption clause" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c	Sun Oct 26 22:32:35 2025
*************** main (void)
*** 62,68 ****
        when (device={arch("gcn")}: teams num_teams(256)),
        default (teams num_teams(4)))]]
    {
!     //__label__ l1, l2;
  
      if (x)
        goto l1;
--- 62,68 ----
        when (device={arch("gcn")}: teams num_teams(256)),
        default (teams num_teams(4)))]]
    {
!     __label__ l1, l2;
  
      if (x)
        goto l1;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c	Sun Oct 26 22:32:35 2025
*************** void f14 (void) {}
*** 43,49 ****
  #pragma omp begin assumes contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
  void f15 (void) {}
  #pragma omp end assumes
! #pragma omp begin assumes contains (end assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
  void f16 (void) {}
  #pragma omp end assumes
  #pragma omp begin assumes contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
--- 43,49 ----
  #pragma omp begin assumes contains (begin assumes)			/* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
  void f15 (void) {}
  #pragma omp end assumes
! #pragma omp begin assumes contains (end assumes)			/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
  void f16 (void) {}
  #pragma omp end assumes
  #pragma omp begin assumes contains (foo)				/* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/imperfect1.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/imperfect1.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/imperfect1.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/imperfect1.c	Sun Oct 26 22:32:35 2025
*************** void s1 (int a1, int a2, int a3)
*** 15,21 ****
        f1 (0, i);
        for (j = 0; j < a2; j++)
  	{
! #pragma omp barrier	/* { dg-error "intervening code must not contain OpenMP directives" } */
  	  f1 (1, j);
  	  if (i == 2)
  	    continue;	/* { dg-error "invalid exit" } */
--- 15,21 ----
        f1 (0, i);
        for (j = 0; j < a2; j++)
  	{
! #pragma omp barrier	/* { dg-error "intervening code must not contain executable OpenMP directives" } */
  	  f1 (1, j);
  	  if (i == 2)
  	    continue;	/* { dg-error "invalid exit" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/imperfect4.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/imperfect4.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/imperfect4.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/imperfect4.c	Sun Oct 26 22:32:35 2025
*************** void s1 (int a1, int a2, int a3)
*** 21,27 ****
  	      /* According to the grammar, this is intervening code; we
  		 don't know that we are also missing a nested for loop
  		 until we have parsed this whole compound expression.  */
! #pragma omp barrier	/* { dg-error "intervening code must not contain OpenMP directives" } */
  	      f1 (2, k);
  	      f2 (2, k);
  	    }
--- 21,27 ----
  	      /* According to the grammar, this is intervening code; we
  		 don't know that we are also missing a nested for loop
  		 until we have parsed this whole compound expression.  */
! #pragma omp barrier	/* { dg-error "intervening code must not contain executable OpenMP directives" } */
  	      f1 (2, k);
  	      f2 (2, k);
  	    }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/metadirective-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/metadirective-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/metadirective-2.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/metadirective-2.c	Sun Oct 26 22:32:35 2025
*************** main (void)
*** 61,67 ****
      when (device={arch("gcn")}: teams num_teams(256)) \
      default (teams num_teams(4))
    {
!     //__label__ l1, l2;
  
      if (x)
        goto l1;
--- 61,67 ----
      when (device={arch("gcn")}: teams num_teams(256)) \
      default (teams num_teams(4))
    {
!     __label__ l1, l2;
  
      if (x)
        goto l1;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180-1.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180-1.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180-1.c	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ 
+ /* This test case checks that the inner metadirective is accepted as intervening
+    code since it resolves to 'omp nothing'.  */
+ 
+ int main()
+ {
+   int blksize = 15000;
+   double *qq;
+   int i, k, nq;
+ 
+   #pragma omp metadirective when(user={condition(0)}: target teams distribute parallel for collapse(2) map(qq[:0]) private(i)) \
+                             when(user={condition(0)}: target teams distribute parallel for map(qq[:0]) private(i)) \
+                             when(user={condition(1)}: target teams loop collapse(2) map(qq[:0]) private(i))
+   for(k=0; k<blksize; k++)
+     {
+ #pragma omp metadirective when(user={condition(0)}: simd) default()
+       for (i=0; i<nq; i++)
+         qq[k*nq + i] = 0.0;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180-2.c	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-do compile } */
+ 
+ /* This test case checks that a non-executable OpenMP directive is accepted 
+    as intervening code.  */
+ 
+ int
+ test1 ()
+ {
+   int blksize = 15000;
+   double *qq;
+   int i, k, nq;
+ #pragma omp target parallel for collapse(2) map(qq[ : 0]) private(i)
+   for (k = 0; k < blksize; k++)
+     {
+ #pragma omp nothing
+       for (i = 0; i < nq; i++)
+ 	qq[k * nq + i] = 0.0;
+     }
+   return 0;
+ }
+ 
+ int
+ test2 ()
+ {
+   int i, k, m, n;
+   double *qq, x, z;
+ #pragma omp for collapse(2)
+   for (i = 1; i < n; i++)
+     {
+ #pragma omp assume holds(x > 1)
+       z = __builtin_fabs (x - i);
+       for (k = 0; k < m; k++)
+ 	qq[k * m + i] = z;
+     }
+   return 0;
+ }
+ 
+ int
+ test3 ()
+ {
+   int i, k, m, n;
+   double *qq, z;
+ #pragma omp for collapse(2)
+   for (i = 1; i < n; i++)
+     {
+ #pragma omp error at(compilation) /* { dg-error "'pragma omp error' encountered" } */
+       for (k = 0; k < m; k++)
+ 	qq[k * m + i] = z;
+     }
+   return 0;
+ }
+ 
+ int
+ test4 ()
+ {
+   int i, k, m, n;
+   double *qq, z;
+ #pragma omp for collapse(2)
+   for (i = 1; i < n; i++)
+     {
+ #pragma omp error at(execution) /* { dg-error "pragma omp error' with 'at\\(execution\\)' clause may not be used in intervening code" } */
+       for (k = 0; k < m; k++)
+ 	qq[k * m + i] = z;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr120180.c	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr120180.c	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do compile } */
- 
- /* This test used to ICE after erroring on the metadirective in the
-    loop nest.  */
- 
- int main()
- {
-   int blksize = 15000;
-   double *qq;
-   int i, k, nq;
- 
-   #pragma omp metadirective when(user={condition(0)}: target teams distribute parallel for collapse(2) map(qq[:0]) private(i)) \
-                             when(user={condition(0)}: target teams distribute parallel for map(qq[:0]) private(i)) \
-                             when(user={condition(1)}: target teams loop collapse(2) map(qq[:0]) private(i))
-   for(k=0; k<blksize; k++)
-     {
- #pragma omp metadirective when(user={condition(0)}: simd) default() // { dg-error "intervening code must not contain OpenMP directives" }
-       for (i=0; i<nq; i++)
-         qq[k*nq + i] = 0.0;
-     }
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr121452-1.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr121452-1.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr121452-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr121452-1.c	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ /* Check that the OMP_STRUCTURED_BLOCK that wraps intervening code is accepted.
+  */
+ 
+ void f(int *A, int *B, int *C)
+ {
+   #pragma omp for simd collapse(2)
+   for (int i=0; i < 1; i++) {
+     for (int j=0; j < 1; j++)
+       A[i] += B[j];
+     C[i] = 4;
+   }
+ }
+ 
+ /* { dg-final { scan-tree-dump "#pragma omp __structured_block" "original" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr121452-2.c gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr121452-2.c
*** gcc-16-20251019/gcc/testsuite/c-c++-common/gomp/pr121452-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/c-c++-common/gomp/pr121452-2.c	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fdump-tree-original" } */
+ 
+ /* Check that the OMP_STRUCTURED_BLOCK that wraps intervening code is accepted.
+  */
+ 
+ void f(int *A, int *B, int *C)
+ {
+   #pragma omp loop bind(teams) order(concurrent) collapse(2)
+   for (int i=0; i < 1; i++) {
+     for (int j=0; j < 1; j++)
+       A[i] += B[j];
+     C[i] = 4;
+   }
+ }
+ 
+ /* { dg-final { scan-tree-dump "#pragma omp __structured_block" "original" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,37 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/CALL_with_OCCURS_DEPENDING_ON.out" }
+ 
+        IDENTIFICATION DIVISION.
+        PROGRAM-ID. prog-main.
+ 
+        DATA DIVISION.
+        WORKING-STORAGE SECTION.
+        01  parm.
+            03  parm-size PIC S999 COMP.
+            03  parm-str.
+                05  parm-char PIC X OCCURS 0 TO 100 TIMES
+                         DEPENDING ON parm-size.
+ 
+        PROCEDURE DIVISION.
+            MOVE 10 TO parm-size
+            MOVE "Hi, there!" TO parm-str
+            CALL "prog" USING parm
+            .
+        END PROGRAM prog-main.
+ 
+        IDENTIFICATION DIVISION.
+        PROGRAM-ID. prog.
+ 
+        DATA DIVISION.
+        LINKAGE SECTION.
+        01  parm.
+            03  parm-size PIC S999 COMP.
+            03  parm-str.
+                05  parm-char PIC X OCCURS 0 TO 100 TIMES
+                         DEPENDING ON parm-size.
+ 
+        PROCEDURE DIVISION USING parm.
+            DISPLAY FUNCTION TRIM(parm-str) WITH NO ADVANCING
+            .
+        END PROGRAM prog.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1 ----
+ Hi, there!
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,26 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out" }
+         IDENTIFICATION      DIVISION.
+         PROGRAM-ID.         prog.
+         ENVIRONMENT         DIVISION.
+         CONFIGURATION       SECTION.
+         OBJECT-COMPUTER.
+             GNU-Linux
+             PROGRAM COLLATING SEQUENCE IS THE-WILD-ONE.
+         SPECIAL-NAMES.
+             ALPHABET
+             THE-WILD-ONE IS "A" THRU "H" "I" ALSO "J", ALSO "K", ALSO
+             "L" ALSO "M" ALSO "N" "O" THROUGH "Z" "0" THRU "9".
+         PROCEDURE           DIVISION.
+         DISPLAY LOW-VALUE
+         DISPLAY HIGH-VALUE
+         DISPLAY FUNCTION CHAR(1).
+         DISPLAY FUNCTION CHAR(9).
+         DISPLAY FUNCTION CHAR(10).
+         DISPLAY FUNCTION ORD("A")
+         DISPLAY FUNCTION ORD("I")
+         DISPLAY FUNCTION ORD("J")
+         DISPLAY FUNCTION ORD("K")
+         DISPLAY FUNCTION ORD("O")
+         GOBACK.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,11 ----
+ A
+ 9
+ A
+ I
+ O
+ 1
+ 9
+ 9
+ 9
+ 10
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,27 ----
+        *> { dg-do run }
+        *> { dg-options "-finternal-ebcdic" }
+        *> { dg-output-file "group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out" }
+         IDENTIFICATION      DIVISION.
+         PROGRAM-ID.         prog.
+         ENVIRONMENT         DIVISION.
+         CONFIGURATION       SECTION.
+         OBJECT-COMPUTER.
+             GNU-Linux
+             PROGRAM COLLATING SEQUENCE IS THE-WILD-ONE.
+         SPECIAL-NAMES.
+             ALPHABET
+             THE-WILD-ONE IS "A" THRU "H" "I" ALSO "J", ALSO "K", ALSO
+             "L" ALSO "M" ALSO "N" "O" THROUGH "Z" "0" THRU "9".
+         PROCEDURE           DIVISION.
+         DISPLAY LOW-VALUE
+         DISPLAY HIGH-VALUE
+         DISPLAY FUNCTION CHAR(1).
+         DISPLAY FUNCTION CHAR(9).
+         DISPLAY FUNCTION CHAR(10).
+         DISPLAY FUNCTION ORD("A")
+         DISPLAY FUNCTION ORD("I")
+         DISPLAY FUNCTION ORD("J")
+         DISPLAY FUNCTION ORD("K")
+         DISPLAY FUNCTION ORD("O")
+         GOBACK.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,11 ----
+ A
+ 9
+ A
+ I
+ O
+ 1
+ 9
+ 9
+ 9
+ 10
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,41 ----
+        *> { dg-do run }
+        *> { dg-xfail-run-if "" { *-*-* }  }
+        *> { dg-output-file "group2/EC-BOUND-REF-MOD_checking_process_termination.out" }
+         identification   division.
+         program-id.      caller.
+         data             division.
+         working-storage  section.
+         77 str pic x(4) value "abcd".
+         procedure        division.
+             display "sending str  " str
+             call "prog1" using str.
+             display "returned str " str
+             call "prog2" using str.
+             display "returned str " str
+             goback.
+ 
+         identification   division.
+         program-id.      prog1.
+         data             division.
+         linkage  section.
+         01 str pic x any length.
+         procedure        division using str.
+             move '4' to str(5:1)
+             display "We should get here, because there is no checking"
+             goback.
+         end program       prog1.
+ 
+         >>turn ec-all checking on
+         identification   division.
+         program-id.      prog2.
+         data             division.
+         linkage  section.
+         01 str pic x any length.
+         procedure        division using str.
+             move '4' to str(5:1)
+             display "I don't think we should get here?"
+             goback.
+         end program       prog2.
+ 
+         end program       caller.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,4 ----
+ sending str  abcd
+ We should get here, because there is no checking
+ returned str abcd
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,17 ----
+        *> { dg-do run }
+ 
+        IDENTIFICATION   DIVISION.
+        PROGRAM-ID.      prog.
+        ENVIRONMENT      DIVISION.
+        CONFIGURATION    SECTION.
+        REPOSITORY.
+            FUNCTION     PI INTRINSIC
+            FUNCTION     E  INTRINSIC.
+        DATA             DIVISION.
+        WORKING-STORAGE  SECTION.
+        01  Z            PIC 99V99.
+        PROCEDURE        DIVISION.
+            MOVE PI TO Z.
+            MOVE E TO Z.
+            STOP RUN.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out	Sun Oct 26 22:32:35 2025
***************
*** 1 ****
! c
--- 1 ----
! a
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out	Sun Oct 26 22:32:35 2025
***************
*** 1 ****
! c
--- 1 ----
! a
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,48 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/Occurs_DEPENDING_ON__source_and_dest.out" }
+         identification              division.
+         program-id.                 prog.
+         data                        division.
+         working-storage             section.
+         01 table1d value "1234567890".
+           02 table1  pic x occurs 0 to 10 times depending on table1do.
+ 
+         01 table2d value "1234567890".
+           02 table2  pic x occurs 0 to 10 times depending on table2do.
+ 
+         01 table3d.
+           02 table3do pic 99.
+           02 table3dd.
+             03 table3  pic x occurs 0 to 10 times depending on table3do.
+ 
+         77 table1do pic 99.
+         77 table2do pic 99.
+         77 n pic 99.
+         procedure                   division.
+             display "Test1: Demonstrate ODO limits:"
+             perform varying n from 0 by 1 until n > 10
+                 move n to table1do
+                 display n space """"table1d""""
+                 end-perform
+ 
+             display "Test2:  result should be ABC4567890"
+             move 3 to table2do
+             move "ABCDEFGHIJ" to table2d
+             move 10 to table2do
+             display "        result is        "table2d
+ 
+             display "Test3A: result should be 05ABCDE"
+             move "05ABCDEFGHIJ" to table3d
+             display "        result is        "table3d
+             move 10 to table3do
+             display "Test3B: result should be 10ABCDEFGHIJ"
+             display "        result is        "table3d
+             
+             display "Test4:  result should be 10lmnopqGHIJ"
+             move 6 to table3do
+             move "lmnopqrstu" to table3dd
+             move 10 to table3do
+             display "        result is        "table3d
+ 
+             goback.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,21 ----
+ Test1: Demonstrate ODO limits:
+ 00 ""
+ 01 "1"
+ 02 "12"
+ 03 "123"
+ 04 "1234"
+ 05 "12345"
+ 06 "123456"
+ 07 "1234567"
+ 08 "12345678"
+ 09 "123456789"
+ 10 "1234567890"
+ Test2:  result should be ABC4567890
+         result is        ABC4567890
+ Test3A: result should be 05ABCDE
+         result is        05ABCDE
+ Test3B: result should be 10ABCDEFGHIJ
+         result is        10ABCDEFGHIJ
+ Test4:  result should be 10lmnopqGHIJ
+         result is        10lmnopqGHIJ
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Offset_overflow.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Offset_overflow.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Offset_overflow.out	Sun Oct 19 22:32:24 2025
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Offset_overflow.out	Sun Oct 26 22:32:35 2025
***************
*** 1 ****
! 5
--- 1 ----
! a
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,27 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/Recursive_subscripts.out" }
+ 
+        identification division.
+        program-id. pmain.
+        data division.
+        working-storage section.
+        01 filler.
+         02 tabl-values pic x(9) value "234567890".
+         02 v redefines tabl-values occurs 9 pic 9.
+        procedure division.
+        display v(1)                       " should be 2"
+        display v(v(1))                    " should be 3"
+        display v(v(v(1)))                 " should be 4"
+        display v(v(v(v(1))))              " should be 5"
+        display v(v(v(v(v(1)))))           " should be 6"
+        display v(v(v(v(v(v(1))))))        " should be 7"
+        display v(v(v(v(v(v(v(1)))))))     " should be 8"
+        display v(v(v(v(v(v(v(v(1))))))))  " should be 9"
+ 
+        display v(v(v(v(v(v(v(v(v(1)))))))))  " should be 0"
+        move 1 to v(v(v(v(v(v(v(v(v(1)))))))))
+        display v(v(v(v(v(v(v(v(v(1)))))))))  " should be 1"
+ 
+        goback.
+        end program pmain.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,11 ----
+ 2 should be 2
+ 3 should be 3
+ 4 should be 4
+ 5 should be 5
+ 6 should be 6
+ 7 should be 7
+ 8 should be 8
+ 9 should be 9
+ 0 should be 0
+ 1 should be 1
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,42 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out" }
+ 
+        IDENTIFICATION DIVISION.
+        PROGRAM-ID. prog.
+        DATA DIVISION.
+        WORKING-STORAGE SECTION.
+       *
+        77  SCREEN-AKT         PIC 9(02) VALUE 0.
+        01  SCREEN-TAB.
+            03 SCREEN-ENTRY    OCCURS 0  TO  20
+                               DEPENDING ON  SCREEN-AKT
+                               ASCENDING KEY SCREEN-NAME
+                               INDEXED   BY  SCREEN-IDX.
+              05 SCREEN-NAME     PIC X(02).
+ 
+        PROCEDURE DIVISION.
+ 
+            SEARCH ALL SCREEN-ENTRY
+               AT END
+                  DISPLAY 'END'
+               WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
+                  DISPLAY 'FOUND'
+            END-SEARCH
+            MOVE 1 TO SCREEN-AKT
+            MOVE 'AB' TO  SCREEN-NAME (1)
+            SEARCH ALL SCREEN-ENTRY
+               AT END
+                  DISPLAY 'END'
+               WHEN SCREEN-NAME (SCREEN-IDX) = 'AB'
+                  DISPLAY 'FOUND'
+            END-SEARCH
+            MOVE 2 TO SCREEN-AKT
+            MOVE 'CD' TO  SCREEN-NAME (2)
+            SEARCH ALL SCREEN-ENTRY
+               AT END
+                  DISPLAY 'END'
+               WHEN SCREEN-NAME (SCREEN-IDX) = 'CD'
+                  DISPLAY 'FOUND'
+            END-SEARCH
+            EXIT PROGRAM.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,4 ----
+ END
+ FOUND
+ FOUND
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,22 ----
+        *> { dg-do run }
+ 
+        IDENTIFICATION   DIVISION.
+        PROGRAM-ID.      prog.
+        DATA             DIVISION.
+        WORKING-STORAGE  SECTION.
+        01 G             VALUE "1234".
+          02 X           PIC X OCCURS 4.
+        01 Z             PIC X.
+        PROCEDURE        DIVISION.
+            MOVE X((3 + 1) / 2) TO Z.
+            IF Z NOT = "2"
+               DISPLAY Z
+               END-DISPLAY
+            END-IF.
+            MOVE X(2 ** 2) TO Z.
+            IF Z NOT = "4"
+               DISPLAY Z
+               END-DISPLAY
+            END-IF.
+            STOP RUN.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,17 ----
+        *> { dg-do run }
+        *> { dg-xfail-run-if "" { *-*-* }  }
+        *> { dg-output-file "group2/Subscript_out_of_bounds__1_.out" }
+ 
+        IDENTIFICATION   DIVISION.
+        PROGRAM-ID.      prog.
+        DATA             DIVISION.
+        WORKING-STORAGE  SECTION.
+        01 G.
+          02 X           PIC X OCCURS 10.
+        01 I             PIC 9 VALUE 0.
+        PROCEDURE        DIVISION.
+            >>TURN EC-ALL CHECKING ON
+            DISPLAY """" X(I) """"
+            END-DISPLAY.
+            STOP RUN.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,2 ----
+ " "
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,17 ----
+        *> { dg-do run }
+        *> { dg-xfail-run-if "" { *-*-* }  }
+        *> { dg-output-file "group2/Subscript_out_of_bounds__2_.out" }
+ 
+        IDENTIFICATION   DIVISION.
+        PROGRAM-ID.      prog.
+        DATA             DIVISION.
+        WORKING-STORAGE  SECTION.
+        01 G.
+          02 X           PIC X OCCURS 10.
+        01 I             PIC 99 VALUE 11.
+        PROCEDURE        DIVISION.
+            >>TURN EC-ALL CHECKING ON
+            DISPLAY """" X(I) """"
+            END-DISPLAY.
+            STOP RUN.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,2 ----
+ " "
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,16 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/Subscripted_refmods.out" }
+ 
+        identification division.
+        program-id. pmain.
+        data division.
+        working-storage section.
+        01 filler.
+         02 tabl-values pic x(9) value "123456789".
+         02 v redefines tabl-values occurs 9 pic 9.
+        procedure division.
+        display tabl-values( 3:4 )           " should be 3456"
+        display tabl-values( v(3):v(4) )     " should be 3456"
+        goback.
+        end program pmain.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,3 ----
+ 3456 should be 3456
+ 3456 should be 3456
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,76 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/length_of_ODO_Rules_7__8A__and_8B.out" }
+ 
+         identification division.
+         program-id. prog.
+         procedure division.
+         call "prog1"
+         call "prog2"
+         call "prog3"
+         goback.
+         end program prog.
+ 
+         identification division.
+         program-id. prog1.
+         data division.
+         working-storage section.
+         01      depl        pic 9.
+         01      digtab.
+          05     digitgrp.
+           10    digits      occurs 1 to 9 depending on depl pic x.
+         procedure division.
+         display "Demonstrates 13.18.38.4 OCCURS General rules 7)"
+         display "depl is completely separate"
+         display "output should be ""12345    """
+         move 9              to depl
+         move space          to digtab
+         move 5              to depl
+         move "123456789"    to digtab
+         move 9              to depl
+         display             """" digtab """"
+         goback.
+         end program prog1.
+ 
+         identification division.
+         program-id. prog2.
+         data division.
+         working-storage section.
+         01      digtab.
+          05     depl        pic 9.
+          05     digitgrp.
+           10    digits      occurs 1 to 9 depending on depl pic x.
+         procedure division.
+         display "Demonstrates 13.18.38.4 OCCURS General rules 8a)"
+         display "depl is not subordinate to digitgrp"
+         display "output should be ""12345    """
+         move 9              to depl
+         move space          to digtab
+         move 5              to depl
+         move "123456789"    to digitgrp
+         move 9              to depl
+         display             """" digitgrp """"
+         goback.
+         end program prog2.
+ 
+         identification division.
+         program-id. prog3.
+         data division.
+         working-storage section.
+         01      digtab.
+          05     depl        pic 9.
+          05     digitgrp.
+           10    digits      occurs 1 to 9 depending on depl pic x.
+         procedure division.
+         display "Demonstrates 13.18.38.4 OCCURS General rules 8b)"
+         display "depl is subordinate to digtab"
+         display "output should be ""123"" followed by ""123456789"""
+         move 9              to depl
+         move space          to digtab
+         move 5              to depl
+         move "3123456789"   to digtab
+         display             """" digitgrp """"
+         move 9              to depl
+         display             """" digitgrp """"
+         goback.
+         end program prog3.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,14 ----
+ Demonstrates 13.18.38.4 OCCURS General rules 7)
+ depl is completely separate
+ output should be "12345    "
+ "12345    "
+ Demonstrates 13.18.38.4 OCCURS General rules 8a)
+ depl is not subordinate to digitgrp
+ output should be "12345    "
+ "12345    "
+ Demonstrates 13.18.38.4 OCCURS General rules 8b)
+ depl is subordinate to digtab
+ output should be "123" followed by "123456789"
+ "123"
+ "123456789"
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,47 ----
+        *> { dg-do run }
+ 
+        IDENTIFICATION   DIVISION.
+        PROGRAM-ID.      prog.
+        DATA             DIVISION.
+        WORKING-STORAGE  SECTION.
+        01  PLINE.
+            03  PLINE-LEN PIC S9(4) COMP-5.
+            03  PLINE-TEXT.
+                04  FILLER    PIC X(1) OCCURS  1 TO 80
+                                       DEPENDING ON PLINE-LEN.
+        procedure division.
+        a-main section.
+              MOVE 5                    TO PLINE-LEN
+              MOVE 'the first part in'  TO PLINE-TEXT
+              MOVE 30                   TO PLINE-LEN
+              IF PLINE-TEXT NOT = 'the f'
+                 DISPLAY 'text1 wrong: ' PLINE-TEXT
+                 END-DISPLAY
+              END-IF
+              MOVE 'the first part in'  TO PLINE-TEXT
+              MOVE 4                    TO PLINE-LEN
+              MOVE 'second'             TO PLINE-TEXT
+              MOVE 14                   TO PLINE-LEN
+              IF PLINE-TEXT NOT = 'secofirst part'
+                 DISPLAY 'text2 wrong: ' PLINE-TEXT
+                 END-DISPLAY
+              END-IF
+              MOVE 80                   TO PLINE-LEN
+              MOVE SPACES               TO PLINE-TEXT
+              MOVE 5                    TO PLINE-LEN
+              MOVE 'the first part in'  TO PLINE-TEXT (2:)
+              MOVE 30                   TO PLINE-LEN
+              IF PLINE-TEXT NOT = ' the '
+                 DISPLAY 'text3 wrong: ' PLINE-TEXT
+                 END-DISPLAY
+              END-IF
+              MOVE 'the first part in'  TO PLINE-TEXT (2:)
+              MOVE 4                    TO PLINE-LEN
+              MOVE 'second'             TO PLINE-TEXT (2:)
+              MOVE 14                   TO PLINE-LEN
+              IF PLINE-TEXT NOT = ' sec first par'
+                 DISPLAY 'text4 wrong: ' PLINE-TEXT
+                 END-DISPLAY
+              END-IF
+              STOP RUN.
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/cobol.dg/typo-1.cob gcc-16-20251026/gcc/testsuite/cobol.dg/typo-1.cob
*** gcc-16-20251019/gcc/testsuite/cobol.dg/typo-1.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/cobol.dg/typo-1.cob	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,15 ----
+ *> { dg-options "-fdiagnostics-show-caret" } 
+ *> { dg-do compile }
+ 
+        identification division.
+        porgram-id. hello. *> { dg-error "8: syntax error, unexpected NAME, expecting FUNCTION or PROGRAM-ID" }
+        procedure division.
+            display "Hello World!".
+            stop run.
+ 
+ *<<
+ { dg-begin-multiline-output "" }
+         porgram-id. hello.
+         ^~~~~~~~~~~
+ { dg-end-multiline-output "" }
+ *>>
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/cpp/embed-27.C gcc-16-20251026/gcc/testsuite/g++.dg/cpp/embed-27.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/cpp/embed-27.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/g++.dg/cpp/embed-27.C	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,38 ----
+ // PR c++/122302
+ // { dg-do run { target c++11 } }
+ // { dg-options "-O2" }
+ 
+ unsigned char b[] = {
+ #embed "embed-27.C"
+ };
+ 
+ struct A {
+   unsigned char a[sizeof (b)] = { 
+ #embed "embed-27.C"
+   };
+ };
+ 
+ void
+ foo ()
+ {
+   A a;
+   for (int i = 0; i < sizeof (b); ++i)
+     if (a.a[i] != b[i])
+       __builtin_abort ();
+ }
+ 
+ void
+ bar ()
+ {
+   A a;
+   for (int i = 0; i < sizeof (b); ++i)
+     if (a.a[i] != b[i])
+       __builtin_abort ();
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+   bar ();
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/cpp0x/pr122302.C gcc-16-20251026/gcc/testsuite/g++.dg/cpp0x/pr122302.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/cpp0x/pr122302.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/g++.dg/cpp0x/pr122302.C	Sun Oct 26 22:32:35 2025
***************
*** 0 ****
--- 1,40 ----
+ // PR c++/122302
+ // { dg-do run { target c++11 } }
+ // { dg-options "-O2" }
+ 
+ struct A {
+   unsigned char a[130] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 			   1, 2 };
+ };
+ 
+ void
+ foo ()
+ {
+   A a;
+   for (int i = 0; i < 130; ++i)
+     if (a.a[i] != (i & 15) + 1)
+       __builtin_abort ();
+ }
+ 
+ void
+ bar ()
+ {
+   A a;
+   for (int i = 0; i < 130; ++i)
+     if (a.a[i] != (i & 15) + 1)
+       __builtin_abort ();
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+   bar ();
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C gcc-16-20251026/gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C	Sun Oct 26 22:32:36 2025
***************
*** 0 ****
--- 1,139 ----
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ // { dg-add-options float16 }
+ // { dg-add-options float32 }
+ // { dg-add-options float64 }
+ // { dg-add-options float128 }
+ 
+ struct A { int a, b, c; };
+ class B { static int a; private: static int b; public: int c; };
+ struct C { C () {} int a, b, c; };
+ struct D { explicit D (int) {} int a, b, c; };
+ struct E : public A { int d, e, f; };
+ struct F : public C { using C::C; int d, e, f; };
+ class G { int a, b; };
+ struct H { private: int a, b; };
+ struct I { protected: int a, b; };
+ struct J { int a, b; void foo (); };
+ struct K { int a, b; virtual void foo (); };
+ struct L : virtual public A { int d, e; };
+ struct M : protected A { int d, e; };
+ struct N : private A { int d, e; };
+ struct O { O () = delete; int a, b, c; };
+ struct P { P () = default; int a, b, c; };
+ struct Q { Q (); Q (const Q &); int a, b, c; };
+ struct R { R (); R (const R &); R (R &&) = default; int a, b, c; };
+ struct S { S (); ~S (); int a, b, c; };
+ struct T { T (); ~T () = default; int a, b, c; };
+ struct U { U (); U (const U &) = default; int a, b, c; };
+ struct V { V () = default; V (const V &); int a, b, c; };
+ enum W { W1 };
+ enum class X : int { X1 };
+ struct Y { int g; int foo (int); };
+ struct Z;
+ struct AA { Q a; Q b; };
+ struct AB { Q a; Q b; ~AB () = default; };
+ struct AC { Q a; Q b; ~AC () {} };
+ struct AD : public Q {};
+ struct AE : public Q { ~AE () = default; };
+ struct AF : public Q { ~AF () {} };
+ 
+ #define SA(X) static_assert ((X), #X)
+ 
+ SA (!__builtin_is_implicit_lifetime (void));
+ SA (!__builtin_is_implicit_lifetime (const void));
+ SA (!__builtin_is_implicit_lifetime (volatile void));
+ SA (__builtin_is_implicit_lifetime (char));
+ SA (__builtin_is_implicit_lifetime (signed char));
+ SA (__builtin_is_implicit_lifetime (const unsigned char));
+ SA (__builtin_is_implicit_lifetime (short));
+ SA (__builtin_is_implicit_lifetime (volatile unsigned short));
+ SA (__builtin_is_implicit_lifetime (int));
+ SA (__builtin_is_implicit_lifetime (unsigned int));
+ SA (__builtin_is_implicit_lifetime (const volatile long));
+ SA (__builtin_is_implicit_lifetime (unsigned long));
+ SA (__builtin_is_implicit_lifetime (long long));
+ SA (__builtin_is_implicit_lifetime (unsigned long long));
+ #ifdef __SIZEOF_INT128__
+ SA (__builtin_is_implicit_lifetime (__int128));
+ SA (__builtin_is_implicit_lifetime (unsigned __int128));
+ #endif
+ SA (__builtin_is_implicit_lifetime (float));
+ SA (__builtin_is_implicit_lifetime (double));
+ SA (__builtin_is_implicit_lifetime (long double volatile));
+ #ifdef __STDCPP_FLOAT16_T__
+ SA (__builtin_is_implicit_lifetime (_Float16));
+ #endif
+ #ifdef __STDCPP_FLOAT32_T__
+ SA (__builtin_is_implicit_lifetime (_Float32));
+ #endif
+ #ifdef __STDCPP_FLOAT64_T__
+ SA (__builtin_is_implicit_lifetime (const _Float64));
+ #endif
+ #ifdef __STDCPP_FLOAT128_T__
+ SA (__builtin_is_implicit_lifetime (_Float128));
+ #endif
+ #ifdef __STDCPP_BFLOAT16_T__
+ SA (__builtin_is_implicit_lifetime (decltype(0.bf16)));
+ #endif
+ SA (__builtin_is_implicit_lifetime (W));
+ SA (__builtin_is_implicit_lifetime (const volatile X));
+ SA (__builtin_is_implicit_lifetime (int *));
+ SA (__builtin_is_implicit_lifetime (int (*) (int)));
+ SA (__builtin_is_implicit_lifetime (int (Y::*)));
+ SA (__builtin_is_implicit_lifetime (int (Y::*) (int)));
+ SA (!__builtin_is_implicit_lifetime (int &));
+ SA (!__builtin_is_implicit_lifetime (char &&));
+ SA (__builtin_is_implicit_lifetime (int []));
+ SA (!__builtin_is_implicit_lifetime (int [0]));
+ SA (__builtin_is_implicit_lifetime (int [1]));
+ SA (__builtin_is_implicit_lifetime (const Y [42]));
+ SA (!__builtin_is_implicit_lifetime (int ()));
+ SA (!__builtin_is_implicit_lifetime (int () &));
+ SA (!__builtin_is_implicit_lifetime (int () const));
+ SA (!__builtin_is_implicit_lifetime (int (&) ()));
+ SA (!__builtin_is_implicit_lifetime (Z));		// { dg-error "invalid use of incomplete type 'struct Z'" }
+ SA (__builtin_is_implicit_lifetime (Z []));
+ SA (__builtin_is_implicit_lifetime (Z [5]));
+ SA (__builtin_is_implicit_lifetime (A));
+ SA (__builtin_is_implicit_lifetime (B));
+ SA (__builtin_is_implicit_lifetime (C));
+ SA (__builtin_is_implicit_lifetime (D));
+ SA (__builtin_is_implicit_lifetime (E));
+ SA (__builtin_is_implicit_lifetime (F));
+ SA (__builtin_is_implicit_lifetime (G));
+ SA (__builtin_is_implicit_lifetime (H));
+ SA (__builtin_is_implicit_lifetime (I));
+ SA (__builtin_is_implicit_lifetime (J));
+ SA (!__builtin_is_implicit_lifetime (K));
+ SA (!__builtin_is_implicit_lifetime (L));
+ SA (__builtin_is_implicit_lifetime (M));
+ SA (__builtin_is_implicit_lifetime (N));
+ SA (__builtin_is_implicit_lifetime (O));
+ SA (__builtin_is_implicit_lifetime (P));
+ SA (!__builtin_is_implicit_lifetime (Q));
+ SA (__builtin_is_implicit_lifetime (R));
+ SA (!__builtin_is_implicit_lifetime (S));
+ SA (__builtin_is_implicit_lifetime (S [3]));
+ SA (__builtin_is_implicit_lifetime (T));
+ SA (__builtin_is_implicit_lifetime (U));
+ SA (__builtin_is_implicit_lifetime (V));
+ SA (__builtin_is_implicit_lifetime (_Complex double));
+ SA (__builtin_is_implicit_lifetime (int [[gnu::vector_size (4 * sizeof (int))]]));
+ SA (__builtin_is_implicit_lifetime (AA));
+ SA (__builtin_is_implicit_lifetime (AB));
+ SA (!__builtin_is_implicit_lifetime (AC));
+ #if __cplusplus >= 201703L
+ SA (__builtin_is_implicit_lifetime (AD));
+ SA (__builtin_is_implicit_lifetime (AE));
+ #else
+ SA (!__builtin_is_implicit_lifetime (AD));
+ SA (!__builtin_is_implicit_lifetime (AE));
+ #endif
+ SA (!__builtin_is_implicit_lifetime (AF));
+ 
+ void
+ foo (int n)
+ {
+   SA (__builtin_is_implicit_lifetime (char [n]));
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C gcc-16-20251026/gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C	Sun Oct 19 22:32:26 2025
--- gcc-16-20251026/gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C	Sun Oct 26 22:32:36 2025
*************** void s1 (int a1, int a2, int a3)
*** 15,21 ****
        f1 (0, i);
        for (j = 0; j < a2; j++)
  	{
! 	  [[ omp :: directive (barrier) ]] ;	/* { dg-error "intervening code must not contain OpenMP directives" } */
  	  f1 (1, j);
  	  if (i == 2)
  	    continue;	/* { dg-error "invalid exit" } */
--- 15,21 ----
        f1 (0, i);
        for (j = 0; j < a2; j++)
  	{
! 	  [[ omp :: directive (barrier) ]] ;	/* { dg-error "intervening code must not contain executable OpenMP directives" } */
  	  f1 (1, j);
  	  if (i == 2)
  	    continue;	/* { dg-error "invalid exit" } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C gcc-16-20251026/gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C	Sun Oct 19 22:32:26 2025
--- gcc-16-20251026/gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C	Sun Oct 26 22:32:36 2025
*************** void s1 (int a1, int a2, int a3)
*** 21,27 ****
  	      /* According to the grammar, this is intervening code; we
  		 don't know that we are also missing a nested for loop
  		 until we have parsed this whole compound expression.  */
! 	      [[ omp :: directive (barrier) ]] ;	/* { dg-error "intervening code must not contain OpenMP directives" } */
  	      f1 (2, k);
  	      f2 (2, k);
  	    }
--- 21,27 ----
  	      /* According to the grammar, this is intervening code; we
  		 don't know that we are also missing a nested for loop
  		 until we have parsed this whole compound expression.  */
! 	      [[ omp :: directive (barrier) ]] ;	/* { dg-error "intervening code must not contain executable OpenMP directives" } */
  	      f1 (2, k);
  	      f2 (2, k);
  	    }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/gomp/pr120180-1.C gcc-16-20251026/gcc/testsuite/g++.dg/gomp/pr120180-1.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/gomp/pr120180-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/g++.dg/gomp/pr120180-1.C	Sun Oct 26 22:32:36 2025
***************
*** 0 ****
--- 1,26 ----
+ // { dg-do compile }
+ // { dg-additional-options "-std=c++11" }
+ 
+ // This test case checks that the inner metadirective is accepted as intervening
+ // code since it resolves to 'omp nothing'.
+ 
+ int main()
+ {
+   constexpr int use_teams = 1;
+   constexpr int use_simd = 0;
+   
+   int blksize = 15000;
+   double *qq;
+   int i, k, nq;
+ 
+   #pragma omp metadirective when(user={condition(use_teams)}: teams distribute parallel for collapse(2)) \
+                             otherwise(parallel for collapse(1))
+   for(k=0; k<blksize; k++)
+     {
+       #pragma omp metadirective when(user={condition(use_simd)}: simd) \
+                                 otherwise(nothing)
+       for (i=0; i<nq; i++)
+         qq[k*nq + i] = 0.0;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.dg/pr114025.C gcc-16-20251026/gcc/testsuite/g++.dg/pr114025.C
*** gcc-16-20251019/gcc/testsuite/g++.dg/pr114025.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/g++.dg/pr114025.C	Sun Oct 26 22:32:36 2025
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options " -O3 -std=gnu++17 -ffinite-math-only -fdump-tree-optimized" } */
+ 
+ #include <algorithm>
+ #include <stdexcept>
+ 
+ #define AINLINE
+ 
+ class TestClass
+ {
+ public:
+     AINLINE void SetValue(float value);
+ 
+ private:
+     float m_Value;
+ };
+ 
+ AINLINE
+ void TestClass::SetValue(float value)
+ {
+     if (value >= 0.0f && value <= 100.0f) {
+         m_Value = value;
+     }
+     else {
+         throw std::out_of_range("Value must be [0, 100].");
+     }
+ }
+ 
+ void TestFunc(TestClass& t, float value)
+ {
+     value = std::clamp(value, 30.0f, 50.0f);
+     // When TestClass::SetValue is inlined, the exception throwing code is not eliminated.
+     // Given that at this point we can prove that 'value' lies in the range [30.0f, 50.0f] well within the range required by the setter function, we can rid the not taken paths of code.
+     t.SetValue(value);
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "std::out_of_range::out_of_range" 1 "optimized" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/g++.target/i386/mv16.C gcc-16-20251026/gcc/testsuite/g++.target/i386/mv16.C
*** gcc-16-20251019/gcc/testsuite/g++.target/i386/mv16.C	Sun Oct 19 22:32:27 2025
--- gcc-16-20251026/gcc/testsuite/g++.target/i386/mv16.C	Sun Oct 26 22:32:38 2025
*************** int __attribute__ ((target("arch=diamond
*** 128,133 ****
--- 128,137 ----
    return 33;
  }
  
+ int __attribute__ ((target("arch=novalake"))) foo () {
+   return 34;
+ }
+ 
  int main ()
  {
    int val = foo ();
*************** int main ()
*** 184,189 ****
--- 188,195 ----
      assert (val == 32);
    else if (__builtin_cpu_is ("diamondrapids"))
      assert (val == 33);
+   else if (__builtin_cpu_is ("novalake"))
+     assert (val == 34);
    else
      assert (val == 0);
  
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-5.c gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-5.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,69 ----
+ /* Test C2y static assertions in expressions: -pedantic warnings for C23.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -pedantic" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8)) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9) /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19)); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8, "message")) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9, "message") /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19, "message")); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-6.c gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-6.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,70 ----
+ /* Test C2y static assertions in expressions: -pedantic-errors errors for
+    C23.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0; /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8)) f (); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9) /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19)); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0; /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8, "message")) f (); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9, "message") /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18, "message"); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19, "message")); /* { dg-error "ISO C does not support static assertions in expressions before C2Y" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-7.c gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-7.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,70 ----
+ /* Test C2y static assertions in expressions: -Wc23-c2y-compat warnings for
+    C23.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -Wc23-c2y-compat" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8)) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9) /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19)); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8, "message")) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9, "message") /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19, "message")); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-8.c gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-8.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c23-static-assert-8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c23-static-assert-8.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,66 ----
+ /* Test C2y static assertions in expressions: not diagnosed for C23 with
+    -pedantic-errors -Wno-c23-c2y-compat.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -pedantic-errors -Wno-c23-c2y-compat" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0;
+   extern typeof (static_assert (8)) f ();
+   1 ? static_assert (9) : static_assert (10);
+   if (1)
+     static_assert (11);
+   else
+     static_assert (12);
+   for (;;)
+     static_assert (13);
+   while (true)
+     static_assert (14);
+   do
+     static_assert (15);
+   while (false);
+   switch (16)
+     static_assert (17);
+   (void) static_assert (18);
+   (static_assert (19));
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0;
+   extern typeof (static_assert (8, "message")) f ();
+   1 ? static_assert (9, "message") : static_assert (10, "message");
+   if (1)
+     static_assert (11, "message");
+   else
+     static_assert (12, "message");
+   for (;;)
+     static_assert (13, "message");
+   while (true)
+     static_assert (14, "message");
+   do
+     static_assert (15, "message");
+   while (false);
+   switch (16)
+     static_assert (17, "message");
+   (void) static_assert (18, "message");
+   (static_assert (19, "message"));
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-generic-6.c gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-generic-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-generic-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-generic-6.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do "compile" } */
+ /* { dg-options "-std=c2y -Wpedantic" } */
+ 
+ void f()
+ {
+ 	_Generic(1, int[*]: 1, default: 0);
+ 	_Generic(1, int(*)[*]: 1, default: 0);
+ 	_Generic(1, int[sizeof(int[*])]: 1, default: 0);	/* { dg-warning "not in a declaration" } */
+ 	_Generic(1, struct { int a[*]; }: 1, default: 0);	/* { dg-warning "variably modified" } */
+ }
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-generic-7.c gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-generic-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-generic-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-generic-7.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do "run" } */
+ /* { dg-options "-std=c2y" } */
+ 
+ int main()
+ {
+ 	int n = 1;
+ 	int a[1];
+ 	_Generic(typeof(a), int[n++]: 0);
+ 	float b[1];
+ 	_Generic(typeof(b), int[n++]: 0, default: 1);
+ 	if (n != 1)
+ 		__builtin_abort();
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-2.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,65 ----
+ /* Test C2y static assertions in expressions.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c2y -pedantic-errors" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0;
+   extern typeof (static_assert (8)) f ();
+   1 ? static_assert (9) : static_assert (10);
+   if (1)
+     static_assert (11);
+   else
+     static_assert (12);
+   for (;;)
+     static_assert (13);
+   while (true)
+     static_assert (14);
+   do
+     static_assert (15);
+   while (false);
+   switch (16)
+     static_assert (17);
+   (void) static_assert (18);
+   (static_assert (19));
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0;
+   extern typeof (static_assert (8, "message")) f ();
+   1 ? static_assert (9, "message") : static_assert (10, "message");
+   if (1)
+     static_assert (11, "message");
+   else
+     static_assert (12, "message");
+   for (;;)
+     static_assert (13, "message");
+   while (true)
+     static_assert (14, "message");
+   do
+     static_assert (15, "message");
+   while (false);
+   switch (16)
+     static_assert (17, "message");
+   (void) static_assert (18, "message");
+   (static_assert (19, "message"));
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-3.c gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-3.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-3.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,69 ----
+ /* Test C2y static assertions in expressions: -Wc23-c2y-compat warnings.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c2y -pedantic-errors -Wc23-c2y-compat" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (1);
+ static_assert (2, "message" );
+ struct s { int a; static_assert (3); };
+ 
+ void
+ f ()
+ {
+   static_assert (4);
+  label:
+   static_assert (5);
+   for (static_assert (6);;)
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (7), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8)) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9) /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19)); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (7, "message"), (void) 0; /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   extern typeof (static_assert (8, "message")) f (); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   1
+     ? static_assert (9, "message") /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+     : static_assert (10, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   if (1)
+     static_assert (11, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   else
+     static_assert (12, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   for (;;)
+     static_assert (13, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (true)
+     static_assert (14, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   do
+     static_assert (15, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   while (false);
+   switch (16)
+     static_assert (17, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (void) static_assert (18, "message"); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+   (static_assert (19, "message")); /* { dg-warning "ISO C does not support static assertions in expressions before C2Y" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-4.c gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/c2y-static-assert-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/c2y-static-assert-4.c	Sun Oct 26 22:32:38 2025
***************
*** 0 ****
--- 1,69 ----
+ /* Test C2y static assertions in expressions: failed assertions.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c2y -pedantic-errors" } */
+ 
+ /* Old forms of static assertion still valid.  */
+ static_assert (0); /* { dg-error "static assertion failed" } */
+ static_assert (0, "message" ); /* { dg-error "static assertion failed" } */
+ struct s { int a; static_assert (0); }; /* { dg-error "static assertion failed" } */
+ 
+ void
+ f ()
+ {
+   static_assert (0); /* { dg-error "static assertion failed" } */
+  label:
+   static_assert (0); /* { dg-error "static assertion failed" } */
+   for (static_assert (0);;) /* { dg-error "static assertion failed" } */
+     ;
+ }
+ 
+ /* Test new forms of static assertion.  */
+ void
+ g ()
+ {
+   (void) 0, static_assert (0), (void) 0; /* { dg-error "static assertion failed" } */
+   extern typeof (static_assert (0)) f (); /* { dg-error "static assertion failed" } */
+   1
+     ? static_assert (0) /* { dg-error "static assertion failed" } */
+     : static_assert (0); /* { dg-error "static assertion failed" } */
+   if (1)
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   else
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   for (;;)
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   while (true)
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   do
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   while (false);
+   switch (16)
+     static_assert (0); /* { dg-error "static assertion failed" } */
+   (void) static_assert (0); /* { dg-error "static assertion failed" } */
+   (static_assert (0)); /* { dg-error "static assertion failed" } */
+ }
+ 
+ void
+ g2 ()
+ {
+   (void) 0, static_assert (0, "message"), (void) 0; /* { dg-error "static assertion failed" } */
+   extern typeof (static_assert (0, "message")) f (); /* { dg-error "static assertion failed" } */
+   1
+     ? static_assert (0, "message") /* { dg-error "static assertion failed" } */
+     : static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   if (1)
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   else
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   for (;;)
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   while (true)
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   do
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   while (false);
+   switch (16)
+     static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   (void) static_assert (0, "message"); /* { dg-error "static assertion failed" } */
+   (static_assert (0, "message")); /* { dg-error "static assertion failed" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/fold-round-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/fold-round-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/fold-round-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/fold-round-1.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,56 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast" } */
+ 
+ extern void link_error (void);
+ 
+ #define TEST_ROUND(TYPE, FFLOOR, FCEIL)                                       \
+   void round_##FFLOOR##_1 (TYPE x)                                            \
+   {                                                                           \
+     TYPE t1 = 0;                                                              \
+     TYPE t2 = __builtin_##FFLOOR (x + 0.5);                                   \
+     if ((x - __builtin_##FFLOOR (x)) < (__builtin_##FCEIL (x) - x))           \
+       t1 = __builtin_##FFLOOR (x);                                            \
+     else                                                                      \
+       t1 = __builtin_##FCEIL (x);                                             \
+     if (t1 != t2)                                                             \
+       link_error ();                                                          \
+   }                                                                           \
+   void round_##FFLOOR##_2 (TYPE x)                                            \
+   {                                                                           \
+     TYPE t1 = 0;                                                              \
+     TYPE t2 = __builtin_##FFLOOR (x + 0.5);                                   \
+     if ((__builtin_##FCEIL (x) - x) > (x - __builtin_##FFLOOR (x)))           \
+       t1 = __builtin_##FFLOOR (x);                                            \
+     else                                                                      \
+       t1 = __builtin_##FCEIL (x);                                             \
+     if (t1 != t2)                                                             \
+       link_error ();                                                          \
+   }                                                                           \
+   void round_##FFLOOR##_3 (TYPE x)                                            \
+   {                                                                           \
+     TYPE t1 = 0;                                                              \
+     TYPE t2 = __builtin_##FFLOOR (x + 0.5);                                   \
+     if ((__builtin_##FCEIL (x) - x) <= (x - __builtin_##FFLOOR (x)))          \
+       t1 = __builtin_##FCEIL (x);                                             \
+     else                                                                      \
+       t1 = __builtin_##FFLOOR (x);                                            \
+     if (t1 != t2)                                                             \
+       link_error ();                                                          \
+   }                                                                           \
+   void round_##FFLOOR##_4 (TYPE x)                                            \
+   {                                                                           \
+     TYPE t1 = 0;                                                              \
+     TYPE t2 = __builtin_##FFLOOR (x + 0.5);                                   \
+     if ((x - __builtin_##FFLOOR (x)) >= (__builtin_##FCEIL (x) - x))          \
+       t1 = __builtin_##FCEIL (x);                                             \
+     else                                                                      \
+       t1 = __builtin_##FFLOOR (x);                                            \
+     if (t1 != t2)                                                             \
+       link_error ();                                                          \
+   }
+ 
+ TEST_ROUND (float, floorf, ceilf)
+ TEST_ROUND (double, floor, ceil)
+ TEST_ROUND (long double, floorl, ceill)
+ 
+ /* { dg-final { scan-assembler-not "link_error" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/fold-vecperm-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/fold-vecperm-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/fold-vecperm-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/fold-vecperm-1.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ typedef int v4si __attribute__((vector_size(16)));
+ typedef short v8hi __attribute__((vector_size(16)));
+ 
+ typedef union {
+   v4si s;
+   v8hi h;
+ } int128;
+ 
+ int128 concat (int128 a, int128 b) {
+   int128 x, y, res;
+   v4si zero = { 0, 0, 0, 0 };
+   v4si sel0 = { 3, 4, 5, 6 };
+   v8hi sel1 = { 0, 1, 10, 11, 12, 13, 14, 15 };
+   x.s = __builtin_shuffle (a.s, zero, sel0);
+   y.s = __builtin_shuffle (zero, b.s, sel0);
+   res.h = __builtin_shuffle (x.h, y.h, sel1);
+   return res;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 1 "optimized" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec1.c gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec1.c	Sun Oct 19 22:32:28 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* Test that GOMP_task is special cased when cpyfn is NULL.  */
- 
- /* { dg-do run } */
- /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
- /* { dg-require-effective-target fopenmp } */
- /* { dg-require-effective-target lto } */
- 
- void test(int c) {
-   for (int i = 0; i < c; i++)
-     if (!__builtin_constant_p(c))
-       __builtin_abort();
- }
- int main() {
- #pragma omp task
-   test(7);
-   return 0;
- }
- 
- /* { dg-final { scan-wpa-ipa-dump "Creating a specialized node of main._omp_fn" "cp" } } */
--- 0 ----
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec2.c gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec2.c	Sun Oct 19 22:32:28 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb-spec2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* Check that GOMP_task doesn't produce callback edges when cpyfn is not
-    NULL.  */
- 
- /* { dg-do run } */
- /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
- /* { dg-require-effective-target fopenmp } */
- /* { dg-require-effective-target lto } */
- 
- void test(int *a) {
-   for (int i = 0; i < 100; i++) {
-     a[i] = i;
-   }
- }
- int main() {
-   int a[100];
-   __builtin_memset (a, 0, sizeof (a));
-   #pragma omp task
-   test (a);
- }
- 
- /* { dg-final { scan-ipa-dump-not "Created callback edge" "cp" } } */
--- 0 ----
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb1.c gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/ipa/ipcp-cb1.c	Sun Oct 19 22:32:28 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/ipa/ipcp-cb1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,25 ****
- /* Test that we can propagate constants into outlined OpenMP kernels.
-    This tests the underlying callback attribute and its related edges.  */
- 
- /* { dg-do run } */
- /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
- /* { dg-require-effective-target fopenmp } */
- /* { dg-require-effective-target lto } */
- 
- int a[100];
- void test(int c) {
- #pragma omp parallel for
-   for (int i = 0; i < c; i++) {
-     if (!__builtin_constant_p(c)) {
-       __builtin_abort();
-     }
-     a[i] = i;
-   }
- }
- int main() {
-   test(100);
-   return a[5] - 5;
- }
- 
- /* { dg-final { scan-wpa-ipa-dump "Creating a specialized node of test._omp_fn" "cp" } } */
- /* { dg-final { scan-wpa-ipa-dump "Aggregate replacements: 0\\\[0]=100\\(by_ref\\)" "cp" } } */
--- 0 ----
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/pr110405.c gcc-16-20251026/gcc/testsuite/gcc.dg/pr110405.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/pr110405.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/pr110405.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ void foo (unsigned long);
+ void
+ f (unsigned long i)
+ {
+   if ((i & 7) == 6)
+     if(i & 1)
+       foo (0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "foo"  "optimized" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/pr114331.c gcc-16-20251026/gcc/testsuite/gcc.dg/pr114331.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/pr114331.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/pr114331.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ int src(int num) {
+     switch((short)num){
+         case 111:
+ 	  /* Should fold to 110.  */
+           return num & 0xfffe;
+         case 267:
+         case 204:
+         case 263:
+           return 0;
+         default:
+           return 0;
+     }
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump "110"  "optimized" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/pr114725.c gcc-16-20251026/gcc/testsuite/gcc.dg/pr114725.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/pr114725.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/pr114725.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ //* This should fold to return 0
+ bool
+ src(int offset)
+ {
+   if (offset > 128)
+     return 0;
+   else
+     return (offset & -9) == 258;
+ }
+ 
+ /* { dg-final { scan-tree-dump "return 0"  "optimized" } } */
+ /* { dg-final { scan-tree-dump-not "PHI"  "optimized" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/pr118254.c gcc-16-20251026/gcc/testsuite/gcc.dg/pr118254.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/pr118254.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/pr118254.c	Sun Oct 26 22:32:39 2025
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-evrp" } */
+ 
+ void foo(void);
+ int il=1000;
+ 
+ int m1(void)
+ {
+   short t = il;
+   unsigned t1 = t;
+   if (t1 == 0) {
+     char b = t1;
+     if (b != 1)
+       return 0;
+     foo();
+   }
+   return 0;
+ }
+ 
+ int m2(void)
+ {
+   short t = il;
+   unsigned t1 = t;
+   if (t1 == 0) {
+     char b = il;
+     if (b != 1)
+       return 0;
+     foo();
+   }
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "foo"  "evrp" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c gcc-16-20251026/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/torture/vect-permute-ice.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* This testcase triggered an ICE that was fixed by
+    g:1ceda79ca5fe1a1a296624a98de8fd04958fbe55.  */
+ char *a;
+ char c, e;
+ _Bool f() {
+   int g, d = 0;
+   for (int h = 0; h < 128; h += 8) {
+     char *b = &a[h];
+     g = e * b[0] + c * b[1] + 2 * b[2] + 3 * b[3] + 4 * b[4] + 5 * b[5] +
+         6 * b[6] + 7 * b[7];
+     d += g;
+   }
+   return d;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/bool-12.c gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/bool-12.c	Sun Oct 19 22:32:29 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/bool-12.c	Sun Oct 26 22:32:40 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-original -fdump-tree-phiopt1 -fdump-tree-forwprop2" } */
  #define bool _Bool
  int maxbool(bool ab, bool bb)
  {
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-original -fdump-tree-phiopt2-raw" } */
  #define bool _Bool
  int maxbool(bool ab, bool bb)
  {
*************** int minbool(bool ab, bool bb)
*** 28,42 ****
  /* { dg-final { scan-tree-dump-times "MIN_EXPR" 0 "original" } } */
  /* { dg-final { scan-tree-dump-times "if " 2 "original" } } */
  
! /* PHI-OPT1 should have converted it into min/max */
! /* { dg-final { scan-tree-dump-times "MAX_EXPR" 1 "phiopt1" } } */
! /* { dg-final { scan-tree-dump-times "MIN_EXPR" 1 "phiopt1" } } */
! /* { dg-final { scan-tree-dump-times "if " 0 "phiopt1" } } */
! 
! /* Forwprop2 (after ccp) will convert it into &\| */
! /* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "forwprop2" } } */
! /* { dg-final { scan-tree-dump-times "MIN_EXPR" 0 "forwprop2" } } */
! /* { dg-final { scan-tree-dump-times "if " 0 "forwprop2" } } */
  
  /* By optimize there should be no min/max nor if  */
  /* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "optimized" } } */
--- 28,39 ----
  /* { dg-final { scan-tree-dump-times "MIN_EXPR" 0 "original" } } */
  /* { dg-final { scan-tree-dump-times "if " 2 "original" } } */
  
! /* PHI-OPT2 should have converted it into &\| */
! /* { dg-final { scan-tree-dump-not "min_expr, " "phiopt2" } } */
! /* { dg-final { scan-tree-dump-not "max_expr, " "phiopt2" } } */
! /* { dg-final { scan-tree-dump-times "bit_ior_expr, " 1 "phiopt2" } } */
! /* { dg-final { scan-tree-dump-times "bit_and_expr, " 1 "phiopt2" } } */
! /* { dg-final { scan-tree-dump-times "gimple_cond " 0 "phiopt2" } } */
  
  /* By optimize there should be no min/max nor if  */
  /* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "optimized" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,39 ----
+ /* PR tree-optimization/95699 */
+ /* PR tree-optimization/101024 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-phiopt1" } */
+ unsigned long long
+ f2 (unsigned long long x)
+ {
+   if (x < 0x8000000000000000ULL)
+     x = 0x8000000000000000ULL;
+   else
+     {
+         if (x >= 0x8000000000000023ULL)
+           x = 0x8000000000000023ULL;
+     }
+   return x;
+ }
+ unsigned long long
+ f1 (unsigned long long x)
+ {
+   if (x >= 100)
+     {
+         if (x >= 0x8000000000000000ULL)
+           x = 0x8000000000000000ULL;
+     }
+   else
+     x = 100;
+   return x;
+ }
+ /* f2: */
+ /* { dg-final { scan-tree-dump "MIN_EXPR <\[^>\n\r]*9223372036854775843>" "optimized" } } */
+ /* { dg-final { scan-tree-dump "MAX_EXPR <\[^>\n\r]*9223372036854775808>" "optimized" } } */
+ /* { dg-final { scan-tree-dump "MIN_EXPR <\[^>\n\r]*9223372036854775843>" "phiopt1" } } */
+ /* { dg-final { scan-tree-dump "MAX_EXPR <\[^>\n\r]*9223372036854775808>" "phiopt1" } } */
+ 
+ /* f1: */
+ /* { dg-final { scan-tree-dump "MIN_EXPR <\[^>\n\r]*9223372036854775808>" "optimized" } } */
+ /* { dg-final { scan-tree-dump "MAX_EXPR <\[^>\n\r]*100>" "optimized" } } */
+ /* { dg-final { scan-tree-dump "MIN_EXPR <\[^>\n\r]*9223372036854775808>" "phiopt1" } } */
+ /* { dg-final { scan-tree-dump "MAX_EXPR <\[^>\n\r]*100>" "phiopt1" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,22 ----
+ /* PR tree-optimization/95699 */
+ /* PR tree-optimization/110068 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-phiopt1" } */
+ /* { dg-final { scan-tree-dump-times "MIN_EXPR " 2 "phiopt1" } } */
+ 
+ #define min1(x,y) ((x) < (y) ? (x) : (y))
+ unsigned 
+ f1 (unsigned  x)
+ {
+   return min1(x, 1U<<(sizeof(x)*8-1));
+ }
+ unsigned
+ f5 (unsigned  x)
+ {
+   bool t = x >= 1U<<(sizeof(x)*8-1);
+   if (!t)
+     ;
+   else
+     x = 1U<<(sizeof(x)*8-1);
+   return x;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int *a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = cl_div (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    int *a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = cl_div (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    int *a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = cl_div (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    int *a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = cl_mod (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    unsigned int *a = (unsigned int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_mod (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    int *a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = cl_mod (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int *ua = (unsigned int*)&uarr;
    init_uarr(ua, N);
    udiv(ua);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_udiv (0xf0000000 + i, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int *ua = (unsigned int*)&uarr;
    init_uarr(ua, N);
    udiv(ua);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_udiv (0xf0000000 + i, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int *ua = (unsigned int*)&uarr;
    init_uarr(ua, N);
    udiv(ua);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_udiv (0xf0000000 + i, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    unsigned int *a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_umod (0xf0000000 + i, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    unsigned int *a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_umod (0xf0000000 + i, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 17,22 ****
--- 17,23 ----
    unsigned int *a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      unsigned int expected = cl_umod (0xf0000000 + i, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div_2(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_div (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div_2(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_div (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div_2(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_div (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_mod (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_mod (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = fl_mod (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_div (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_div (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-div.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    div(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_div (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_mod (i - N/2, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_mod (i - N/2, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    int * a = (int*)&arr;
    init_arr(a, N);
    mod(a);
+   #pragma GCC novector
    for (int i=0; i<N; i++)
    {
      int expected = rd_mod (i - N/2, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    div(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_udiv (0xf0000000 + i, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    div(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_udiv (0xf0000000 + i, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    div(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_udiv (0xf0000000 + i, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_umod (0xf0000000 + i, 2);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_umod (0xf0000000 + i, 8);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c	Sun Oct 26 22:32:40 2025
*************** int main (void)
*** 16,21 ****
--- 16,22 ----
    unsigned int * a = (unsigned int*)&uarr;
    init_uarr(a, N);
    mod(a);
+   #pragma GCC novector
    for (unsigned int i=0; i<N; i++)
    {
      unsigned int expected = rd_umod (0xf0000000 + i, 19);
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116.h gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116.h
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/pr104116.h	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/pr104116.h	Sun Oct 26 22:32:40 2025
*************** NAME (unsigned int * a) \
*** 82,98 ****
  
  #define N 1024
  int arr[N];
- __attribute__((optimize("O0")))
  void init_arr (int *a, int n)
  {
! 	for (int i=0; i<n; i++)
! 		a[i] = i - n/2;
  }
  
  unsigned int uarr[N];
- __attribute__((optimize("O0")))
  void init_uarr (unsigned int *a, int n)
  {
    for (unsigned int i=0; i<n; i++)
      a[i] = 0xf0000000 + i;
  }
--- 82,98 ----
  
  #define N 1024
  int arr[N];
  void init_arr (int *a, int n)
  {
!   #pragma GCC novector
!   for (int i=0; i<n; i++)
!     a[i] = i - n/2;
  }
  
  unsigned int uarr[N];
  void init_uarr (unsigned int *a, int n)
  {
+   #pragma GCC novector
    for (unsigned int i=0; i<n; i++)
      a[i] = 0xf0000000 + i;
  }
*************** int fl_div (int x, int y)
*** 141,147 ****
    return q;
  }
  
- 
  int fl_mod (int x, int y)
  {
    int r = x % y;
--- 141,146 ----
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122370.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122370.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122370.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122370.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-mavx512vl -mavx512bw" { target { avx512vl && avx512bw } } } */
+ 
+ bool f(bool splat, bool swizzle_splat,
+        int *elems, int length)
+ {
+   int input = elems[0];
+   for (int i = 0; i < length; i++)
+     {
+       if (input != elems[i])
+ 	{
+ 	  splat = false;
+ 	  swizzle_splat = false;
+ 	}
+     }
+   return (splat && swizzle_splat);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122371.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122371.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122371.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122371.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ 
+ struct {
+   double lsum;
+ } AnalyzeSamples_rgData;
+ 
+ float *AnalyzeSamples_curleft;
+ float AnalyzeSamples_sum_l;
+ int AnalyzeSamples_i;
+ 
+ void AnalyzeSamples() {
+   while (AnalyzeSamples_i--) {
+     float l1 = AnalyzeSamples_curleft[1] * AnalyzeSamples_curleft[1],
+           l3 = AnalyzeSamples_curleft[3] * AnalyzeSamples_curleft[3],
+           sl = l1 + l3;
+     AnalyzeSamples_sum_l += sl;
+     AnalyzeSamples_curleft += 4;
+   }
+   AnalyzeSamples_rgData.lsum += AnalyzeSamples_sum_l;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fwrapv" } */
+ 
+ int f(long l, short *sp) {
+   unsigned short us;
+   for (; l; l -= 4, sp += 4)
+     us += sp[1] + sp[3];
+   return us;
+ }
+ 
+ /* ???  Both SVE and RVV refuse to do the { 1, 3 } permutation as two ld2
+    or ld1 with odd extract plus lo/hi concat.  Instead they prefer ld4.  */
+ /* { dg-final { scan-tree-dump "vectorizing a reduction chain" "vect" { target { { vect_extract_even_odd && vect_int } && { ! vect_variable_length } } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ 
+ int f(long l, short *sp) {
+   unsigned short us;
+   for (; l; l -= 4, sp += 4)
+     us += sp[1] + sp[3];
+   return us;
+ }
+ 
+ /* ???  Both SVE and RVV refuse to do the { 1, 3 } permutation as two ld2
+    or ld1 with odd extract plus lo/hi concat.  Instead they prefer ld4.  */
+ /* { dg-final { scan-tree-dump "vectorizing a reduction chain" "vect" { target { { vect_extract_even_odd && vect_int } && { ! vect_variable_length } } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,52 ----
+ #include "tree-vect.h"
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,52 ----
+ #include "tree-vect.h"
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,52 ----
+ #include "tree-vect.h"
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,52 ----
+ #include "tree-vect.h"
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,50 ----
+ #include "tree-vect.h"
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,50 ----
+ #include "tree-vect.h"
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,50 ----
+ #include "tree-vect.h"
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,50 ----
+ #include "tree-vect.h"
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,27 ----
+ /* PR122365 */
+ /* { dg-do compile } */
+ 
+ struct TDTI {
+   float V[4];
+ };
+ struct TDTI4D {
+   struct TDTI S[];
+ };
+ void bar();
+ struct TDTI4D nii_readParRec_dti4D;
+ int nii_readParRec_d_0_0;
+ void nii_readParRec() {
+   for (int i;;) {
+     bool v1varies = false, v2varies = false, v3varies = false;
+     for (; i < nii_readParRec_d_0_0; i++) {
+       if (nii_readParRec_dti4D.S[i].V[1])
+         v1varies = true;
+       if (nii_readParRec_dti4D.S[i].V[2])
+         v2varies = true;
+       if (nii_readParRec_dti4D.S[i].V[3])
+         v3varies = true;
+     }
+     if (v1varies || v2varies || v3varies)
+       bar();
+   }
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,31 ----
+ #include "tree-vect.h"
+ 
+ int q[32];
+ 
+ int __attribute__((noipa))
+ foo ()
+ {
+   int res = 0;
+   for (int i = 0; i < 8; ++i)
+     res += q[4*i] + q[4*i+1] + q[4*i+2] + q[4*i+3];
+   return res;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   int sum = 0;
+ #pragma GCC novector
+   for (int i = 0; i < 32; ++i)
+     {
+       q[i] = i;
+       sum += i;
+     }
+ 
+   if (foo () != sum)
+     abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump "vectorizing a reduction chain" "vect" } } */
+ /* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,31 ----
+ #include "tree-vect.h"
+ 
+ int q[32];
+ 
+ unsigned __attribute__((noipa))
+ foo ()
+ {
+   unsigned res = 0;
+   for (int i = 0; i < 8; ++i)
+     res += q[4*i] + q[4*i+1] + q[4*i+2] + q[4*i+3];
+   return res;
+ }
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   unsigned sum = 0;
+ #pragma GCC novector
+   for (int i = 0; i < 32; ++i)
+     {
+       q[i] = i;
+       sum += i;
+     }
+ 
+   if (foo () != sum)
+     abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump "vectorizing a reduction chain" "vect" } } */
+ /* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do assemble { target elf } } */
+ /* { dg-require-effective-target aarch64_sysreg_guarding_ok } */
+ /* { dg-additional-options "-march=armv8-a -menable-sysreg-checking -###" } */
+ /* Ensure the system registers passed through inline assembly are rejected by
+    assembler when guarding is enabled through "-menable-sysreg-checking" command
+    line flag and proper feature flags are not passed.  */
+ 
+ #define INPUT 1
+ 
+ static inline void
+ read_write_using_sysreg (int mode)
+ {
+   int b;
+ 
+   /* write to gcspr_el0.  */
+   asm volatile ("msr gcspr_el0, %[r]" ::[r] "r" (mode):);
+ 
+   /* Read from gcspr_el0.  */
+   asm volatile ("mrs %[r], gcspr_el0" :[r] "=r"(b)::);
+ }
+ 
+ int main()
+ {
+   read_write_using_sysreg (INPUT);
+   return 0;
+ }
+ /* { dg-prune-output "^(COMPILER_PATH|LIBRARY_PATH|COLLECT_GCC_OPTIONS)=.*" } */
+ /* { dg-message ".*\/.*as .*-menable-sysreg-checking" "assembler options" {target aarch64-*-* } 0 } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do assemble { target elf} } */
+ /* { dg-require-effective-target aarch64_sysreg_guarding_ok } */
+ /* { dg-options "-save-temps -O2 -menable-sysreg-checking -march=armv8-a+gcs" } */
+ /* Ensure that system registers passed through inline assembly are properly
+    gated on the feature flags, when the guarding is enabled through
+    "-menable-sysreg-checking" command line flag.  */
+ 
+ #define INPUT 1
+ 
+ static inline void
+ read_write_using_sysreg (int mode)
+ {
+   int b;
+ 
+   /* write to gcspr_el0.  */
+   asm volatile ("msr gcspr_el0, %[r]" ::[r] "r" (mode):);
+ 
+   /* Read from gcspr_el0.  */
+   asm volatile ("mrs %[r], gcspr_el0" :[r] "=r"(b)::);
+ }
+ 
+ int main()
+ {
+   read_write_using_sysreg (INPUT);
+   return 0;
+ }
+ 
+ /* { { dg-final { scan-assembler {msr\s+gcspr_el0,\s+x0} } } */
+ /* { { dg-final { scan-assembler {mrs\s+x0,\s+gcspr_el0} } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-menable-sysreg-checking -march=armv8-a+sve2+sme" } */
+ /* Ensure that system registers are properly gated on the feature flags, when
+    the guarding is enabled through "-menable-sysreg-checking" command line
+    flag.  */
+ 
+ #include <arm_acle.h>
+ 
+ uint64_t
+ foo (uint64_t a)
+ {
+   __arm_wsr64 ("zcr_el1", a); /* { { dg-final { scan-assembler "msr\ts3_0_c1_c2_0, x0" } } */
+   return __arm_rsr64 ("smcr_el1"); /* { { dg-final { scan-assembler "mrs\tx0, s3_0_c1_c2_6" } } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-menable-sysreg-checking -march=armv8-a" } */
+ /* Ensure the system registers are rejected by compiler when guarding is
+    enabled through "-menable-sysreg-checking" command line flag and proper
+    feature flags are not passed.  */
+ 
+ #include <arm_acle.h>
+ 
+ uint64_t
+ foo (uint64_t a)
+ {
+   __arm_wsr64 ("zcr_el1", a); /* { dg-error "invalid system register name 'zcr_el1'" } */
+   return __arm_rsr64 ("smcr_el1"); /* { dg-error "invalid system register name 'smcr_el1'" } */
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c	Sun Oct 26 22:32:40 2025
***************
*** 1,7 ****
  /* Verify pattern initialization for structure type automatic variables with
     padding.  */
  /* { dg-do compile } */
! /* { dg-options "-O -ftrivial-auto-var-init=pattern" } */
  
  struct test_aligned {
          int internal1;
--- 1,8 ----
  /* Verify pattern initialization for structure type automatic variables with
     padding.  */
  /* { dg-do compile } */
! /* SRA should be turned off as it can fully scalarize var as the padding is not touched. */
! /* { dg-options "-O -ftrivial-auto-var-init=pattern -fno-tree-sra" } */
  
  struct test_aligned {
          int internal1;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c	Sun Oct 19 22:32:30 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c	Sun Oct 26 22:32:40 2025
***************
*** 1,7 ****
  /* Verify pattern initialization for nested structure type automatic variables with
     padding.  */
  /* { dg-do compile } */
! /* { dg-options "-O -ftrivial-auto-var-init=pattern" } */
  
  struct test_aligned {
          unsigned internal1;
--- 1,8 ----
  /* Verify pattern initialization for nested structure type automatic variables with
     padding.  */
  /* { dg-do compile } */
! /* SRA should be turned off as it can fully scalarize var as the padding is not touched. */
! /* { dg-options "-O -ftrivial-auto-var-init=pattern -fno-tree-sra" } */
  
  struct test_aligned {
          unsigned internal1;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority.in gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority.in
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority.in	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority.in	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,92 ----
+ int fn [[gnu::target_version("default")]] (int)			{ return 1; }
+ int fn_default (int) asm("fn.default");
+ int fn [[gnu::target_version("rng")]] (int)			{ return 1; }
+ int fn_rng(int) asm("fn._Mrng");
+ int fn [[gnu::target_version("flagm")]] (int)			{ return 1; }
+ int fn_flagm(int) asm("fn._Mflagm");
+ int fn [[gnu::target_version("flagm2")]] (int)			{ return 1; }
+ int fn_flagm2(int) asm("fn._Mflagm2");
+ int fn [[gnu::target_version("lse")]] (int)			{ return 1; }
+ int fn_lse(int) asm("fn._Mlse");
+ int fn [[gnu::target_version("fp")]] (int)			{ return 1; }
+ int fn_fp(int) asm("fn._Mfp");
+ int fn [[gnu::target_version("simd")]] (int)			{ return 1; }
+ int fn_simd(int) asm("fn._Msimd");
+ int fn [[gnu::target_version("dotprod")]] (int)			{ return 1; }
+ int fn_dotprod(int) asm("fn._Mdotprod");
+ int fn [[gnu::target_version("sm4")]] (int)			{ return 1; }
+ int fn_sm4(int) asm("fn._Msm4");
+ int fn [[gnu::target_version("rdm")]] (int)			{ return 1; }
+ int fn_rdm(int) asm("fn._MrdmaMrdm");
+ int fn [[gnu::target_version("crc")]] (int)			{ return 1; }
+ int fn_crc(int) asm("fn._Mcrc");
+ int fn [[gnu::target_version("sha2")]] (int)			{ return 1; }
+ int fn_sha2(int) asm("fn._Msha2");
+ int fn [[gnu::target_version("sha3")]] (int)			{ return 1; }
+ int fn_sha3(int) asm("fn._Msha3");
+ int fn [[gnu::target_version("aes")]] (int)			{ return 1; }
+ int fn_aes(int) asm("fn._Maes");
+ int fn [[gnu::target_version("fp16")]] (int)			{ return 1; }
+ int fn_fp16(int) asm("fn._Mfp16");
+ int fn [[gnu::target_version("fp16fml")]] (int)			{ return 1; }
+ int fn_fp16fml(int) asm("fn._Mfp16fml");
+ /* TODO: These FMV features are not yet supported in GCC. */
+ // int fn [[gnu::target_version("dit")]] (int)			{ return 1; }
+ // int fn [[gnu::target_version("dpb")]] (int)			{ return 1; }
+ // int fn [[gnu::target_version("dpb2")]] (int)			{ return 1; }
+ int fn [[gnu::target_version("jscvt")]] (int)			{ return 1; }
+ int fn_jscvt(int) asm("fn._Mjscvt");
+ int fn [[gnu::target_version("fcma")]] (int)			{ return 1; }
+ int fn_fcma(int) asm("fn._Mfcma");
+ int fn [[gnu::target_version("rcpc")]] (int)			{ return 1; }
+ int fn_rcpc(int) asm("fn._Mrcpc");
+ int fn [[gnu::target_version("rcpc2")]] (int)			{ return 1; }
+ int fn_rcpc2(int) asm("fn._Mrcpc2");
+ int fn [[gnu::target_version("rcpc3")]] (int)			{ return 1; }
+ int fn_rcpc3(int) asm("fn._Mrcpc3");
+ int fn [[gnu::target_version("frintts")]] (int)			{ return 1; }
+ int fn_frintts(int) asm("fn._Mfrintts");
+ int fn [[gnu::target_version("i8mm")]] (int)			{ return 1; }
+ int fn_i8mm(int) asm("fn._Mi8mm");
+ int fn [[gnu::target_version("bf16")]] (int)			{ return 1; }
+ int fn_bf16(int) asm("fn._Mbf16");
+ int fn [[gnu::target_version("sve")]] (int)			{ return 1; }
+ int fn_sve(int) asm("fn._Msve");
+ int fn [[gnu::target_version("f32mm")]] (int)			{ return 1; }
+ int fn_f32mm(int) asm("fn._Mf32mm");
+ int fn [[gnu::target_version("f64mm")]] (int)			{ return 1; }
+ int fn_f64mm(int) asm("fn._Mf64mm");
+ int fn [[gnu::target_version("sve2")]] (int)			{ return 1; }
+ int fn_sve2(int) asm("fn._Msve2");
+ int fn [[gnu::target_version("sve2-aes")]] (int)		{ return 1; }
+ int fn_sve2_aes(int) asm("fn._Msve2_aes");
+ int fn [[gnu::target_version("sve2-bitperm")]] (int)		{ return 1; }
+ int fn_sve2_bitperm(int) asm("fn._Msve2_bitperm");
+ int fn [[gnu::target_version("sve2-sha3")]] (int)		{ return 1; }
+ int fn_sve2_sha3(int) asm("fn._Msve2_sha3");
+ int fn [[gnu::target_version("sve2-sm4")]] (int)		{ return 1; }
+ int fn_sve2_sm4(int) asm("fn._Msve2_sm4");
+ int fn [[gnu::target_version("sve2+sme")]] (int)		{ return 1; }
+ int fn_sve2_sme(int) asm("fn._Msve2Msme");
+ /* TODO: This FMV features is not yet supported in GCC. */
+ // int fn [[gnu::target_version("memtag")]] (int)		{ return 1; }
+ int fn [[gnu::target_version("sb")]] (int)			{ return 1; }
+ int fn_sb(int) asm("fn._Msb");
+ /* TODO: This FMV feature is not yet supported in GCC. */
+ // int fn [[gnu::target_version("ssbs")]] (int)			{ return 1; }
+ // int fn_ssbs(int) asm("fn._Mssbs");
+ /* TODO: This FMV feature is not yet supported in GCC. */
+ // int fn [[gnu::target_version("bti")]] (int)			{ return 1; }
+ int fn [[gnu::target_version("wfxt")]] (int)			{ return 1; }
+ int fn_wfxt(int) asm("fn._Mwfxt");
+ int fn [[gnu::target_version("sve2+sme-f64f64")]] (int)		{ return 1; }
+ int fn_sve2_sme_f64f64(int) asm("fn._Msve2Msme_f64f64");
+ int fn [[gnu::target_version("sve2+sme-i16i64")]] (int)		{ return 1; }
+ int fn_sve2_sme_i16i64(int) asm("fn._Msve2Msme_i16i64");
+ int fn [[gnu::target_version("sve2+sme2")]] (int)		{ return 1; }
+ int fn_sve2_sme2(int) asm("fn._Msve2Msme2");
+ int fn [[gnu::target_version("mops")]] (int)			{ return 1; }
+ int fn_mops(int) asm("fn._Mmops");
+ int fn [[gnu::target_version("cssc")]] (int)			{ return 1; }
+ int fn_cssc(int) asm("fn._Mcssc");
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority1.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority1.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,175 ----
+ /* { dg-do run { target { aarch64_asm_sme2_ok } } }  */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0 -march=armv8-a" } */
+ 
+ #include <sys/auxv.h>
+ #include "../../../common/config/aarch64/cpuinfo.h"
+ 
+ /* This test has a FMV function set with one version per feature we support.
+    Each version is turned on incrementally and the generated resolver is
+    checked to show the correct version is chosen.  */
+ 
+ /* The resolver does actually take arguments, but ignores them and uses
+    __aarch64_cpu_features global instead to establish what features are
+    present.  */
+ int (*(resolver)(void)) (int) asm("fn.resolver");
+ 
+ extern struct {
+   unsigned long long features;
+ } aarch64_cpu_features asm("__aarch64_cpu_features");
+ 
+ #include "fmv_priority.in"
+ 
+ #define setCPUFeature(F) aarch64_cpu_features.features |= 1UL << F
+ 
+ int main () {
+   aarch64_cpu_features.features = 0;
+ 
+   /* Initialize the CPU features, so the resolver doesn't try fetch it.  */
+   setCPUFeature(FEAT_INIT);
+ 
+   /* Go through features in order and assure the priorities are correct.
+      By checking the correct versions are resolved.  */
+ 
+   /* Some are missing as they are defined in the ACLE but are not yet
+      implemented.  */
+   if (resolver() != &fn_default) return 1;
+ 
+   setCPUFeature(FEAT_RNG);
+   if (resolver() != &fn_rng) return 1;
+ 
+   setCPUFeature(FEAT_FLAGM);
+  if (resolver() != &fn_flagm) return 1;
+ 
+   setCPUFeature(FEAT_FLAGM2);
+   if (resolver() != &fn_flagm2) return 1;
+ 
+   setCPUFeature (FEAT_LSE);
+   if (resolver () != &fn_lse) return 1;
+ 
+   setCPUFeature (FEAT_FP);
+   if (resolver () != &fn_fp) return 1;
+ 
+   setCPUFeature (FEAT_SIMD);
+   if (resolver () != &fn_simd) return 1;
+ 
+   setCPUFeature (FEAT_DOTPROD);
+   if (resolver () != &fn_dotprod) return 1;
+ 
+   setCPUFeature (FEAT_SM4);
+   if(resolver() != &fn_sm4) return 1;
+ 
+   setCPUFeature (FEAT_RDM);
+   if(resolver() != &fn_rdm) return 1;
+ 
+   setCPUFeature (FEAT_CRC);
+   if (resolver () != &fn_crc) return 1;
+ 
+   setCPUFeature (FEAT_SHA2);
+   if (resolver () != &fn_sha2) return 1;
+ 
+   setCPUFeature (FEAT_SHA3);
+   if (resolver () != &fn_sha3) return 1;
+ 
+   setCPUFeature(FEAT_PMULL);
+   if(resolver() != &fn_aes) return 1;
+ 
+   setCPUFeature (FEAT_FP16);
+   if (resolver () != &fn_fp16) return 1;
+ 
+   setCPUFeature (FEAT_FP16FML);
+   if(resolver() != &fn_fp16fml) return 1;
+ 
+   setCPUFeature (FEAT_DIT);
+   // if(resolver() != &fn_dit) return 1;
+   // 
+   setCPUFeature (FEAT_DPB);
+   // if(resolver() != &fn_dpb) return 1;
+   // 
+   setCPUFeature (FEAT_DPB2);
+   // if(resolver() != &fn_dpb2) return 1;
+   // 
+   setCPUFeature (FEAT_JSCVT);
+   if (resolver () != &fn_jscvt) return 1;
+ 
+   setCPUFeature (FEAT_FCMA);
+   if (resolver () != &fn_fcma) return 1;
+ 
+   setCPUFeature (FEAT_RCPC);
+   if (resolver () != &fn_rcpc) return 1;
+ 
+   setCPUFeature (FEAT_RCPC2);
+   if (resolver () != &fn_rcpc2) return 1;
+ 
+   setCPUFeature (FEAT_RCPC3);
+   // if(resolver() != &fn_rcpc3) return 1;
+   // 
+   setCPUFeature (FEAT_FRINTTS);
+   if (resolver () != &fn_frintts) return 1;
+ 
+   setCPUFeature (FEAT_I8MM);
+   if (resolver () != &fn_i8mm) return 1;
+ 
+   setCPUFeature (FEAT_BF16);
+   if (resolver () != &fn_bf16) return 1;
+ 
+   setCPUFeature (FEAT_SVE);
+   if (resolver () != &fn_sve) return 1;
+ 
+   setCPUFeature (FEAT_SVE_F32MM);
+   if(resolver() != &fn_f32mm) return 1;
+ 
+   setCPUFeature (FEAT_SVE_F64MM);
+   if(resolver() != &fn_f64mm) return 1;
+ 
+   setCPUFeature (FEAT_SVE2);
+   if (resolver () != &fn_sve2) return 1;
+ 
+   setCPUFeature(FEAT_SVE_PMULL128);
+   if(resolver() != &fn_sve2_aes) return 1;
+ 
+   setCPUFeature (FEAT_SVE_BITPERM);
+   if (resolver () != &fn_sve2_bitperm) return 1;
+ 
+   setCPUFeature (FEAT_SVE_SHA3);
+   if (resolver () != &fn_sve2_sha3) return 1;
+ 
+   setCPUFeature (FEAT_SVE_SM4);
+   if (resolver () != &fn_sve2_sm4) return 1;
+ 
+   setCPUFeature (FEAT_SME);
+   if (resolver () != &fn_sve2_sme) return 1;
+ 
+   setCPUFeature(FEAT_MEMTAG2);
+   // if(resolver() != &fn_memtag) return 1;
+ 
+   setCPUFeature (FEAT_SB);
+   if (resolver () != &fn_sb) return 1;
+ 
+   setCPUFeature(FEAT_SSBS2);
+   // if(resolver() != &fn_ssbs) return 1;
+  
+   setCPUFeature(FEAT_BTI);
+   // if(resolver() != &fn_bti) return 1;
+ 
+   setCPUFeature (FEAT_WFXT);
+   if (resolver () != &fn_wfxt) return 1;
+ 
+   setCPUFeature (FEAT_SME_F64);
+   if (resolver () != &fn_sve2_sme_f64f64) return 1;
+ 
+   setCPUFeature (FEAT_SME_I64);
+   if (resolver () != &fn_sve2_sme_i16i64) return 1;
+ 
+   setCPUFeature (FEAT_SME2);
+   if (resolver () != &fn_sve2_sme2) return 1;
+ 
+   setCPUFeature (FEAT_MOPS);
+   if (resolver () != &fn_mops) return 1;
+ 
+   setCPUFeature (FEAT_CSSC);
+   if (resolver () != &fn_cssc) return 1;
+ 
+   return 0;
+ }
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/fmv_priority2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/fmv_priority2.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile }  */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0 -march=armv8-a -fdump-ipa-targetclone1-details" } */
+ 
+ #include "fmv_priority.in"
+ 
+ // Checks that the versions are in the correct order
+ // Each of these lines checks 3 consecutive versions in the list with one overlap
+ /* { dg-final { scan-ipa-dump-times "Version order for fn/\[0-9\]+:\\nfn\.default/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\.default/\[0-9\]+\\nfn\._Mrng/\[0-9\]+\\nfn\._Mflagm/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mflagm/\[0-9\]+\\nfn\._Mflagm2/\[0-9\]+\\nfn\._Mlse/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mlse/\[0-9\]+\\nfn\._Mfp/\[0-9\]+\\nfn\._Msimd/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msimd/\[0-9\]+\\nfn\._Mdotprod/\[0-9\]+\\nfn\._Msm4/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msm4/\[0-9\]+\\nfn\._MrdmaMrdm/\[0-9\]+\\nfn\._Mcrc/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mcrc/\[0-9\]+\\nfn\._Msha2/\[0-9\]+\\nfn\._Msha3/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msha3/\[0-9\]+\\nfn\._Maes/\[0-9\]+\\nfn\._Mfp16/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mfp16/\[0-9\]+\\nfn\._Mfp16fml/\[0-9\]+\\nfn\._Mjscvt/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mjscvt/\[0-9\]+\\nfn\._Mfcma/\[0-9\]+\\nfn\._Mrcpc/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mrcpc/\[0-9\]+\\nfn\._Mrcpc2/\[0-9\]+\\nfn\._Mrcpc3/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mrcpc3/\[0-9\]+\\nfn\._Mfrintts/\[0-9\]+\\nfn\._Mi8mm/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mi8mm/\[0-9\]+\\nfn\._Mbf16/\[0-9\]+\\nfn\._Msve/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msve/\[0-9\]+\\nfn\._Mf32mm/\[0-9\]+\\nfn\._Mf64mm/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mf64mm/\[0-9\]+\\nfn\._Msve2/\[0-9\]+\\nfn\._Msve2_aes/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msve2_aes/\[0-9\]+\\nfn\._Msve2_bitperm/\[0-9\]+\\nfn\._Msve2_sha3/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msve2_sha3/\[0-9\]+\\nfn\._Msve2_sm4/\[0-9\]+\\nfn\._Msve2Msme/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msve2Msme/\[0-9\]+\\nfn\._Msb/\[0-9\]+\\nfn\._Mwfxt/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mwfxt/\[0-9\]+\\nfn\._Msve2Msme_f64f64/\[0-9\]+\\nfn\._Msve2Msme_i16i64/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Msve2Msme_i16i64/\[0-9\]+\\nfn\._Msve2Msme2/\[0-9\]+\\nfn\._Mmops/\[0-9\]+\\n" 1 "targetclone1" } } */
+ /* { dg-final { scan-ipa-dump-times "fn\._Mmops/\[0-9\]+\\nfn\._Mcssc/\[0-9\]+\\n" 1 "targetclone1" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/pr122190.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/pr122190.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/pr122190.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/pr122190.c	Sun Oct 26 22:32:40 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile }  */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0 -march=armv8-a -fdump-ipa-targetclone1-details" } */
+ 
+ int fn (int a) {return 1;}
+ int fn[[gnu::target_version("sve")]] (int a) {return 2;}
+ int fn[[gnu::target_version("simd+dotprod")]] (int a) {return 3;}
+ int fn[[gnu::target_version("sve+fp")]] (int a) {return 2;}
+ 
+ /* { dg-final { scan-ipa-dump-times "Version order for fn/\[0-9\]+:\\nfn\.default/\[0-9\]+\\nfn\._MsimdMdotprod/\[0-9\]+\\nfn\._Msve/\[0-9\]+\\nfn\._MfpMsve/\[0-9\]+\\n" 1 "targetclone1" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=asimd-only -fno-schedule-insns -fno-reorder-blocks -fno-schedule-insns2 -fdump-tree-vect-details" }*/
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ char p[128];
+ 
+ /* 
+ ** fand:
+ **	...
+ ** 	ptrue	p[0-9]+.b, vl16
+ ** 	cmpeq	p[0-9]+.b, p[0-9]+/z, z[0-9]+.b, #0
+ ** 	cset	w[0-9]+, none
+ **	...
+ */
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ /*
+ ** fior:
+ **	...
+ ** 	ptrue	p[0-9]+.b, vl16
+ ** 	cmpne	p[0-9]+.b, p[0-9]+/z, z[0-9]+.b, #0
+ ** 	cset	w[0-9]+, any
+ **	...
+ */
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ /*
+ ** fxor:
+ **	...
+ ** 	ptrue	p[0-9]+.b, vl16
+ ** 	cmpne	p[0-9]+.b, p[0-9]+/z, z[0-9]+.b, #0
+ ** 	cntp	x[0-9]+, p[0-9]+, p[0-9]+.b
+ ** 	and	w[0-9]+, w[0-9]+, 1
+ **	...
+ */
+ bool __attribute__((noipa))
+ fxor (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 3 "vect" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target aarch64_sve_hw } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -march=armv8-a+sve -mautovec-preference=sve-only -fno-schedule-insns -fno-reorder-blocks -fno-schedule-insns2 -fdump-tree-vect-details" }*/
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ char p[128];
+ 
+ /*
+ ** fand:
+ ** 	...
+ ** 	ptrue	p[0-9]+.s, all
+ ** 	nots	p[0-9]+.b, p[0-9]+/z, p[0-9]+.b
+ ** 	cset	w[0-9]+, none
+ ** 	and	w[0-9]+, w[0-9]+, w[0-9]+
+ ** 	...
+ */
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ /* 
+ ** fior:
+ ** 	...
+ ** 	ptest	p[0-9]+, p[0-9]+.b
+ ** 	cset	w[0-9]+, any
+ ** 	orr	w[0-9]+, w[0-9]+, w[0-9]+
+ ** 	...
+ */
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ /* 
+ ** fxor:
+ ** 	...
+ ** 	cntp	x[0-9]+, p[0-9]+, p[0-9]+.h
+ ** 	and	w[0-9]+, w[0-9]+, 1
+ ** 	eor	w[0-9]+, w[0-9]+, w[0-9]+
+ ** 	...
+ */ 
+ bool __attribute__((noipa))
+ fxor (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 3 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c	Sun Oct 19 22:32:31 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c	Sun Oct 26 22:32:41 2025
***************
*** 7,13 ****
  
  /*
  ** foo:
! **	movi	d([0-9]+), #0
  **	movprfx	z0\.b, p0/z, z0\.b
  **	usqadd	z0\.b, p0/m, z0\.b, z\1\.b
  **	ret
--- 7,13 ----
  
  /*
  ** foo:
! **	movi?	[vdz]([0-9]+)\.?b?, #0
  **	movprfx	z0\.b, p0/z, z0\.b
  **	usqadd	z0\.b, p0/m, z0\.b, z\1\.b
  **	ret
*************** svuint8_t foo (svbool_t pg, svuint8_t op
*** 19,25 ****
  
  /*
  ** bar:
! **	movi	d([0-9]+), #0
  **	movprfx	z0\.b, p0/z, z0\.b
  **	suqadd	z0\.b, p0/m, z0\.b, z\1\.b
  **	ret
--- 19,25 ----
  
  /*
  ** bar:
! **	movi?	[vdz]([0-9]+)\.?b?, #0
  **	movprfx	z0\.b, p0/z, z0\.b
  **	suqadd	z0\.b, p0/m, z0\.b, z\1\.b
  **	ret
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fand (n))
+       __builtin_abort ();
+ 
+   p[0] = 0;
+   for (int n = 1; n < 77; ++n)
+     if (fand (n))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fior (n))
+       __builtin_abort ();
+ 
+   p[0] = 1;
+   for (int n = 1; n < 77; ++n)
+     if (!fior (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ char p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ short p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ int p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fdump-tree-vect-details" }*/
+ 
+ long long p[128];
+ 
+ bool __attribute__((noipa))
+ fxort (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ bool __attribute__((noipa))
+ fxorf (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ int main()
+ {
+   __builtin_memset (p, 1, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxort (n) != !(n & 1))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n) != (n & 1))
+       __builtin_abort ();
+ 
+   __builtin_memset (p, 0, sizeof(p));
+ 
+   for (int n = 0; n < 77; ++n)
+     if (!fxort (n))
+       __builtin_abort ();
+ 
+   for (int n = 0; n < 77; ++n)
+     if (fxorf (n))
+       __builtin_abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 2 "vect" { target { vect_int && vect_condition } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c	Sun Oct 26 22:32:41 2025
***************
*** 0 ****
--- 1,63 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -march=armv8-a -mautovec-preference=asimd-only -fno-schedule-insns -fno-reorder-blocks -fno-schedule-insns2 -fdump-tree-vect-details" }*/
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ char p[128];
+ 
+ /*
+ ** fand:
+ **	...
+ ** 	uminp	v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
+ ** 	fmov	x[0-9]+, d[0-9]+
+ ** 	cmn	x[0-9]+, #1
+ ** 	cset	w[0-9]+, eq
+ **	...
+ */
+ bool __attribute__((noipa))
+ fand (int n)
+ {
+   bool r = true;
+   for (int i = 0; i < n; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ /*
+ ** fior:
+ **	...
+ ** 	umaxp	v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
+ ** 	fmov	x[0-9]+, d[0-9]+
+ ** 	cmp	x[0-9]+, 0
+ ** 	cset	w[0-9]+, ne
+ **	...
+ */
+ bool __attribute__((noipa))
+ fior (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ /* 
+ ** fxor:
+ **	...
+ ** 	movi	v[0-9]+.16b, 0x1
+ ** 	and	v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b
+ ** 	addv	b[0-9]+, v[0-9]+.16b
+ ** 	fmov	w[0-9]+, s[0-9]+
+ ** 	and	w[0-9]+, w[0-9]+, 1
+ **	...
+ */
+ bool __attribute__((noipa))
+ fxor (int n)
+ {
+   bool r = false;
+   for (int i = 0; i < n; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: loop vectorized" 3 "vect" } } */
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c	Sun Oct 19 22:32:32 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c	Sun Oct 26 22:32:41 2025
*************** float32x4_t foo() {
*** 21,25 ****
  }
  #endif
  
! /* { dg-final { scan-assembler-not "vmov.f32\tq0, #0.0" } } */
! /* { dg-final { scan-assembler "vmov.f32\tq0, #1.0" } } */
--- 21,25 ----
  }
  #endif
  
! /* { dg-final { scan-assembler-not "vmov.f32\tq\[0-9\]+, #0.0" } } */
! /* { dg-final { scan-assembler "vmov.f32\tq\[0-9\]+, #1.0" } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c	Sun Oct 19 22:32:32 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c	Sun Oct 26 22:32:41 2025
***************
*** 1,6 ****
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
--- 1,6 ----
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2 -fno-schedule-insns -fno-schedule-insns2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
*************** extern "C" {
*** 14,25 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 14,25 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
*************** foo (int32x4_t inactive, int32x4_t a, in
*** 41,52 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 41,52 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c	Sun Oct 19 22:32:32 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c	Sun Oct 26 22:32:41 2025
***************
*** 1,6 ****
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
--- 1,6 ----
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2 -fno-schedule-insns -fno-schedule-insns2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
*************** extern "C" {
*** 14,25 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 14,25 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
*************** foo (uint32x4_t inactive, uint32x4_t a,
*** 41,52 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 41,52 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vadct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c	Sun Oct 19 22:32:32 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c	Sun Oct 26 22:32:41 2025
***************
*** 1,6 ****
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
--- 1,6 ----
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2 -fno-schedule-insns -fno-schedule-insns2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
*************** extern "C" {
*** 14,25 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 14,25 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
*************** foo (int32x4_t inactive, int32x4_t a, in
*** 41,52 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 41,52 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c	Sun Oct 19 22:32:32 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c	Sun Oct 26 22:32:41 2025
***************
*** 1,6 ****
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
--- 1,6 ----
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
! /* { dg-additional-options "-O2 -fno-schedule-insns -fno-schedule-insns2" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
  #include "arm_mve.h"
*************** extern "C" {
*** 14,25 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 14,25 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
*************** foo (uint32x4_t inactive, uint32x4_t a,
*** 41,52 ****
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
- **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
- **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
--- 41,52 ----
  **	...
  **	vmrs	(?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?:	@.*|)
  **	...
  **	bfi	(?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?:	@.*|)
  **	...
  **	vmsr	FPSCR_nzcvqc, (?:ip|fp|r[0-9]+)(?:	@.*|)
  **	...
+ **	vmsr	p0, (?:ip|fp|r[0-9]+)(?:	@.*|)
+ **	...
  **	vpst(?:	@.*|)
  **	...
  **	vsbct.i32	q[0-9]+, q[0-9]+, q[0-9]+(?:	@.*|)
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	andps	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ float
+ foo (float x)
+ {
+   return __builtin_copysignf (x, 0.0);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	0" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	2147483647" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	orps	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ float
+ foo (float x)
+ {
+   return __builtin_copysignf (x, -3.0);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	0" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	-2147483648" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-4.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	pand	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ __float128
+ foo (__float128 x)
+ {
+   return __builtin_copysignq (x, 0.0);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	-1" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	2147483647" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	pand	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ __float128
+ foo (__float128 x)
+ {
+   return __builtin_copysignq (0.0, x);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	0" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	-2147483648" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-6.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	pand	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ __float128
+ foo (__float128 x)
+ {
+   return __builtin_copysignq (x, 3.4);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	-1" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	2147483647" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-7.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	pand	.LC[0-9]+\(%rip\), %xmm0
+ **	por	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ __float128
+ foo (__float128 x)
+ {
+   return __builtin_copysignq (3.4, x);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	pand	.LC[0-9]+\(%rip\), %xmm0
+ **	pand	.LC[0-9]+\(%rip\), %xmm1
+ **	por	%xmm1, %xmm0
+ **	ret
+ **...
+ */
+ 
+ __float128
+ foo (__float128 x, __float128 y)
+ {
+   return __builtin_copysignq (x, y);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx512f -mavx" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vmovdqa	.LC[0-9]+\(%rip\), %xmm2
+ **	vpandn	%xmm0, %xmm2, %xmm0
+ **	vpand	%xmm2, %xmm1, %xmm1
+ **	vpor	%xmm1, %xmm0, %xmm0
+ **	ret
+ **...
+ */
+ 
+ #include "builtin-copysign-8a.c"
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR target/122323 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	orps	.LC[0-9]+\(%rip\), %xmm0
+ **	ret
+ **...
+ */
+ 
+ float
+ foo (float x)
+ {
+   return -__builtin_fabsf (x);
+ }
+ 
+ /* { dg-final { scan-assembler-times ".long	0" 3 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times ".long	-2147483648" 1 { target { ! ia32 } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-fabs-2.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-fabs-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/builtin-fabs-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/builtin-fabs-2.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,27 ----
+ /* PR target/99930 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mno-avx -msse2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */
+ 
+ /*
+ **foo:
+ **...
+ **	ja	.L[0-9]+
+ **	movss	4\(%(e|r)di\), %xmm1
+ **	orps	%xmm1, %xmm0
+ **	comiss	%xmm0, %xmm2
+ **	seta	%al
+ **	ret
+ **...
+ */
+ 
+ 
+ bool
+ foo (float n[2], float m)
+ {
+   for (int i = 0; i < 2; i++)
+     if (m > -__builtin_fabsf (n[i]))
+       return true;
+   return false;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/funcspec-56.inc gcc-16-20251026/gcc/testsuite/gcc.target/i386/funcspec-56.inc
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/funcspec-56.inc	Sun Oct 19 22:32:33 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/funcspec-56.inc	Sun Oct 26 22:32:42 2025
*************** extern void test_arch_arrowlake (void)
*** 217,222 ****
--- 217,223 ----
  extern void test_arch_arrowlake_s (void)	__attribute__((__target__("arch=arrowlake-s")));
  extern void test_arch_pantherlake (void)	__attribute__((__target__("arch=pantherlake")));
  extern void test_arch_diamondrapids (void)	__attribute__((__target__("arch=diamondrapids")));
+ extern void test_arch_novalake (void)		__attribute__((__target__("arch=novalake")));
  extern void test_arch_lujiazui (void)		__attribute__((__target__("arch=lujiazui")));
  extern void test_arch_yongfeng (void)		__attribute__((__target__("arch=yongfeng")));
  extern void test_arch_shijidadao (void)		__attribute__((__target__("arch=shijidadao")));
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v3 -O2" } */
+ /* { dg-final { scan-assembler-times "vptest" 1 } } */
+ /* { dg-final { scan-assembler-times "sete" 1 } } */
+ /* { dg-final { scan-assembler-times "vpcmpeq" 1 } } */
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 32; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-times "kortest" 2 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times "setc" 1 { target { ! ia32 } } } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 { target { ! ia32 } } } } */
+ 
+ bool f(char * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 64; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 64; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 64; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-times "kortest" 2 } } */
+ /* { dg-final { scan-assembler-times "setc" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ 
+ bool f(char * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 16; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 16; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 16; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v3 -O2" } */
+ /* { dg-final { scan-assembler-times "vptest" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-not "vpcmpeq" } } */
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 32; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-times "kortest" 2 } } */
+ /* { dg-final { scan-assembler-times "setc" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ 
+ bool f(int * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 8; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(int * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 8; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(int * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 8; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-times "kortest" 2 } } */
+ /* { dg-final { scan-assembler-times "setc" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ 
+ bool f(char * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 32; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 32; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 32; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v3 -O2" } */
+ /* { dg-final { scan-assembler-times "vptest" 2 } } */
+ /* { dg-final { scan-assembler-times "sete" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ /* { dg-final { scan-assembler-times "vmovmskpd" 1 } } */
+ 
+ bool f(long long *p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 4; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(long long *p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 4; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(long long *p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 4; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v3 -O2" } */
+ /* { dg-final { scan-assembler-times "vptest" 2 } } */
+ /* { dg-final { scan-assembler-times "sete" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ /* { dg-final { scan-assembler-times "vpmovmskb" 1 } } */
+ 
+ bool f(char * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 32; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 32; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(char * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 32; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v3 -O2" } */
+ /* { dg-final { scan-assembler-times "vptest" 2 } } */
+ /* { dg-final { scan-assembler-times "sete" 1 } } */
+ /* { dg-final { scan-assembler-times "setne" 1 } } */
+ /* { dg-final { scan-assembler-times "popcnt" 1 } } */
+ /* { dg-final { scan-assembler-times "vmovmskps" 1 } } */
+ 
+ bool f(int * p, long n)
+ {
+   bool r = true;
+   for(long i = 0; i < 8; ++i)
+     r &= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f2(int * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 8; ++i)
+     r |= (p[i] != 0);
+   return r;
+ }
+ 
+ bool f3(int * p, long n)
+ {
+   bool r = false;
+   for(long i = 0; i < 8; ++i)
+     r ^= (p[i] != 0);
+   return r;
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask16.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask16.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask16.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask16.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask16 dumpy_eq (__m512i vx){
+   return _mm512_cmp_epi32_mask (vx, vx, 0);
+ }
+ 
+ __mmask16 dumpy_lt (__m512i vx)
+ {
+   return _mm512_cmp_epi32_mask (vx, vx, 1);
+ }
+ 
+ __mmask16 dumpy_le (__m512i vx){
+   return _mm512_cmp_epi32_mask (vx, vx, 2);
+ }
+ 
+ __mmask16 dumpy_ne (__m512i vx)
+ {
+   return _mm512_cmp_epi32_mask (vx, vx, 4);
+ }
+ 
+ __mmask16 dumpy_nlt (__m512i vx)
+ {
+   return _mm512_cmp_epi32_mask (vx, vx, 5);
+ }
+ 
+ __mmask16 dumpy_nle (__m512i vx){
+   return _mm512_cmp_epi32_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask2.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask2.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask8 dumpy_eq (__m128i vx){
+   return _mm_cmp_epi64_mask (vx, vx, 0);
+ }
+ 
+ __mmask8 dumpy_lt (__m128i vx)
+ {
+   return _mm_cmp_epi64_mask (vx, vx, 1);
+ }
+ 
+ __mmask8 dumpy_le (__m128i vx){
+   return _mm_cmp_epi64_mask (vx, vx, 2);
+ }
+ 
+ __mmask8 dumpy_ne (__m128i vx)
+ {
+   return _mm_cmp_epi64_mask (vx, vx, 4);
+ }
+ 
+ __mmask8 dumpy_nlt (__m128i vx)
+ {
+   return _mm_cmp_epi64_mask (vx, vx, 5);
+ }
+ 
+ __mmask8 dumpy_nle (__m128i vx){
+   return _mm_cmp_epi64_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask32.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask32.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask32.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask32.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask32 dumpy_eq (__m512i vx){
+   return _mm512_cmp_epi16_mask (vx, vx, 0);
+ }
+ 
+ __mmask32 dumpy_lt (__m512i vx)
+ {
+   return _mm512_cmp_epi16_mask (vx, vx, 1);
+ }
+ 
+ __mmask32 dumpy_le (__m512i vx){
+   return _mm512_cmp_epi16_mask (vx, vx, 2);
+ }
+ 
+ __mmask32 dumpy_ne (__m512i vx)
+ {
+   return _mm512_cmp_epi16_mask (vx, vx, 4);
+ }
+ 
+ __mmask32 dumpy_nlt (__m512i vx)
+ {
+   return _mm512_cmp_epi16_mask (vx, vx, 5);  
+ }
+ 
+ __mmask32 dumpy_nle (__m512i vx){
+   return _mm512_cmp_epi16_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask4.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask4.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask4.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask8 dumpy_eq (__m256i vx){
+   return _mm256_cmp_epi64_mask (vx, vx, 0);
+ }
+ 
+ __mmask8 dumpy_lt (__m256i vx)
+ {
+   return _mm256_cmp_epi64_mask (vx, vx, 1);
+ }
+ 
+ __mmask8 dumpy_le (__m256i vx){
+   return _mm256_cmp_epi64_mask (vx, vx, 2);
+ }
+ 
+ __mmask8 dumpy_ne (__m256i vx)
+ {
+   return _mm256_cmp_epi64_mask (vx, vx, 4);
+ }
+ 
+ __mmask8 dumpy_nlt (__m256i vx)
+ {
+   return _mm256_cmp_epi64_mask (vx, vx, 5);  
+ }
+ 
+ __mmask8 dumpy_nle (__m256i vx){
+   return _mm256_cmp_epi64_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask64.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask64.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask64.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask64 dumpy_eq (__m512i vx){
+   return _mm512_cmp_epi8_mask (vx, vx, 0);
+ }
+ 
+ __mmask64 dumpy_lt (__m512i vx)
+ {
+   return _mm512_cmp_epi8_mask (vx, vx, 1);
+ }
+ 
+ __mmask64 dumpy_le (__m512i vx){
+   return _mm512_cmp_epi8_mask (vx, vx, 2);
+ }
+ 
+ __mmask64 dumpy_ne (__m512i vx)
+ {
+   return _mm512_cmp_epi8_mask (vx, vx, 4);
+ }
+ 
+ __mmask64 dumpy_nlt (__m512i vx)
+ {
+   return _mm512_cmp_epi8_mask (vx, vx, 5);
+ }
+ 
+ __mmask64 dumpy_nle (__m512i vx){
+   return _mm512_cmp_epi8_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask8.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask8.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/pr122320-mask8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/pr122320-mask8.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64-v4 -O2" } */
+ /* { dg-final { scan-assembler-not "vpcmp" } } */
+ 
+ #include <immintrin.h>
+ 
+ __mmask8 dumpy_eq (__m512i vx){
+   return _mm512_cmp_epi64_mask (vx, vx, 0);
+ }
+ 
+ __mmask8 dumpy_lt (__m512i vx)
+ {
+   return _mm512_cmp_epi64_mask (vx, vx, 1);
+ }
+ 
+ __mmask8 dumpy_le (__m512i vx){
+   return _mm512_cmp_epi64_mask (vx, vx, 2);
+ }
+ 
+ __mmask8 dumpy_ne (__m512i vx)
+ {
+   return _mm512_cmp_epi64_mask (vx, vx, 4);
+ }
+ 
+ __mmask8 dumpy_nlt (__m512i vx)
+ {
+   return _mm512_cmp_epi64_mask (vx, vx, 5);
+ }
+ 
+ __mmask8 dumpy_nle (__m512i vx){
+   return _mm512_cmp_epi64_mask (vx, vx, 6);
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */
+ 
+ __int128 m0,m1,m2,m3;
+ void foo(__int128 m)
+ {
+     m0 = m;
+     m1 = m;
+     m2 = m;
+     m3 = m;
+ }
+ 
+ /* { dg-final { scan-assembler-times "movaps" 4 } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */
+ 
+ __int128 m0,m1,m2,m3;
+ void foo(unsigned long x)
+ {
+     __int128 m = x;
+     m0 = m;
+     m1 = m;
+     m2 = m;
+     m3 = m;
+ }
+ 
+ /* { dg-final { scan-assembler-times "movaps" 4 } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */
+ 
+ __int128 m0,m1,m2,m3;
+ void foo(unsigned int x)
+ {
+     __int128 m = x;
+     m0 = m;
+     m1 = m;
+     m2 = m;
+     m3 = m;
+ }
+ 
+ /* { dg-final { scan-assembler-times "movaps" 4 } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c gcc-16-20251026/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c	Sun Oct 26 22:32:42 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -funsafe-math-optimizations -mlasx -fno-unroll-loops -fdump-tree-optimized" } */
+ /* { dg-final { scan-tree-dump-times "\.REDUC_PLUS" 4 "optimized" } } */
+ 
+ #define DEFINE_SUM_FUNCTION(T, FUNC_NAME, SIZE) \
+ T FUNC_NAME(const T arr[]) { \
+     arr = __builtin_assume_aligned(arr, 64); \
+     T sum = 0; \
+     for (int i = 0; i < SIZE; i++) \
+         sum += arr[i]; \
+     return sum; \
+ }
+ 
+ DEFINE_SUM_FUNCTION (int, sum_int_1040, 1028)
+ DEFINE_SUM_FUNCTION (float, sum_float_1040, 1028)
+ DEFINE_SUM_FUNCTION (long, sum_long_1040, 1026)
+ DEFINE_SUM_FUNCTION (double, sum_double_1040, 1026)
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c	Sun Oct 26 22:32:43 2025
***************
*** 6,10 ****
  /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*2,\s*e32,\s*m1,\s*t[au],\s*m[au]} 1 } } */
  /* { dg-final { scan-assembler-times {vmv\.x\.s} 2 } } */
  /* { dg-final { scan-assembler-times {vslidedown.vi\s+v[0-9]+,\s*v[0-9]+,\s*1} 1 } } */
! /* { dg-final { scan-assembler-times {slli\s+[a-x0-9]+,[a-x0-9]+,32} 1 } } */
  /* { dg-final { scan-assembler-times {or\s+[a-x0-9]+,[a-x0-9]+,[a-x0-9]+} 1 } } */
--- 6,11 ----
  /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*2,\s*e32,\s*m1,\s*t[au],\s*m[au]} 1 } } */
  /* { dg-final { scan-assembler-times {vmv\.x\.s} 2 } } */
  /* { dg-final { scan-assembler-times {vslidedown.vi\s+v[0-9]+,\s*v[0-9]+,\s*1} 1 } } */
! /* { dg-final { scan-assembler-times {slli\s+[a-x0-9]+,[a-x0-9]+,32} 2 } } */
! /* { dg-final { scan-assembler-times {srli\s+[a-x0-9]+,[a-x0-9]+,32} 1 } } */
  /* { dg-final { scan-assembler-times {or\s+[a-x0-9]+,[a-x0-9]+,[a-x0-9]+} 1 } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c	Sun Oct 26 22:32:43 2025
*************** add_loop (int *x, int n, int res)
*** 12,15 ****
    return res;
  }
  
! /* { dg-final { scan-assembler-times {add\s+[a-x0-9]+,\s*[a-x0-9]+,a2} 1 } } */
--- 12,15 ----
    return res;
  }
  
! /* { dg-final { scan-assembler-times {add\s+[a-x0-9]+,\s*(?:a2,\s*[a-x0-9]+|[a-x0-9]+,\s*a2)} 1 } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c	Sun Oct 26 22:32:43 2025
*************** void f (void * restrict in, void * restr
*** 25,30 ****
      }
  }
  
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*5,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
! /* { dg-final { scan-assembler-times {\.L[0-9]+\:\s+vsetivli\s+zero,\s*5,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+\.L[0-9]+} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
  
--- 25,30 ----
      }
  }
  
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*5,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" no-opts "-O1" } } } } */
! /* { dg-final { scan-assembler-times {\.L[0-9]+\:\s+vsetivli\s+zero,\s*5,\s*e16,\s*mf4,\s*t[au],\s*m[au]\s+\.L[0-9]+} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" no-opts "-O1" } } } } */
  
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c	Sun Oct 26 22:32:43 2025
*************** void f (void * restrict in, void * restr
*** 24,29 ****
      }
  }
  
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*5,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
! /* { dg-final { scan-assembler-times {\.L[0-9]+\:\s+vsetivli\s+zero,\s*5,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*8,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
--- 24,29 ----
      }
  }
  
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*5,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" no-opts "-O1" } } } } */
! /* { dg-final { scan-assembler-times {\.L[0-9]+\:\s+vsetivli\s+zero,\s*5,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" no-opts "-O1" } } } } */
! /* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*8,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" no-opts "-O1" } } } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c	Sun Oct 26 22:32:44 2025
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-fshrink-wrap" } */
! /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Oz" } } */
  
  void g(void);
  
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-fshrink-wrap" } */
! /* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Oz" "-O1" "-Og" } } */
  
  void g(void);
  
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c gcc-16-20251026/gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c
*** gcc-16-20251019/gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c	Sun Oct 19 22:32:34 2025
--- gcc-16-20251026/gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c	Sun Oct 26 22:32:44 2025
*************** long foo (long cond)
*** 10,13 ****
    return cond;
  }
  
! /* { dg-final { scan-assembler {\mnds.beqc} } } */
--- 10,13 ----
    return cond;
  }
  
! /* { dg-final { scan-assembler {\mnds.b..c} } } */
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90	Sun Oct 19 22:32:36 2025
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90	Sun Oct 26 22:32:47 2025
*************** contains
*** 195,201 ****
      !$omp declare variant (f1) match(implementation={atomic_default_mem_order("relaxed")})	! { dg-error "expected identifier at .1." }
    end subroutine
    subroutine f77 ()
!     !$omp declare variant (f1) match(user={condition(score(f76):.true.)})  ! { dg-error ".score. argument must be constant integer expression at .1." }
    end subroutine
    subroutine f78 ()
      !$omp declare variant (f1) match(user={condition(score(-130):.true.)}) ! { dg-error ".score. argument must be non-negative" }
--- 195,201 ----
      !$omp declare variant (f1) match(implementation={atomic_default_mem_order("relaxed")})	! { dg-error "expected identifier at .1." }
    end subroutine
    subroutine f77 ()
!     !$omp declare variant (f1) match(user={condition(score(f76):.true.)})  ! { dg-error "Unexpected use of subroutine name 'f76'" }
    end subroutine
    subroutine f78 ()
      !$omp declare variant (f1) match(user={condition(score(-130):.true.)}) ! { dg-error ".score. argument must be non-negative" }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90	Sun Oct 19 22:32:36 2025
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90	Sun Oct 26 22:32:47 2025
*************** contains
*** 44,49 ****
--- 44,50 ----
      !$omp  declare variant(variant5) match(target_device={device_num(-4)})  ! OK - omp_invalid_device (will never match)
      ! OK - but not handled -> PR middle-end/113904
      !$omp  declare variant(variant5) match(target_device={device_num(my_device)}) ! { dg-error "property must be a constant integer expression" }
+     ! { dg-error "Symbol 'my_device' at .1. has no IMPLICIT type" "" { target *-*-* } .-1 }
      !$omp  declare variant(variant5) match(target_device={device_num(-2)})  ! { dg-error "property must be a conforming device number" }
  
      res = 99
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ 
+ ! This test case checks that the inner metadirective is accepted as intervening
+ ! code since it resolves to 'omp nothing'.
+ 
+ SUBROUTINE test1(x_min, x_max, y_min, y_max, xarea, vol_flux_x)
+ 
+   IMPLICIT NONE
+ 
+   INTEGER, INTENT(IN) :: x_min, x_max, y_min, y_max
+ 
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: xarea
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: vol_flux_x
+ 
+   INTEGER :: j,k
+ 
+   !$omp metadirective                                                          &
+   !$omp  when(user={condition(.false.)}:                              &
+   !$omp      target teams distribute parallel do simd collapse(2))             &
+   !$omp  when(user={condition(.false.)}:                          &
+   !$omp      target teams distribute parallel do)                              &
+   !$omp  default(                                                              &
+   !$omp      target teams loop collapse(2))
+   DO k=y_min,y_max
+     !$omp metadirective when(user={condition(.false.)}: simd)
+     DO j=x_min,x_max
+       vol_flux_x(j,k)=0.25_8*xarea(j,k)
+     ENDDO
+   ENDDO
+ 
+ END SUBROUTINE test1
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,90 ----
+ ! { dg-do compile }
+ 
+ ! This test case checks that a non-executable OpenMP directive is accepted 
+ ! as intervening code.
+ 
+ SUBROUTINE test1(x_min, x_max, y_min, y_max, xarea, vol_flux_x)
+ 
+   IMPLICIT NONE
+ 
+   INTEGER, INTENT(IN) :: x_min, x_max, y_min, y_max
+ 
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: xarea
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: vol_flux_x
+ 
+   INTEGER :: j,k
+ 
+   !$omp do collapse(2)
+   DO k=y_min,y_max
+   !$omp nothing
+     DO j=x_min,x_max
+       vol_flux_x(j,k)=0.25_8*xarea(j,k)
+     ENDDO
+   ENDDO
+ 
+ END SUBROUTINE test1
+ 
+ SUBROUTINE test2(x_min, x_max, y_min, y_max, x, z, vol_flux_x)
+ 
+   IMPLICIT NONE
+ 
+   INTEGER, INTENT(IN) :: x_min, x_max, y_min, y_max
+ 
+   REAL(KIND=8) :: x, z
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: vol_flux_x
+ 
+   INTEGER :: j,k
+ 
+   !$omp do collapse(2)
+   DO k=y_min,y_max
+   !$omp assume holds(x>1)
+     z = abs(x-1)
+   !$omp end assume
+     DO j=x_min,x_max
+       vol_flux_x(j,k)=0.25_8*z
+     ENDDO
+   ENDDO
+ 
+ END SUBROUTINE test2
+ 
+ SUBROUTINE test3(x_min, x_max, y_min, y_max, z, vol_flux_x)
+ 
+   IMPLICIT NONE
+ 
+   INTEGER, INTENT(IN) :: x_min, x_max, y_min, y_max
+ 
+   REAL(KIND=8) :: z
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: vol_flux_x
+ 
+   INTEGER :: j,k
+ 
+   !$omp do collapse(2)
+   DO k=y_min,y_max
+   !$omp error at(compilation)   ! { dg-error "OMP ERROR encountered at" }
+     DO j=x_min,x_max
+       vol_flux_x(j,k)=0.25_8*z
+     ENDDO
+   ENDDO
+ 
+ END SUBROUTINE test3
+ 
+ SUBROUTINE test4(x_min, x_max, y_min, y_max, z, vol_flux_x)
+ 
+   IMPLICIT NONE
+ 
+   INTEGER, INTENT(IN) :: x_min, x_max, y_min, y_max
+ 
+   REAL(KIND=8) :: z
+   REAL(KIND=8), DIMENSION(x_min:x_max,y_min:y_max) :: vol_flux_x
+ 
+   INTEGER :: j,k
+ 
+   !$omp do collapse(2)
+   DO k=y_min,y_max
+   !$omp error at(execution)   ! { dg-error "OMP DO cannot contain OpenMP directive in intervening code" }
+     DO j=x_min,x_max
+       vol_flux_x(j,k)=0.25_8*z
+     ENDDO
+   ENDDO
+ 
+ END SUBROUTINE test4
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do compile }
+ 
+ ! Check that the front end acccepts a CONTINUE statement
+ ! inside an ordered loop.
+ 
+ implicit none
+ integer :: i, j
+ integer :: A(5,5), B(5,5) = 1
+ 
+ !$omp do ordered(2)
+    do 10 i = 1, 5
+      do 20 j = 1, 5
+        A(i,j) = B(i,j)
+ 20   continue
+ 10 continue
+ 
+ if (any(A /= 1)) stop 1
+ end
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fdump-tree-original" }
+ 
+ ! Check that the OMP_STRUCTURED_BLOCK that wraps intervening code is accepted by
+ ! the OMP lowering pass.
+ 
+ implicit none
+ integer :: i, j, x
+ integer :: A(5,5), B(5,5) = 1
+ 
+ !$omp simd collapse(2)
+    do i = 1, 5
+      do j = 1, 5
+        A(i,j) = B(i,j)
+     end do
+     x = 1 ! intervening code
+   end do
+ 
+ if (any(A /= 1)) stop 1
+ end
+ 
+ ! { dg-final { scan-tree-dump "#pragma omp __structured_block" "original" } }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fdump-tree-original" }
+ 
+ ! Check that the OMP_STRUCTURED_BLOCK that wraps intervening code is accepted by
+ ! the OMP lowering pass.
+ 
+ 
+ implicit none
+ integer :: i, j
+ integer :: A(5,5), B(5,5) = 1
+ 
+ !$omp simd collapse(2)
+    do 10 i = 1, 5
+      do 20 j = 1, 5
+        A(i,j) = B(i,j)
+ 20   continue
+ 10 continue
+ 
+ if (any(A /= 1)) stop 1
+ end
+ 
+ ! { dg-final { scan-tree-dump "#pragma omp __structured_block" "original" } }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ 
+ ! This test case checks that a function call in a context selector is accepted.
+ 
+ module m
+   implicit none (type, external)
+ contains
+   integer function f(n)
+     integer :: i, n
+     f = 0
+     !$omp metadirective &
+     !$omp&  when(user={condition(use_target())}: target parallel do map(f) reduction(+:f)) &
+     !$omp&  otherwise(parallel do reduction(+:f))
+     do i = 1, n
+       f = f + 1
+     end do
+   end
+   logical function use_target()
+     use_target = .false.
+   end
+ end
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do compile }
+ 
+ ! This test case checks that various user-condition context selectors correctly
+ ! parsed and resolved.
+ 
+ SUBROUTINE test1(x_min, x_max, vol_flux_x)
+   IMPLICIT NONE
+   INTEGER, INTENT(IN) :: x_min, x_max
+   REAL(KIND=8), DIMENSION(x_min:x_max) :: vol_flux_x
+   integer, parameter :: one = 1
+   INTEGER :: j
+ 
+    !$omp begin metadirective when(user={condition(one < 0)}: parallel)
+     DO j=x_min,x_max
+       vol_flux_x(j)=0.25_8
+     ENDDO
+    !$omp end metadirective
+ END SUBROUTINE test1
+ 
+ SUBROUTINE test2(x_min, x_max, vol_flux_x, flag)
+   IMPLICIT NONE
+   INTEGER, INTENT(IN) :: x_min, x_max
+   REAL(KIND=8), DIMENSION(x_min:x_max) :: vol_flux_x
+   LOGICAL :: flag
+   INTEGER :: j
+ 
+    !$omp begin metadirective when(user={condition(flag)}: parallel)
+     DO j=x_min,x_max
+       vol_flux_x(j)=0.25_8
+     ENDDO
+    !$omp end metadirective
+ END SUBROUTINE test2
+ 
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/is_contiguous_5.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/is_contiguous_5.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/is_contiguous_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/is_contiguous_5.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,126 ----
+ ! { dg-do run }
+ ! PR fortran/114023 - IS_CONTIGUOUS and pointers to non-contiguous targets
+ !
+ ! Based on testcase by Federico Perini
+ 
+ program main
+   implicit none
+   complex, parameter :: cvals(*) = [(1,-1),(2,-2),(3,-3)]
+   complex             , target :: cref(size(cvals)) = cvals  ! Reference
+   complex, allocatable, target :: carr(:)                    ! Test
+ 
+   type cx
+      real :: re, im
+   end type cx
+   type(cx), parameter :: tvals(*)  = [cx(1,-1),cx(2,-2),cx(3,-3)]
+   real, parameter     :: expect(*) = tvals% re
+   type(cx)             , target :: tref(size(cvals)) = tvals ! Reference
+   type(cx), allocatable, target :: tarr(:)
+ 
+   real,     pointer  :: rr1(:), rr2(:), rr3(:), rr4(:)
+   class(*), pointer  :: cp1(:), cp2(:), cp3(:), cp4(:)
+ 
+   carr = cvals
+   tarr = tvals
+ 
+   if (any (expect /= [1,2,3])) error stop 90
+ 
+   ! REAL pointer to non-contiguous effective target
+   rr1(1:3) => cref%re
+   rr2      => cref%re
+   rr3(1:3) => carr%re
+   rr4      => carr%re
+ 
+   if (is_contiguous      (rr1))          stop 1
+   if (my_contiguous_real (rr1))          stop 2
+   if (is_contiguous      (cref(1:3)%re)) stop 3
+ ! if (my_contiguous_real (cref(1:3)%re)) stop 4     ! pr122397
+ 
+   if (is_contiguous      (rr3))          stop 6
+   if (my_contiguous_real (rr3))          stop 7
+   if (is_contiguous      (carr(1:3)%re)) stop 8
+ ! if (my_contiguous_real (carr(1:3)%re)) stop 9
+ 
+   if (is_contiguous      (rr2))     stop 11
+   if (my_contiguous_real (rr2))     stop 12
+   if (is_contiguous      (cref%re)) stop 13
+ ! if (my_contiguous_real (cref%re)) stop 14
+ 
+   if (is_contiguous      (rr4))     stop 16
+   if (my_contiguous_real (rr4))     stop 17
+   if (is_contiguous      (carr%re)) stop 18
+ ! if (my_contiguous_real (carr%re)) stop 19
+ 
+   rr1(1:3) => tref%re
+   rr2      => tref%re
+   rr3(1:3) => tarr%re
+   rr4      => tarr%re
+ 
+   if (is_contiguous      (rr1))          stop 21
+   if (my_contiguous_real (rr1))          stop 22
+   if (is_contiguous      (tref(1:3)%re)) stop 23
+ ! if (my_contiguous_real (tref(1:3)%re)) stop 24
+ 
+   if (is_contiguous      (rr3))          stop 26
+   if (my_contiguous_real (rr3))          stop 27
+   if (is_contiguous      (tarr(1:3)%re)) stop 28
+ ! if (my_contiguous_real (tarr(1:3)%re)) stop 29
+ 
+   if (is_contiguous      (rr2))     stop 31
+   if (my_contiguous_real (rr2))     stop 32
+   if (is_contiguous      (tref%re)) stop 33
+ ! if (my_contiguous_real (tref%re)) stop 34
+ 
+   if (is_contiguous      (rr4))     stop 36
+   if (my_contiguous_real (rr4))     stop 37
+   if (is_contiguous      (tarr%re)) stop 38
+ ! if (my_contiguous_real (tarr%re)) stop 39
+ 
+   ! Unlimited polymorphic pointer to non-contiguous effective target
+   cp1(1:3) => cref%re
+   cp2      => cref%re
+   cp3(1:3) => carr%re
+   cp4      => carr%re
+ 
+   if (is_contiguous      (cp1)) stop 41
+   if (my_contiguous_poly (cp1)) stop 42
+   if (is_contiguous      (cp2)) stop 43
+   if (my_contiguous_poly (cp2)) stop 44
+   if (is_contiguous      (cp3)) stop 45
+   if (my_contiguous_poly (cp3)) stop 46
+   if (is_contiguous      (cp4)) stop 47
+   if (my_contiguous_poly (cp4)) stop 48
+ 
+   cp1(1:3) => tref%re
+   cp2      => tref%re
+   cp3(1:3) => tarr%re
+   cp4      => tarr%re
+ 
+   if (is_contiguous      (cp1)) stop 51
+   if (my_contiguous_poly (cp1)) stop 52
+   if (is_contiguous      (cp2)) stop 53
+   if (my_contiguous_poly (cp2)) stop 54
+   if (is_contiguous      (cp3)) stop 55
+   if (my_contiguous_poly (cp3)) stop 56
+   if (is_contiguous      (cp4)) stop 57
+   if (my_contiguous_poly (cp4)) stop 58
+ 
+   deallocate (carr, tarr)
+ contains
+   pure logical function my_contiguous_real (x) result (res)
+     real, pointer, intent(in) :: x(:)
+     res = is_contiguous (x)
+     if (any (x /= expect)) error stop 97
+   end function my_contiguous_real
+ 
+   pure logical function my_contiguous_poly (x) result (res)
+     class(*), pointer, intent(in) :: x(:)
+     res = is_contiguous (x)
+     select type (x)
+     type is (real)
+        if (any (x /= expect)) error stop 98
+     class default
+        error stop 99
+     end select
+   end function my_contiguous_poly
+ end
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/pdt_60.f03 gcc-16-20251026/gcc/testsuite/gfortran.dg/pdt_60.f03
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/pdt_60.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/pdt_60.f03	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,65 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR122290.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module hyperparameters_m
+   implicit none
+ 
+   type hyperparameters_t(k)
+     integer, kind :: k = kind(1.)
+     real(k) :: learning_rate_ = real(1.5,k)                       ! Gave "Invalid kind for REAL"
+   contains
+     generic :: operator(==) => default_real_equals, real8_equals  ! Gave "Entity ‘default_real_equals’ at (1)
+                                                                   ! is already present in the interface"
+     generic :: g => default_real_equals, real8_equals             ! Make sure that ordinary generic is OK
+     procedure default_real_equals
+     procedure real8_equals
+   end type
+ 
+   interface
+     logical module function default_real_equals(lhs, rhs)
+       implicit none
+       class(hyperparameters_t), intent(in) :: lhs, rhs
+     end function
+     logical module function real8_equals(lhs, rhs)
+       implicit none
+       class(hyperparameters_t(kind(1d0))), intent(in) :: lhs, rhs
+     end function
+   end interface
+ end module
+ 
+ ! Added to test generic procedures are the correct ones.
+ submodule(hyperparameters_m) hyperparameters_s
+ contains
+     logical module function default_real_equals(lhs, rhs)
+       implicit none
+       class(hyperparameters_t), intent(in) :: lhs, rhs
+       default_real_equals = (lhs%learning_rate_ == rhs%learning_rate_)
+     end function
+     logical module function real8_equals(lhs, rhs)
+       implicit none
+       class(hyperparameters_t(kind(1d0))), intent(in) :: lhs, rhs
+       real8_equals = (lhs%learning_rate_ == rhs%learning_rate_)
+     end function
+ end submodule
+ 
+   use hyperparameters_m
+   type (hyperparameters_t) :: a, b
+   type (hyperparameters_t(kind(1d0))) :: c, d
+   if (.not.(a == b)) stop 1
+   if (.not.a%g(b)) stop 2
+   a%learning_rate_ = real(2.5,a%k)
+   if (a == b) stop 3
+   if (a%g(b)) stop 4
+ 
+   if (.not.(c == d)) stop 5
+   if (.not.c%g(d)) stop 6
+   c%learning_rate_ = real(2.5,c%k)
+   if (c == d) stop 7
+   if (c%g(d)) stop 8
+ end
+ ! { dg-final { scan-tree-dump-times "default_real_equals" 8 "original" } }
+ ! { dg-final { scan-tree-dump-times "real8_equals" 8 "original" } }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90 gcc-16-20251026/gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90
*** gcc-16-20251019/gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,52 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O2 -fdump-tree-optimized" }
+ !
+ ! PR fortran/122386 - passing of component ref of nested DT array to TRANSFER
+ 
+ program main
+   implicit none
+   integer, parameter :: dp = 4
+ 
+   type cx
+      real(dp) :: re, im
+   end type cx
+ 
+   type complex_wrap1
+      type(cx) :: z(2)
+   end type complex_wrap1
+ 
+   type complex_wrap2
+      type(cx), dimension(:), allocatable :: z
+   end type complex_wrap2
+ 
+   type(complex_wrap1) :: x = complex_wrap1([cx(1,2), cx(3,4)])
+   type(complex_wrap2) :: w
+ 
+   w%z = x%z
+ 
+   ! The following statements should get optimized away...
+   if (size (transfer ( x%z%re ,[1.0_dp])) /= 2) error stop 1
+   if (size (transfer ((x%z%re),[1.0_dp])) /= 2) error stop 2
+   if (size (transfer ([x%z%re],[1.0_dp])) /= 2) error stop 3
+   if (size (transfer ( x%z%im ,[1.0_dp])) /= 2) error stop 4
+   if (size (transfer ((x%z%im),[1.0_dp])) /= 2) error stop 5
+   if (size (transfer ([x%z%im],[1.0_dp])) /= 2) error stop 6
+ 
+   ! ... while the following may not:
+   if (any  (transfer ( x%z%re ,[1.0_dp])  /= x%z%re)) stop 7
+   if (any  (transfer ( x%z%im ,[1.0_dp])  /= x%z%im)) stop 8
+ 
+   if (size (transfer ( w%z%re ,[1.0_dp])) /= 2) stop 11
+   if (size (transfer ((w%z%re),[1.0_dp])) /= 2) stop 12
+   if (size (transfer ([w%z%re],[1.0_dp])) /= 2) stop 13
+   if (size (transfer ( w%z%im ,[1.0_dp])) /= 2) stop 14
+   if (size (transfer ((w%z%im),[1.0_dp])) /= 2) stop 15
+   if (size (transfer ([w%z%im],[1.0_dp])) /= 2) stop 16
+ 
+   if (any  (transfer ( w%z%re ,[1.0_dp])  /= x%z%re)) stop 17
+   if (any  (transfer ( w%z%im ,[1.0_dp])  /= x%z%im)) stop 18
+ 
+   deallocate (w%z)
+ end program main
+ 
+ ! { dg-final { scan-tree-dump-not "_gfortran_error_stop_numeric" "optimized" } }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,14 ----
+ 
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellabs ;
+ 
+ VAR
+    foo: INTEGER ;
+ BEGIN
+    IF ABS (Foo) = 1
+    (* { dg-error "the parameter to ABS must be a variable or constant, seen 'Foo', did you mean foo?" "Foo" { target *-*-* } 10 } *)
+    THEN
+    END
+ END badspellabs.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,16 ----
+ 
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspelladr ;
+ 
+ FROM SYSTEM IMPORT ADR ;
+ 
+ VAR
+    foo: INTEGER ;
+ BEGIN
+    IF ADR (Foo) = NIL
+    (* { dg-error "SYSTEM procedure ADR expects a variable, procedure or a constant string as its parameter, seen unknown, did you mean foo?" "Foo" { target *-*-* } 12 } *)
+    THEN
+    END
+ END badspelladr.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,13 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellcap ;
+ 
+ VAR
+    foo: CHAR ;
+ BEGIN
+    IF CAP (Foo) = 'A'
+    (* { dg-error "the parameter to CAP must be a variable or constant, seen 'Foo', did you mean foo?" "Foo" { target *-*-* } 9 } *)
+    THEN
+    END
+ END badspellcap.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,13 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellchr ;
+ 
+ VAR
+    foo: CARDINAL ;
+ BEGIN
+    IF CHR (Foo) = 'A'
+    (* { dg-error "the parameter to CHR must be a variable or constant, seen 'Foo', did you mean foo?" "Foo" { target *-*-* } 9 } *)
+    THEN
+    END
+ END badspellchr.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,13 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellchr2 ;
+ 
+ VAR
+    foo: CARDINAL ;
+ BEGIN
+    IF CHR (Foo+1) = 'A'
+    (* { dg-error "unknown symbol 'Foo', did you mean foo?" "Foo" { target *-*-* } 9 } *)
+    THEN
+    END
+ END badspellchr2.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,11 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspelldec ;
+ 
+ VAR
+    foo: CARDINAL ;
+ BEGIN
+    DEC (Foo)
+    (* { dg-error "base procedure DEC expects a variable as a parameter but was given unknown, did you mean foo?" "Foo" { target *-*-* } 9 } *)
+ END badspelldec.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,11 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellexcl ;
+ 
+ VAR
+    foo: BITSET ;
+ BEGIN
+    EXCL (Foo, 1)
+    (* { dg-error "base procedure EXCL expects a variable as a parameter, seen unknown, did you mean foo?" "Foo" { target *-*-* } 9 } *)
+ END badspellexcl.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,12 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellinc ;
+ 
+ VAR
+    foo: CARDINAL ;
+ BEGIN
+    INC (Foo)
+    (* { dg-error "base procedure INC expects a variable as a parameter but was given unknown, did you mean foo?" "Foo" { target *-*-* } 9 } *)
+ 
+ END badspellinc.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,11 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellincl ;
+ 
+ VAR
+    foo: BITSET ;
+ BEGIN
+    INCL (Foo, 1)
+    (* { dg-error "base procedure INCL expects a variable as a parameter, seen unknown, did you mean foo?" "Foo" { target *-*-* } 9 } *)
+ END badspellincl.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,13 ----
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellnew ;
+ 
+ FROM Storage IMPORT ALLOCATE ;
+ 
+ VAR
+    foo: POINTER TO CARDINAL ;
+ BEGIN
+    NEW (Foo)
+    (* { dg-error "parameter to NEW must be a pointer, seen unknown, did you mean foo?" "Foo" { target *-*-* } 11 } *)
+ END badspellnew.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,14 ----
+ 
+ (* { dg-do compile } *)
+ (* { dg-options "-g" } *)
+ 
+ MODULE badspellsize ;
+ 
+ VAR
+    foo: INTEGER ;
+ BEGIN
+    IF SIZE (Foo) = NIL
+    (* { dg-error "SYSTEM procedure SIZE expects a variable or type as its parameter, seen unknown, did you mean foo?" "Foo" { target *-*-* } 10 } *)
+    THEN
+    END
+ END badspellsize.
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp
*** gcc-16-20251019/gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp	Sun Oct 26 22:32:47 2025
***************
*** 0 ****
--- 1,34 ----
+ # Copyright (C) 2025 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # Compile tests, no torture testing.
+ #
+ # These tests raise errors in the front end; torture testing doesn't apply.
+ 
+ # Load support procs.
+ load_lib gm2-dg.exp
+ 
+ gm2_init_iso $srcdir/$subdir
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ 
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] "" ""
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gnat.dg/component_value1.adb gcc-16-20251026/gcc/testsuite/gnat.dg/component_value1.adb
*** gcc-16-20251019/gcc/testsuite/gnat.dg/component_value1.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gnat.dg/component_value1.adb	Sun Oct 26 22:33:03 2025
***************
*** 0 ****
--- 1,32 ----
+ --  { dg-do run }
+ 
+ with Ada.Characters.Latin_1;
+ 
+ procedure Component_Value1 is
+ 
+   type Y_Array is array (Natural range <>) of Character
+     with Default_Component_Value => Ada.Characters.Latin_1.Space;
+ 
+   type Y2_Array is new Y_Array
+     with Default_Component_Value => Ada.Characters.Latin_1.HT;
+ 
+   type X_String is new String
+     with Default_Component_Value => Ada.Characters.Latin_1.Space;
+ 
+   Y  : Y_Array  (1..20);
+   Y2 : Y2_Array (1..20);
+   X  : X_String (1..20);
+ 
+ begin
+   if not (for all I in Y'Range => Y(I) = Ada.Characters.Latin_1.Space) then
+     raise Program_Error;
+   end if;
+ 
+   if not (for all I in Y2'Range => Y2(I) = Ada.Characters.Latin_1.HT) then
+     raise Program_Error;
+   end if;
+ 
+   if not (for all I in X'Range => X(I) = Ada.Characters.Latin_1.Space) then
+     raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gnat.dg/machine_attr3.adb gcc-16-20251026/gcc/testsuite/gnat.dg/machine_attr3.adb
*** gcc-16-20251019/gcc/testsuite/gnat.dg/machine_attr3.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gnat.dg/machine_attr3.adb	Sun Oct 26 22:33:03 2025
***************
*** 0 ****
--- 1,7 ----
+ -- { dg-do compile }
+ 
+ package body Machine_Attr3 is
+ 
+   procedure Proc is null;
+ 
+ end Machine_Attr3;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gnat.dg/machine_attr3.ads gcc-16-20251026/gcc/testsuite/gnat.dg/machine_attr3.ads
*** gcc-16-20251019/gcc/testsuite/gnat.dg/machine_attr3.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gnat.dg/machine_attr3.ads	Sun Oct 26 22:33:03 2025
***************
*** 0 ****
--- 1,10 ----
+ package Machine_Attr3 is
+ 
+   procedure Proc;
+ 
+ private
+ 
+   Attr : constant String := "nothrow";
+   pragma Machine_Attribute (Proc, Attr);
+ 
+ end Machine_Attr3;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gnat.dg/renaming18.adb gcc-16-20251026/gcc/testsuite/gnat.dg/renaming18.adb
*** gcc-16-20251019/gcc/testsuite/gnat.dg/renaming18.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gnat.dg/renaming18.adb	Sun Oct 26 22:33:03 2025
***************
*** 0 ****
--- 1,24 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnatwu" }
+ 
+ procedure Renaming18 is
+ 
+   type T is record
+     Item : Integer;
+   end record;
+ 
+   A_T : T;
+   Item : Integer renames A_T.Item;
+ 
+   type VFA_T is record
+     Item : Integer;
+   end record
+   with Volatile_Full_Access;
+ 
+   A_VFA_T : VFA_T;
+   VFA_Item : Integer renames A_VFA_T.Item; -- { dg-bogus "is not referenced" }
+ 
+ begin
+   Item := 42;
+   VFA_Item := 42;
+ end;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/gnat.dg/use_type3.adb gcc-16-20251026/gcc/testsuite/gnat.dg/use_type3.adb
*** gcc-16-20251019/gcc/testsuite/gnat.dg/use_type3.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/gnat.dg/use_type3.adb	Sun Oct 26 22:33:03 2025
***************
*** 0 ****
--- 1,27 ----
+ -- { dg-do compile }
+ 
+ procedure Use_Type3 is
+ 
+   package P1 is            
+     type T is new Integer;                      
+     function "and" (L, R : in Integer) return T;
+   end P1;
+ 
+   package body P1 is                               
+     function "and" (L, R : in Integer) return T is
+     begin       
+       return T (L * R);
+     end "and";
+   end P1;
+ 
+   use type P1.T;
+ 
+   package P2 is
+     use P1;
+   end P2;
+ 
+   G : P1.T := Integer'(1) and Integer'(2);
+ 
+ begin
+   null;
+ end;
diff -Nrcpad gcc-16-20251019/gcc/testsuite/jit.dg/all-non-failing-tests.h gcc-16-20251026/gcc/testsuite/jit.dg/all-non-failing-tests.h
*** gcc-16-20251019/gcc/testsuite/jit.dg/all-non-failing-tests.h	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/testsuite/jit.dg/all-non-failing-tests.h	Sun Oct 26 22:33:04 2025
***************
*** 73,78 ****
--- 73,85 ----
  #undef create_code
  #undef verify_code
  
+ /* test-arrays-u64.c */
+ #define create_code create_code_arrays_u64
+ #define verify_code verify_code_arrays_u64
+ #include "test-arrays-u64.c"
+ #undef create_code
+ #undef verify_code
+ 
  /* test-autovectorize.c */
  #define create_code create_code_autovectorize
  #define verify_code verify_code_autovectorize
***************
*** 397,402 ****
--- 404,416 ----
  #undef create_code
  #undef verify_code
  
+ /* test-sized-float.c */
+ #define create_code create_code_sized_float
+ #define verify_code verify_code_sized_float
+ #include "test-sized-float.c"
+ #undef create_code
+ #undef verify_code
+ 
  /* test-target-builtins.c: This can't be in the testcases array as it
     is target-specific.  */
  
*************** const struct testcase testcases[] = {
*** 517,522 ****
--- 531,539 ----
    {"arrays",
     create_code_arrays,
     verify_code_arrays},
+   {"arrays-u64",
+    create_code_arrays_u64,
+    verify_code_arrays_u64},
    {"autovectorize",
     create_code_autovectorize,
     verify_code_autovectorize},
*************** const struct testcase testcases[] = {
*** 628,633 ****
--- 645,653 ----
    {"sizeof",
     create_code_sizeof,
     verify_code_sizeof},
+   {"sized-float",
+    create_code_sized_float,
+    verify_code_sized_float},
    {"string_literal",
     create_code_string_literal,
     verify_code_string_literal},
diff -Nrcpad gcc-16-20251019/gcc/testsuite/jit.dg/test-arrays-u64.c gcc-16-20251026/gcc/testsuite/jit.dg/test-arrays-u64.c
*** gcc-16-20251019/gcc/testsuite/jit.dg/test-arrays-u64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/jit.dg/test-arrays-u64.c	Sun Oct 26 22:33:04 2025
***************
*** 0 ****
--- 1,165 ----
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <stddef.h>
+ 
+ #include "libgccjit.h"
+ 
+ #include "harness.h"
+ 
+ #define ARRAY_SIZE (4)
+ 
+ /* Verify that struct layout works properly when adding an array field.  */
+ struct array_holder2
+ {
+   float m_before;
+   int m_ints[ARRAY_SIZE];
+   float m_after;
+ };
+ 
+ void
+ create_code (gcc_jit_context *ctxt, void *user_data)
+ {
+   /* Let's try to inject the equivalent of:
+ 
+      void
+      test_array_u64 (struct array_holder2 *ah)
+      {
+ 	ah->m_before = 4.0f;
+ 	for i in 0 to (ARRAY_SIZE - 1):
+ 	  ah->m_ints[i] = (i * i);
+ 	ah->m_after = 2.0f;
+      }
+   */
+   gcc_jit_type *void_type =
+     gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_VOID);
+   gcc_jit_type *float_type =
+     gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT);
+   gcc_jit_type *int_type =
+     gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_INT);
+ 
+   gcc_jit_field *field_m_before =
+     gcc_jit_context_new_field (ctxt, NULL, float_type, "m_before");
+   gcc_jit_field *field_m_ints =
+     gcc_jit_context_new_field (
+     ctxt, NULL,
+     gcc_jit_context_new_array_type_u64 (ctxt, NULL, int_type, ARRAY_SIZE),
+     "m_ints");
+   gcc_jit_field *field_m_after =
+     gcc_jit_context_new_field (ctxt, NULL, float_type, "m_after");
+ 
+   gcc_jit_field *fields[] = {
+     field_m_before,
+     field_m_ints,
+     field_m_after,
+   };
+ 
+   gcc_jit_struct *struct_type =
+     gcc_jit_context_new_struct_type (
+       ctxt,
+       NULL,
+       "array_holder2",
+       3, fields);
+ 
+   gcc_jit_type *struct_ptr_type =
+     gcc_jit_type_get_pointer (gcc_jit_struct_as_type (struct_type));
+ 
+   /* Build the test_fn.  */
+   gcc_jit_param *param_ah =
+     gcc_jit_context_new_param (ctxt, NULL, struct_ptr_type, "ah");
+   gcc_jit_function *func =
+     gcc_jit_context_new_function (ctxt, NULL,
+ 				  GCC_JIT_FUNCTION_EXPORTED,
+ 				  void_type,
+ 				  "test_array_u64",
+ 				  1, &param_ah,
+ 				  0);
+ 
+   gcc_jit_block *initial = gcc_jit_function_new_block (func, "initial");
+   gcc_jit_block *loop_test = gcc_jit_function_new_block (func, "loop_test");
+   gcc_jit_block *loop_body = gcc_jit_function_new_block (func, "loop_body");
+   gcc_jit_block *final = gcc_jit_function_new_block (func, "final");
+ 
+   /* "ah->m_before = 4.0f;" */
+   gcc_jit_block_add_assignment (
+     initial, NULL,
+     gcc_jit_rvalue_dereference_field (
+       gcc_jit_param_as_rvalue (param_ah), NULL, field_m_before),
+     gcc_jit_context_new_rvalue_from_int (ctxt, float_type, 4));
+ 
+   gcc_jit_block_add_comment (initial, NULL,
+ 			     "for i in 0 to (ARRAY_SIZE - 1):");
+   gcc_jit_lvalue *i =
+     gcc_jit_function_new_local (func, NULL, int_type, "i");
+   gcc_jit_block_add_assignment (initial, NULL,
+       i,
+       gcc_jit_context_zero (ctxt, int_type));
+ 
+   gcc_jit_block_end_with_jump (initial, NULL, loop_test);
+ 
+   gcc_jit_block_end_with_conditional (loop_test, NULL,
+     gcc_jit_context_new_comparison (
+       ctxt, NULL,
+       GCC_JIT_COMPARISON_LT,
+       gcc_jit_lvalue_as_rvalue (i),
+       gcc_jit_context_new_rvalue_from_int (ctxt, int_type, ARRAY_SIZE)),
+     loop_body,
+     final);
+ 
+   gcc_jit_block_add_comment (loop_body, NULL, "ah->m_ints[i] = (i * i);");
+   gcc_jit_block_add_assignment (
+     loop_body, NULL,
+     gcc_jit_context_new_array_access (
+       ctxt, NULL,
+       gcc_jit_lvalue_as_rvalue (gcc_jit_rvalue_dereference_field (
+ 	gcc_jit_param_as_rvalue (param_ah),
+ 	NULL,
+ 	field_m_ints)),
+       gcc_jit_lvalue_as_rvalue (i)),
+     gcc_jit_context_new_binary_op (
+       ctxt, NULL,
+       GCC_JIT_BINARY_OP_MULT,
+       int_type,
+       gcc_jit_lvalue_as_rvalue (i),
+       gcc_jit_lvalue_as_rvalue (i)));
+ 
+   /* "i++" */
+   gcc_jit_block_add_assignment_op (
+     loop_body, NULL,
+     i,
+     GCC_JIT_BINARY_OP_PLUS,
+     gcc_jit_context_one (ctxt, int_type));
+ 
+   gcc_jit_block_end_with_jump (loop_body, NULL, loop_test);
+ 
+  /* ah->m_after = 2.0f; */
+   gcc_jit_block_add_assignment (
+     final, NULL,
+     gcc_jit_rvalue_dereference_field (
+       gcc_jit_param_as_rvalue (param_ah), NULL, field_m_after),
+     gcc_jit_context_new_rvalue_from_int (ctxt, float_type, 2));
+   gcc_jit_block_end_with_void_return (final, NULL);
+ 
+ }
+ 
+ void
+ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
+ {
+   typedef void (*fn_type) (struct array_holder2 *ah);
+ 
+   CHECK_NON_NULL (result);
+   fn_type test_array_u64 =
+     (fn_type)gcc_jit_result_get_code (result, "test_array_u64");
+   CHECK_NON_NULL (test_array_u64);
+ 
+   struct array_holder2 ah;
+   memset (&ah, 0xf0, sizeof (ah));
+ 
+   test_array_u64 (&ah);
+   CHECK_VALUE (ah.m_before, 4.0f);
+   CHECK_VALUE (ah.m_ints[0], 0);
+   CHECK_VALUE (ah.m_ints[1], 1);
+   CHECK_VALUE (ah.m_ints[2], 4);
+   CHECK_VALUE (ah.m_ints[3], 9);
+   CHECK_VALUE (ah.m_after, 2.0f);
+ 
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/jit.dg/test-error-array-bounds.c gcc-16-20251026/gcc/testsuite/jit.dg/test-error-array-bounds.c
*** gcc-16-20251019/gcc/testsuite/jit.dg/test-error-array-bounds.c	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/testsuite/jit.dg/test-error-array-bounds.c	Sun Oct 26 22:33:04 2025
*************** create_code (gcc_jit_context *ctxt, void
*** 64,74 ****
  void
  verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
  {
!   /* Verify that the diagnostic led to the context failing... */
!   CHECK_VALUE (result, NULL);
! 
!   /* ...and that the message was captured by the API.  */
!   CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
! 		      "array subscript 10 is above array bounds of"
! 		      " 'char[10]' [-Warray-bounds=]");
  }
--- 64,70 ----
  void
  verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
  {
!   /* Verify that the message was captured by the API.  */
!   CHECK_STRING_VALUE (gcc_jit_context_get_last_error (ctxt),
! 		      "while referencing 'buffer'");
  }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/jit.dg/test-sized-float.c gcc-16-20251026/gcc/testsuite/jit.dg/test-sized-float.c
*** gcc-16-20251019/gcc/testsuite/jit.dg/test-sized-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/gcc/testsuite/jit.dg/test-sized-float.c	Sun Oct 26 22:33:04 2025
***************
*** 0 ****
--- 1,167 ----
+ #include <stdio.h>
+ #include <stddef.h>
+ #include <stdbool.h>
+ 
+ #include "libgccjit.h"
+ 
+ #include "harness.h"
+ 
+ struct float_zoo
+ {
+   _Float16 m_float16;
+   _Float32 m_float32;
+   _Float64 m_float64;
+   __float128 m_float128;
+ };
+ 
+ void
+ create_code (gcc_jit_context *ctxt, void *user_data)
+ {
+   /* Let's try to inject the equivalent of:
+ 
+      void
+      test_caller (struct float_zoo *z)
+      {
+ 	for each fields "m_field":
+ 	  z->m_field = ...some data;
+      }
+   */
+   gcc_jit_type *void_type =
+     gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_VOID);
+ 
+ #define CREATE_FIELD(TYPE, NAME) \
+   gcc_jit_context_new_field ( \
+ 	ctxt, NULL, \
+ 	gcc_jit_context_get_type (ctxt, TYPE), \
+ 	NAME)
+ 
+   gcc_jit_context *info_ctxt = gcc_jit_context_acquire ();
+   gcc_jit_target_info *target_info = gcc_jit_context_get_target_info (info_ctxt);
+ 
+   enum gcc_jit_types float_type1 = GCC_JIT_TYPE_FLOAT;
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT16))
+     float_type1 = GCC_JIT_TYPE_FLOAT16;
+ 
+   enum gcc_jit_types float_type2 = GCC_JIT_TYPE_FLOAT;
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT32))
+     float_type2 = GCC_JIT_TYPE_FLOAT32;
+ 
+   enum gcc_jit_types float_type3 = GCC_JIT_TYPE_FLOAT;
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT64))
+     float_type3 = GCC_JIT_TYPE_FLOAT64;
+ 
+   enum gcc_jit_types float_type4 = GCC_JIT_TYPE_FLOAT;
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT128))
+     float_type4 = GCC_JIT_TYPE_FLOAT128;
+ 
+   gcc_jit_field *field_m_float16 = CREATE_FIELD(float_type1, "m_float16");
+   gcc_jit_field *field_m_float32 = CREATE_FIELD(float_type2, "m_float32");
+   gcc_jit_field *field_m_float64 = CREATE_FIELD(float_type3, "m_float64");
+   gcc_jit_field *field_m_float128 = CREATE_FIELD(float_type4, "m_float128");
+ 
+ #undef CREATE_FIELD
+ 
+   gcc_jit_field *zoo_fields[] = {
+     field_m_float16,
+     field_m_float32,
+     field_m_float64,
+     field_m_float128,
+   };
+ 
+   gcc_jit_type *zoo_type =
+     gcc_jit_struct_as_type (
+       gcc_jit_context_new_struct_type (
+         ctxt,
+ 	NULL,
+ 	"float_zoo",
+ 	sizeof (zoo_fields) / sizeof (zoo_fields[0]),
+ 	zoo_fields));
+ 
+   gcc_jit_type *zoo_ptr_type =
+     gcc_jit_type_get_pointer (zoo_type);
+ 
+   /* Build the test_fn.	 */
+   gcc_jit_param *param_z =
+     gcc_jit_context_new_param (ctxt, NULL, zoo_ptr_type, "z");
+   gcc_jit_function *test_fn =
+     gcc_jit_context_new_function (ctxt, NULL,
+ 				  GCC_JIT_FUNCTION_EXPORTED,
+ 				  void_type,
+ 				  "test_float_types",
+ 				  1, &param_z,
+ 				  0);
+   gcc_jit_block *block = gcc_jit_function_new_block (test_fn, NULL);
+ 
+   /* Write to the various fields of param "z".	*/
+ #define ASSIGN(FIELD, EXPR) \
+   gcc_jit_block_add_assignment (		\
+     block, NULL,				\
+     gcc_jit_rvalue_dereference_field (		\
+       gcc_jit_param_as_rvalue (param_z),	\
+       NULL,					\
+       (FIELD)),				\
+     (EXPR));
+ 
+   ASSIGN(field_m_float16,
+     gcc_jit_context_new_rvalue_from_double (
+       ctxt,
+       gcc_jit_context_get_type (ctxt, float_type1),
+       3.141))
+   ASSIGN(field_m_float32,
+     gcc_jit_context_new_rvalue_from_double (
+       ctxt,
+       gcc_jit_context_get_type (ctxt, float_type2),
+       3.141))
+   ASSIGN(field_m_float64,
+     gcc_jit_context_new_rvalue_from_double (
+       ctxt,
+       gcc_jit_context_get_type (ctxt, float_type3),
+       3.141))
+   ASSIGN(field_m_float128,
+     gcc_jit_context_new_rvalue_from_double (
+       ctxt,
+       gcc_jit_context_get_type (ctxt, float_type4),
+       3.141))
+ 
+ #undef ASSIGN
+ 
+   gcc_jit_block_end_with_void_return (block, NULL);
+ }
+ 
+ void
+ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
+ {
+   typedef void (*fn_type) (struct float_zoo *);
+   CHECK_NON_NULL (result);
+ 
+   fn_type test_float_types =
+     (fn_type)gcc_jit_result_get_code (result, "test_float_types");
+   CHECK_NON_NULL (test_float_types);
+ 
+   struct float_zoo z;
+   memset (&z, 0xf0, sizeof (z));
+ 
+   /* Call the JIT-generated function.  */
+   test_float_types (&z);
+ 
+   /* Verify that it correctly wrote to the various fields.  */
+   gcc_jit_context *info_ctxt = gcc_jit_context_acquire ();
+   gcc_jit_target_info *target_info = gcc_jit_context_get_target_info (info_ctxt);
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT16))
+     CHECK_VALUE (z.m_float16, (_Float16)3.141);
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT32))
+     CHECK_VALUE (z.m_float32, (_Float32)3.141);
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT64))
+     CHECK_VALUE (z.m_float64, (_Float64)3.141);
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT128))
+     CHECK_VALUE (z.m_float128, (__float128)3.141);
+ 
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT16))
+     CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT16)), sizeof (_Float16));
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT32))
+     CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT32)), sizeof (_Float32));
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT64))
+     CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT64)), sizeof (_Float64));
+   if (gcc_jit_target_info_supports_target_dependent_type (target_info, GCC_JIT_TYPE_FLOAT128))
+     CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT128)), sizeof (__float128));
+ }
diff -Nrcpad gcc-16-20251019/gcc/testsuite/lib/target-supports.exp gcc-16-20251026/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20251019/gcc/testsuite/lib/target-supports.exp	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/testsuite/lib/target-supports.exp	Sun Oct 26 22:33:04 2025
*************** proc check_weak_available { } {
*** 336,345 ****
  	return 0
      }
  
!     # VxWorks hardly supports it (vx7 RTPs only)
! 
      if { [istarget *-*-vxworks*] } {
! 	return 0
      }
  
      # ELF and ECOFF support it. a.out does with gas/gld but may also with
--- 336,346 ----
  	return 0
      }
  
!     # VxWorks supports it only since VxWorks 7 (assumed >= r2) for RTPs.
!     # Kernel mode works fine as well for our testsuite's purposes.
!  
      if { [istarget *-*-vxworks*] } {
! 	return [istarget *-*-vxworks7*]
      }
  
      # ELF and ECOFF support it. a.out does with gas/gld but may also with
*************** foreach { aarch64_ext } $exts_sve2 {
*** 12573,12578 ****
--- 12574,12589 ----
      }]
  }
  
+ proc check_effective_target_aarch64_sysreg_guarding_ok { } {
+     if { [istarget aarch64*-*-*] && [check_effective_target_elf] } {
+ 	return [check_no_compiler_messages aarch64_assembler object {
+ 	    __asm__ ("msr\ts3_3_c9_c13_4, x0");
+ 	} "-menable-sysreg-checking"]
+     } else {
+ 	return 0
+     }
+ }
+ 
  proc check_effective_target_aarch64_asm_sve2p1_ok { } {
      if { [istarget aarch64*-*-*] } {
  	return [check_no_compiler_messages aarch64_sve2p1_assembler object {
diff -Nrcpad gcc-16-20251019/gcc/tree-ssa-phiopt.cc gcc-16-20251026/gcc/tree-ssa-phiopt.cc
*** gcc-16-20251019/gcc/tree-ssa-phiopt.cc	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/tree-ssa-phiopt.cc	Sun Oct 26 22:33:04 2025
*************** match_simplify_replacement (basic_block
*** 1007,1013 ****
    }
  
    if (!result)
!     return false;
    if (dump_file && (dump_flags & TDF_FOLDING))
      fprintf (dump_file, "accepted the phiopt match-simplify.\n");
  
--- 1007,1040 ----
    }
  
    if (!result)
!     {
!       /* If we don't get back a MIN/MAX_EXPR still make sure the expression
! 	 stays in a form to be recognized by ISA that map to IEEE x > y ? x : y
! 	 semantics (that's not IEEE max semantics).  */
!       if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
!         return false;
!       if (stmt_to_move || stmt_to_move_alt)
! 	return false;
!       tree_code cmp = gimple_cond_code (stmt);
!       if (cmp != LT_EXPR && cmp != LE_EXPR
! 	  && cmp != GT_EXPR && cmp != GE_EXPR)
! 	return false;
!       tree lhs = gimple_cond_lhs (stmt);
!       tree rhs = gimple_cond_rhs (stmt);
!       /* `lhs CMP rhs ? lhs : rhs` or `lhs CMP rhs ? rhs : lhs`
! 	 are only acceptable case here.  */
!       if ((!operand_equal_for_phi_arg_p (lhs, arg_false)
! 	   || !operand_equal_for_phi_arg_p (rhs, arg_true))
! 	  && (!operand_equal_for_phi_arg_p (rhs, arg_false)
! 	       || !operand_equal_for_phi_arg_p (lhs, arg_true)))
! 	return false;
!       seq = nullptr;
!       result = gimple_build (&seq, cmp, boolean_type_node, lhs, rhs);
!       result = gimple_build (&seq, COND_EXPR, type, result,
! 			     arg_true, arg_false);
!       statistics_counter_event (cfun, "Non-IEEE FP MIN/MAX PHI replacement",
! 				1);
!     }
    if (dump_file && (dump_flags & TDF_FOLDING))
      fprintf (dump_file, "accepted the phiopt match-simplify.\n");
  
*************** value_replacement (basic_block cond_bb,
*** 1767,2388 ****
    return 0;
  }
  
- /* If VAR is an SSA_NAME that points to a BIT_NOT_EXPR then return the TREE for
-    the value being inverted.  */
- 
- static tree
- strip_bit_not (tree var)
- {
-   if (TREE_CODE (var) != SSA_NAME)
-     return NULL_TREE;
- 
-   gimple *assign = SSA_NAME_DEF_STMT (var);
-   if (gimple_code (assign) != GIMPLE_ASSIGN)
-     return NULL_TREE;
- 
-   if (gimple_assign_rhs_code (assign) != BIT_NOT_EXPR)
-     return NULL_TREE;
- 
-   return gimple_assign_rhs1 (assign);
- }
- 
- /* Invert a MIN to a MAX or a MAX to a MIN expression CODE.  */
- 
- enum tree_code
- invert_minmax_code (enum tree_code code)
- {
-   switch (code) {
-   case MIN_EXPR:
-     return MAX_EXPR;
-   case MAX_EXPR:
-     return MIN_EXPR;
-   default:
-     gcc_unreachable ();
-   }
- }
- 
- /*  The function minmax_replacement does the main work of doing the minmax
-     replacement.  Return true if the replacement is done.  Otherwise return
-     false.
-     BB is the basic block where the replacement is going to be done on.  ARG0
-     is argument 0 from the PHI.  Likewise for ARG1.
- 
-     If THREEWAY_P then expect the BB to be laid out in diamond shape with each
-     BB containing only a MIN or MAX expression.  */
- 
- static bool
- minmax_replacement (basic_block cond_bb, basic_block middle_bb, basic_block alt_middle_bb,
- 		    edge e0, edge e1, gphi *phi, tree arg0, tree arg1, bool threeway_p)
- {
-   tree result;
-   edge true_edge, false_edge;
-   enum tree_code minmax, ass_code;
-   tree smaller, larger, arg_true, arg_false;
-   gimple_stmt_iterator gsi, gsi_from;
- 
-   tree type = TREE_TYPE (gimple_phi_result (phi));
- 
-   gcond *cond = as_a <gcond *> (*gsi_last_bb (cond_bb));
-   enum tree_code cmp = gimple_cond_code (cond);
-   tree rhs = gimple_cond_rhs (cond);
- 
-   /* Turn EQ/NE of extreme values to order comparisons.  */
-   if ((cmp == NE_EXPR || cmp == EQ_EXPR)
-       && TREE_CODE (rhs) == INTEGER_CST
-       && INTEGRAL_TYPE_P (TREE_TYPE (rhs)))
-     {
-       if (wi::eq_p (wi::to_wide (rhs), wi::min_value (TREE_TYPE (rhs))))
- 	{
- 	  cmp = (cmp == EQ_EXPR) ? LT_EXPR : GE_EXPR;
- 	  rhs = wide_int_to_tree (TREE_TYPE (rhs),
- 				  wi::min_value (TREE_TYPE (rhs)) + 1);
- 	}
-       else if (wi::eq_p (wi::to_wide (rhs), wi::max_value (TREE_TYPE (rhs))))
- 	{
- 	  cmp = (cmp == EQ_EXPR) ? GT_EXPR : LE_EXPR;
- 	  rhs = wide_int_to_tree (TREE_TYPE (rhs),
- 				  wi::max_value (TREE_TYPE (rhs)) - 1);
- 	}
-     }
- 
-   /* This transformation is only valid for order comparisons.  Record which
-      operand is smaller/larger if the result of the comparison is true.  */
-   tree alt_smaller = NULL_TREE;
-   tree alt_larger = NULL_TREE;
-   if (cmp == LT_EXPR || cmp == LE_EXPR)
-     {
-       smaller = gimple_cond_lhs (cond);
-       larger = rhs;
-       /* If we have smaller < CST it is equivalent to smaller <= CST-1.
- 	 Likewise smaller <= CST is equivalent to smaller < CST+1.  */
-       if (TREE_CODE (larger) == INTEGER_CST
- 	  && INTEGRAL_TYPE_P (TREE_TYPE (larger)))
- 	{
- 	  if (cmp == LT_EXPR)
- 	    {
- 	      wi::overflow_type overflow;
- 	      wide_int alt = wi::sub (wi::to_wide (larger), 1,
- 				      TYPE_SIGN (TREE_TYPE (larger)),
- 				      &overflow);
- 	      if (! overflow)
- 		alt_larger = wide_int_to_tree (TREE_TYPE (larger), alt);
- 	    }
- 	  else
- 	    {
- 	      wi::overflow_type overflow;
- 	      wide_int alt = wi::add (wi::to_wide (larger), 1,
- 				      TYPE_SIGN (TREE_TYPE (larger)),
- 				      &overflow);
- 	      if (! overflow)
- 		alt_larger = wide_int_to_tree (TREE_TYPE (larger), alt);
- 	    }
- 	}
-     }
-   else if (cmp == GT_EXPR || cmp == GE_EXPR)
-     {
-       smaller = rhs;
-       larger = gimple_cond_lhs (cond);
-       /* If we have larger > CST it is equivalent to larger >= CST+1.
- 	 Likewise larger >= CST is equivalent to larger > CST-1.  */
-       if (TREE_CODE (smaller) == INTEGER_CST
- 	  && INTEGRAL_TYPE_P (TREE_TYPE (smaller)))
- 	{
- 	  wi::overflow_type overflow;
- 	  if (cmp == GT_EXPR)
- 	    {
- 	      wide_int alt = wi::add (wi::to_wide (smaller), 1,
- 				      TYPE_SIGN (TREE_TYPE (smaller)),
- 				      &overflow);
- 	      if (! overflow)
- 		alt_smaller = wide_int_to_tree (TREE_TYPE (smaller), alt);
- 	    }
- 	  else
- 	    {
- 	      wide_int alt = wi::sub (wi::to_wide (smaller), 1,
- 				      TYPE_SIGN (TREE_TYPE (smaller)),
- 				      &overflow);
- 	      if (! overflow)
- 		alt_smaller = wide_int_to_tree (TREE_TYPE (smaller), alt);
- 	    }
- 	}
-     }
-   else
-     return false;
- 
-   /* Handle the special case of (signed_type)x < 0 being equivalent
-      to x > MAX_VAL(signed_type) and (signed_type)x >= 0 equivalent
-      to x <= MAX_VAL(signed_type).  */
-   if ((cmp == GE_EXPR || cmp == LT_EXPR)
-       && INTEGRAL_TYPE_P (type)
-       && TYPE_UNSIGNED (type)
-       && integer_zerop (rhs))
-     {
-       tree op = gimple_cond_lhs (cond);
-       if (TREE_CODE (op) == SSA_NAME
- 	  && INTEGRAL_TYPE_P (TREE_TYPE (op))
- 	  && !TYPE_UNSIGNED (TREE_TYPE (op)))
- 	{
- 	  gimple *def_stmt = SSA_NAME_DEF_STMT (op);
- 	  if (gimple_assign_cast_p (def_stmt))
- 	    {
- 	      tree op1 = gimple_assign_rhs1 (def_stmt);
- 	      if (INTEGRAL_TYPE_P (TREE_TYPE (op1))
- 		  && TYPE_UNSIGNED (TREE_TYPE (op1))
- 		  && (TYPE_PRECISION (TREE_TYPE (op))
- 		      == TYPE_PRECISION (TREE_TYPE (op1)))
- 		  && useless_type_conversion_p (type, TREE_TYPE (op1)))
- 		{
- 		  wide_int w1 = wi::max_value (TREE_TYPE (op));
- 		  wide_int w2 = wi::add (w1, 1);
- 		  if (cmp == LT_EXPR)
- 		    {
- 		      larger = op1;
- 		      smaller = wide_int_to_tree (TREE_TYPE (op1), w1);
- 		      alt_smaller = wide_int_to_tree (TREE_TYPE (op1), w2);
- 		      alt_larger = NULL_TREE;
- 		    }
- 		  else
- 		    {
- 		      smaller = op1;
- 		      larger = wide_int_to_tree (TREE_TYPE (op1), w1);
- 		      alt_larger = wide_int_to_tree (TREE_TYPE (op1), w2);
- 		      alt_smaller = NULL_TREE;
- 		    }
- 		}
- 	    }
- 	}
-     }
- 
-   /* We need to know which is the true edge and which is the false
-       edge so that we know if have abs or negative abs.  */
-   extract_true_false_edges_from_block (cond_bb, &true_edge, &false_edge);
- 
-   /* Forward the edges over the middle basic block.  */
-   if (true_edge->dest == middle_bb)
-     true_edge = EDGE_SUCC (true_edge->dest, 0);
-   if (false_edge->dest == middle_bb)
-     false_edge = EDGE_SUCC (false_edge->dest, 0);
- 
-   /* When THREEWAY_P then e1 will point to the edge of the final transition
-      from middle-bb to end.  */
-   if (true_edge == e0)
-     {
-       if (!threeway_p)
- 	gcc_assert (false_edge == e1);
-       arg_true = arg0;
-       arg_false = arg1;
-     }
-   else
-     {
-       gcc_assert (false_edge == e0);
-       if (!threeway_p)
- 	gcc_assert (true_edge == e1);
-       arg_true = arg1;
-       arg_false = arg0;
-     }
- 
-   if (empty_block_p (middle_bb)
-       && (!threeway_p
- 	  || empty_block_p (alt_middle_bb)))
-     {
-       if ((operand_equal_for_phi_arg_p (arg_true, smaller)
- 	   || (alt_smaller
- 	       && operand_equal_for_phi_arg_p (arg_true, alt_smaller)))
- 	  && (operand_equal_for_phi_arg_p (arg_false, larger)
- 	      || (alt_larger
- 		  && operand_equal_for_phi_arg_p (arg_true, alt_larger))))
- 	{
- 	  /* Case
- 
- 	     if (smaller < larger)
- 	     rslt = smaller;
- 	     else
- 	     rslt = larger;  */
- 	  minmax = MIN_EXPR;
- 	}
-       else if ((operand_equal_for_phi_arg_p (arg_false, smaller)
- 		|| (alt_smaller
- 		    && operand_equal_for_phi_arg_p (arg_false, alt_smaller)))
- 	       && (operand_equal_for_phi_arg_p (arg_true, larger)
- 		   || (alt_larger
- 		       && operand_equal_for_phi_arg_p (arg_true, alt_larger))))
- 	minmax = MAX_EXPR;
-       else
- 	return false;
-     }
-   else if (HONOR_NANS (type) || HONOR_SIGNED_ZEROS (type))
-     /* The optimization may be unsafe due to NaNs.  */
-     return false;
-   else if (middle_bb != alt_middle_bb && threeway_p)
-     {
-       /* Recognize the following case:
- 
- 	 if (smaller < larger)
- 	   a = MIN (smaller, c);
- 	 else
- 	   b = MIN (larger, c);
- 	 x = PHI <a, b>
- 
- 	 This is equivalent to
- 
- 	 a = MIN (smaller, c);
- 	 x = MIN (larger, a);  */
- 
-       gimple *assign = last_and_only_stmt (middle_bb);
-       tree lhs, op0, op1, bound;
-       tree alt_lhs, alt_op0, alt_op1;
-       bool invert = false;
- 
-       /* When THREEWAY_P then e1 will point to the edge of the final transition
- 	 from middle-bb to end.  */
-       if (true_edge == e0)
- 	gcc_assert (false_edge == EDGE_PRED (e1->src, 0));
-       else
- 	gcc_assert (true_edge == EDGE_PRED (e1->src, 0));
- 
-       bool valid_minmax_p = false;
-       gimple_stmt_iterator it1
- 	= gsi_start_nondebug_after_labels_bb (middle_bb);
-       gimple_stmt_iterator it2
- 	= gsi_start_nondebug_after_labels_bb (alt_middle_bb);
-       if (gsi_one_nondebug_before_end_p (it1)
- 	  && gsi_one_nondebug_before_end_p (it2))
- 	{
- 	  gimple *stmt1 = gsi_stmt (it1);
- 	  gimple *stmt2 = gsi_stmt (it2);
- 	  if (is_gimple_assign (stmt1) && is_gimple_assign (stmt2))
- 	    {
- 	      enum tree_code code1 = gimple_assign_rhs_code (stmt1);
- 	      enum tree_code code2 = gimple_assign_rhs_code (stmt2);
- 	      valid_minmax_p = (code1 == MIN_EXPR || code1 == MAX_EXPR)
- 			       && (code2 == MIN_EXPR || code2 == MAX_EXPR);
- 	    }
- 	}
- 
-       if (!valid_minmax_p)
- 	return false;
- 
-       if (!assign
- 	  || gimple_code (assign) != GIMPLE_ASSIGN)
- 	return false;
- 
-       /* There cannot be any phi nodes in the middle bb. */
-       if (!gimple_seq_empty_p (phi_nodes (middle_bb)))
- 	return false;
- 
-       lhs = gimple_assign_lhs (assign);
-       ass_code = gimple_assign_rhs_code (assign);
-       if (ass_code != MAX_EXPR && ass_code != MIN_EXPR)
- 	return false;
- 
-       op0 = gimple_assign_rhs1 (assign);
-       op1 = gimple_assign_rhs2 (assign);
- 
-       assign = last_and_only_stmt (alt_middle_bb);
-       if (!assign
- 	  || gimple_code (assign) != GIMPLE_ASSIGN)
- 	return false;
- 
-       /* There cannot be any phi nodes in the alt middle bb. */
-       if (!gimple_seq_empty_p (phi_nodes (alt_middle_bb)))
- 	return false;
- 
-       alt_lhs = gimple_assign_lhs (assign);
-       if (ass_code != gimple_assign_rhs_code (assign))
- 	return false;
- 
-       if (!operand_equal_for_phi_arg_p (lhs, arg_true)
- 	 || !operand_equal_for_phi_arg_p (alt_lhs, arg_false))
- 	return false;
- 
-       alt_op0 = gimple_assign_rhs1 (assign);
-       alt_op1 = gimple_assign_rhs2 (assign);
- 
-       if ((operand_equal_for_phi_arg_p (op0, smaller)
- 		|| (alt_smaller
- 		    && operand_equal_for_phi_arg_p (op0, alt_smaller)))
- 	       && (operand_equal_for_phi_arg_p (alt_op0, larger)
- 		   || (alt_larger
- 		       && operand_equal_for_phi_arg_p (alt_op0, alt_larger))))
- 	{
- 	  /* We got here if the condition is true, i.e., SMALLER < LARGER.  */
- 	  if (!operand_equal_for_phi_arg_p (op1, alt_op1))
- 	    return false;
- 
- 	  if ((arg0 = strip_bit_not (op0)) != NULL
- 	      && (arg1 = strip_bit_not (alt_op0)) != NULL
- 	      && (bound = strip_bit_not (op1)) != NULL)
- 	    {
- 	      minmax = MAX_EXPR;
- 	      ass_code = invert_minmax_code (ass_code);
- 	      invert = true;
- 	    }
- 	  else
- 	    {
- 	      bound = op1;
- 	      minmax = MIN_EXPR;
- 	      arg0 = op0;
- 	      arg1 = alt_op0;
- 	     }
- 	}
-       else if ((operand_equal_for_phi_arg_p (op0, larger)
- 		|| (alt_larger
- 		    && operand_equal_for_phi_arg_p (op0, alt_larger)))
- 	       && (operand_equal_for_phi_arg_p (alt_op0, smaller)
- 		   || (alt_smaller
- 		       && operand_equal_for_phi_arg_p (alt_op0, alt_smaller))))
- 	{
- 	  /* We got here if the condition is true, i.e., SMALLER > LARGER.  */
- 	  if (!operand_equal_for_phi_arg_p (op1, alt_op1))
- 	    return false;
- 
- 	  if ((arg0 = strip_bit_not (op0)) != NULL
- 	      && (arg1 = strip_bit_not (alt_op0)) != NULL
- 	      && (bound = strip_bit_not (op1)) != NULL)
- 	    {
- 	      minmax = MIN_EXPR;
- 	      ass_code = invert_minmax_code (ass_code);
- 	      invert = true;
- 	    }
- 	  else
- 	    {
- 	      bound = op1;
- 	      minmax = MAX_EXPR;
- 	      arg0 = op0;
- 	      arg1 = alt_op0;
- 	     }
- 	}
-       else
- 	return false;
- 
-       /* Emit the statement to compute min/max.  */
-       location_t locus = gimple_location (last_nondebug_stmt (cond_bb));
-       gimple_seq stmts = NULL;
-       tree phi_result = gimple_phi_result (phi);
-       result = gimple_build (&stmts, locus, minmax, TREE_TYPE (phi_result),
- 			     arg0, arg1);
-       result = gimple_build (&stmts, locus, ass_code, TREE_TYPE (phi_result),
- 			     result, bound);
-       if (invert)
- 	result = gimple_build (&stmts, locus, BIT_NOT_EXPR, TREE_TYPE (phi_result),
- 			       result);
- 
-       gsi = gsi_last_bb (cond_bb);
-       gsi_insert_seq_before (&gsi, stmts, GSI_NEW_STMT);
- 
-       replace_phi_edge_with_variable (cond_bb, e1, phi, result);
- 
-       return true;
-     }
-   else if (!threeway_p
- 	   || empty_block_p (alt_middle_bb))
-     {
-       /* Recognize the following case, assuming d <= u:
- 
- 	 if (a <= u)
- 	   b = MAX (a, d);
- 	 x = PHI <b, u>
- 
- 	 This is equivalent to
- 
- 	 b = MAX (a, d);
- 	 x = MIN (b, u);  */
- 
-       gimple *assign = last_and_only_stmt (middle_bb);
-       tree lhs, op0, op1, bound;
- 
-       if (!single_pred_p (middle_bb))
- 	return false;
- 
-       if (!assign
- 	  || gimple_code (assign) != GIMPLE_ASSIGN)
- 	return false;
- 
-       /* There cannot be any phi nodes in the middle bb. */
-       if (!gimple_seq_empty_p (phi_nodes (middle_bb)))
- 	return false;
- 
-       lhs = gimple_assign_lhs (assign);
-       ass_code = gimple_assign_rhs_code (assign);
-       if (ass_code != MAX_EXPR && ass_code != MIN_EXPR)
- 	return false;
-       op0 = gimple_assign_rhs1 (assign);
-       op1 = gimple_assign_rhs2 (assign);
- 
-       if (true_edge->src == middle_bb)
- 	{
- 	  /* We got here if the condition is true, i.e., SMALLER < LARGER.  */
- 	  if (!operand_equal_for_phi_arg_p (lhs, arg_true))
- 	    return false;
- 
- 	  if (operand_equal_for_phi_arg_p (arg_false, larger)
- 	      || (alt_larger
- 		  && operand_equal_for_phi_arg_p (arg_false, alt_larger)))
- 	    {
- 	      /* Case
- 
- 		 if (smaller < larger)
- 		   {
- 		     r' = MAX_EXPR (smaller, bound)
- 		   }
- 		 r = PHI <r', larger>  --> to be turned to MIN_EXPR.  */
- 	      if (ass_code != MAX_EXPR)
- 		return false;
- 
- 	      minmax = MIN_EXPR;
- 	      if (operand_equal_for_phi_arg_p (op0, smaller)
- 		  || (alt_smaller
- 		      && operand_equal_for_phi_arg_p (op0, alt_smaller)))
- 		bound = op1;
- 	      else if (operand_equal_for_phi_arg_p (op1, smaller)
- 		       || (alt_smaller
- 			   && operand_equal_for_phi_arg_p (op1, alt_smaller)))
- 		bound = op0;
- 	      else
- 		return false;
- 
- 	      /* We need BOUND <= LARGER.  */
- 	      if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node,
- 						  bound, arg_false)))
- 		return false;
- 	    }
- 	  else if (operand_equal_for_phi_arg_p (arg_false, smaller)
- 		   || (alt_smaller
- 		       && operand_equal_for_phi_arg_p (arg_false, alt_smaller)))
- 	    {
- 	      /* Case
- 
- 		 if (smaller < larger)
- 		   {
- 		     r' = MIN_EXPR (larger, bound)
- 		   }
- 		 r = PHI <r', smaller>  --> to be turned to MAX_EXPR.  */
- 	      if (ass_code != MIN_EXPR)
- 		return false;
- 
- 	      minmax = MAX_EXPR;
- 	      if (operand_equal_for_phi_arg_p (op0, larger)
- 		  || (alt_larger
- 		      && operand_equal_for_phi_arg_p (op0, alt_larger)))
- 		bound = op1;
- 	      else if (operand_equal_for_phi_arg_p (op1, larger)
- 		       || (alt_larger
- 			   && operand_equal_for_phi_arg_p (op1, alt_larger)))
- 		bound = op0;
- 	      else
- 		return false;
- 
- 	      /* We need BOUND >= SMALLER.  */
- 	      if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node,
- 						  bound, arg_false)))
- 		return false;
- 	    }
- 	  else
- 	    return false;
- 	}
-       else
- 	{
- 	  /* We got here if the condition is false, i.e., SMALLER > LARGER.  */
- 	  if (!operand_equal_for_phi_arg_p (lhs, arg_false))
- 	    return false;
- 
- 	  if (operand_equal_for_phi_arg_p (arg_true, larger)
- 	      || (alt_larger
- 		  && operand_equal_for_phi_arg_p (arg_true, alt_larger)))
- 	    {
- 	      /* Case
- 
- 		 if (smaller > larger)
- 		   {
- 		     r' = MIN_EXPR (smaller, bound)
- 		   }
- 		 r = PHI <r', larger>  --> to be turned to MAX_EXPR.  */
- 	      if (ass_code != MIN_EXPR)
- 		return false;
- 
- 	      minmax = MAX_EXPR;
- 	      if (operand_equal_for_phi_arg_p (op0, smaller)
- 		  || (alt_smaller
- 		      && operand_equal_for_phi_arg_p (op0, alt_smaller)))
- 		bound = op1;
- 	      else if (operand_equal_for_phi_arg_p (op1, smaller)
- 		       || (alt_smaller
- 			   && operand_equal_for_phi_arg_p (op1, alt_smaller)))
- 		bound = op0;
- 	      else
- 		return false;
- 
- 	      /* We need BOUND >= LARGER.  */
- 	      if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node,
- 						  bound, arg_true)))
- 		return false;
- 	    }
- 	  else if (operand_equal_for_phi_arg_p (arg_true, smaller)
- 		   || (alt_smaller
- 		       && operand_equal_for_phi_arg_p (arg_true, alt_smaller)))
- 	    {
- 	      /* Case
- 
- 		 if (smaller > larger)
- 		   {
- 		     r' = MAX_EXPR (larger, bound)
- 		   }
- 		 r = PHI <r', smaller>  --> to be turned to MIN_EXPR.  */
- 	      if (ass_code != MAX_EXPR)
- 		return false;
- 
- 	      minmax = MIN_EXPR;
- 	      if (operand_equal_for_phi_arg_p (op0, larger))
- 		bound = op1;
- 	      else if (operand_equal_for_phi_arg_p (op1, larger))
- 		bound = op0;
- 	      else
- 		return false;
- 
- 	      /* We need BOUND <= SMALLER.  */
- 	      if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node,
- 						  bound, arg_true)))
- 		return false;
- 	    }
- 	  else
- 	    return false;
- 	}
- 
-       /* Move the statement from the middle block.  */
-       gsi = gsi_last_bb (cond_bb);
-       gsi_from = gsi_last_nondebug_bb (middle_bb);
-       reset_flow_sensitive_info (SINGLE_SSA_TREE_OPERAND (gsi_stmt (gsi_from),
- 							  SSA_OP_DEF));
-       gsi_move_before (&gsi_from, &gsi);
-     }
-   else
-     return false;
- 
-   /* Emit the statement to compute min/max.  */
-   gimple_seq stmts = NULL;
-   tree phi_result = gimple_phi_result (phi);
- 
-   /* When we can't use a MIN/MAX_EXPR still make sure the expression
-      stays in a form to be recognized by ISA that map to IEEE x > y ? x : y
-      semantics (that's not IEEE max semantics).  */
-   if (HONOR_NANS (type) || HONOR_SIGNED_ZEROS (type))
-     {
-       result = gimple_build (&stmts, cmp, boolean_type_node,
- 			     gimple_cond_lhs (cond), rhs);
-       result = gimple_build (&stmts, COND_EXPR, TREE_TYPE (phi_result),
- 			     result, arg_true, arg_false);
-     }
-   else
-     result = gimple_build (&stmts, minmax, TREE_TYPE (phi_result), arg0, arg1);
- 
-   gsi = gsi_last_bb (cond_bb);
-   gsi_insert_seq_before (&gsi, stmts, GSI_NEW_STMT);
- 
-   replace_phi_edge_with_variable (cond_bb, e1, phi, result);
- 
-   return true;
- }
- 
  /* Attempt to optimize (x <=> y) cmp 0 and similar comparisons.
     For strong ordering <=> try to match something like:
      <bb 2> :  // cond3_bb (== cond2_bb)
--- 1794,1799 ----
*************** execute_over_cond_phis (func_type func)
*** 4365,4373 ****
     But in this case bb1/bb2 can only be forwarding basic blocks.
  
     This fully replaces the old "Conditional Replacement",
!    "ABS Replacement" transformations as they are now
     implmeneted in match.pd.
-    Some parts of the "MIN/MAX Replacement" are re-implemented in match.pd.
  
     Value Replacement
     -----------------
--- 3776,3783 ----
     But in this case bb1/bb2 can only be forwarding basic blocks.
  
     This fully replaces the old "Conditional Replacement",
!    "ABS Replacement" and "MIN/MAX Replacement" transformations as they are now
     implmeneted in match.pd.
  
     Value Replacement
     -----------------
*************** execute_over_cond_phis (func_type func)
*** 4409,4434 ****
         t3 = t1 & t2;
         x = a;
  
-    MIN/MAX Replacement
-    -------------------
- 
-    This transformation, minmax_replacement replaces
- 
-      bb0:
-        if (a <= b) goto bb2; else goto bb1;
-      bb1:
-      bb2:
-        x = PHI <b (bb1), a (bb0), ...>;
- 
-    with
- 
-      bb0:
-        x' = MIN_EXPR (a, b)
-      bb2:
-        x = PHI <x' (bb0), ...>;
- 
-    A similar transformation is done for MAX_EXPR.
- 
  
     This pass also performs a fifth transformation of a slightly different
     flavor.
--- 3819,3824 ----
*************** pass_phiopt::execute (function *)
*** 4642,4650 ****
  	       && cond_removal_in_builtin_zero_pattern (bb, bb1, e1, e2,
  							phi, arg0, arg1))
  	cfgchanged = true;
-       else if (minmax_replacement (bb, bb1, bb2, e1, e2, phi, arg0, arg1,
- 				   diamond_p))
- 	cfgchanged = true;
        else if (single_pred_p (bb1)
  	       && !diamond_p
  	       && spaceship_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
--- 4032,4037 ----
diff -Nrcpad gcc-16-20251019/gcc/tree-vect-loop.cc gcc-16-20251026/gcc/tree-vect-loop.cc
*** gcc-16-20251019/gcc/tree-vect-loop.cc	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/tree-vect-loop.cc	Sun Oct 26 22:33:04 2025
*************** _loop_vec_info::_loop_vec_info (class lo
*** 738,744 ****
      nonlinear_iv (false),
      ivexpr_map (NULL),
      scan_map (NULL),
-     slp_unrolling_factor (1),
      inner_loop_cost_factor (param_vect_inner_loop_cost_factor),
      vectorizable (false),
      can_use_partial_vectors_p (param_vect_partial_vector_usage != 0),
--- 738,743 ----
*************** start_over:
*** 2236,2251 ****
    if (!ok)
      return ok;
  
!   /* If there are any SLP instances mark them as pure_slp.  */
    if (!vect_make_slp_decision (loop_vinfo))
      return opt_result::failure_at (vect_location, "no stmts to vectorize.\n");
  
    if (dump_enabled_p ())
      dump_printf_loc (MSG_NOTE, vect_location, "Loop contains only SLP stmts\n");
  
!   /* Determine the vectorization factor from the SLP decision.  */
!   LOOP_VINFO_VECT_FACTOR (loop_vinfo)
!     = LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo);
    if (dump_enabled_p ())
      {
        dump_printf_loc (MSG_NOTE, vect_location, "vectorization factor = ");
--- 2235,2249 ----
    if (!ok)
      return ok;
  
!   /* If there are any SLP instances mark them as pure_slp and compute
!      the overall vectorization factor.  */
    if (!vect_make_slp_decision (loop_vinfo))
      return opt_result::failure_at (vect_location, "no stmts to vectorize.\n");
  
    if (dump_enabled_p ())
      dump_printf_loc (MSG_NOTE, vect_location, "Loop contains only SLP stmts\n");
  
!   /* Dump the vectorization factor from the SLP decision.  */
    if (dump_enabled_p ())
      {
        dump_printf_loc (MSG_NOTE, vect_location, "vectorization factor = ");
*************** start_over:
*** 2253,2264 ****
        dump_printf (MSG_NOTE, "\n");
      }
  
-   /* Optimize the SLP graph with the vectorization factor fixed.  */
-   vect_optimize_slp (loop_vinfo);
- 
-   /* Gather the loads reachable from the SLP graph entries.  */
-   vect_gather_slp_loads (loop_vinfo);
- 
    /* We don't expect to have to roll back to anything other than an empty
       set of rgroups.  */
    gcc_assert (LOOP_VINFO_MASKS (loop_vinfo).is_empty ());
--- 2251,2256 ----
*************** start_over:
*** 2273,2278 ****
--- 2265,2276 ----
    poly_uint64 vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
    gcc_assert (known_ne (vectorization_factor, 0U));
  
+   /* Optimize the SLP graph with the vectorization factor fixed.  */
+   vect_optimize_slp (loop_vinfo);
+ 
+   /* Gather the loads reachable from the SLP graph entries.  */
+   vect_gather_slp_loads (loop_vinfo);
+ 
    if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) && dump_enabled_p ())
      {
        dump_printf_loc (MSG_NOTE, vect_location,
*************** again:
*** 2598,2604 ****
  
        stmt_vec_info vinfo;
        vinfo = SLP_TREE_SCALAR_STMTS (SLP_INSTANCE_TREE (instance))[0];
!       if (! STMT_VINFO_GROUPED_ACCESS (vinfo))
  	continue;
        vinfo = DR_GROUP_FIRST_ELEMENT (vinfo);
        unsigned int size = DR_GROUP_SIZE (vinfo);
--- 2596,2602 ----
  
        stmt_vec_info vinfo;
        vinfo = SLP_TREE_SCALAR_STMTS (SLP_INSTANCE_TREE (instance))[0];
!       if (!vinfo || !STMT_VINFO_GROUPED_ACCESS (vinfo))
  	continue;
        vinfo = DR_GROUP_FIRST_ELEMENT (vinfo);
        unsigned int size = DR_GROUP_SIZE (vinfo);
*************** reduction_fn_for_scalar_code (code_helpe
*** 3297,3302 ****
--- 3295,3322 ----
        }
  }
  
+ /* Set *SBOOL_FN to the corresponding function working on vector masks
+    for REDUC_FN.  Return true if that exists, false otherwise.  */
+ 
+ static bool
+ sbool_reduction_fn_for_fn (internal_fn reduc_fn, internal_fn *sbool_fn)
+ {
+   switch (reduc_fn)
+     {
+     case IFN_REDUC_AND:
+       *sbool_fn = IFN_REDUC_SBOOL_AND;
+       return true;
+     case IFN_REDUC_IOR:
+       *sbool_fn = IFN_REDUC_SBOOL_IOR;
+       return true;
+     case IFN_REDUC_XOR:
+       *sbool_fn = IFN_REDUC_SBOOL_XOR;
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
  /* If there is a neutral value X such that a reduction would not be affected
     by the introduction of additional X elements, return that X, otherwise
     return null.  CODE is the code of the reduction and SCALAR_TYPE is type
*************** get_initial_defs_for_reduction (loop_vec
*** 4902,4918 ****
    if (!TYPE_VECTOR_SUBPARTS (vector_type).is_constant (&nunits))
      nunits = group_size;
  
    number_of_places_left_in_vector = nunits;
    bool constant_p = true;
    tree_vector_builder elts (vector_type, nunits, 1);
    elts.quick_grow (nunits);
    gimple_seq ctor_seq = NULL;
    if (neutral_op
!       && !useless_type_conversion_p (TREE_TYPE (vector_type),
  				     TREE_TYPE (neutral_op)))
!     neutral_op = gimple_convert (&ctor_seq,
! 				 TREE_TYPE (vector_type),
! 				 neutral_op);
    for (j = 0; j < nunits * number_of_vectors; ++j)
      {
        tree op;
--- 4922,4937 ----
    if (!TYPE_VECTOR_SUBPARTS (vector_type).is_constant (&nunits))
      nunits = group_size;
  
+   tree vector_elt_type = TREE_TYPE (vector_type);
    number_of_places_left_in_vector = nunits;
    bool constant_p = true;
    tree_vector_builder elts (vector_type, nunits, 1);
    elts.quick_grow (nunits);
    gimple_seq ctor_seq = NULL;
    if (neutral_op
!       && !useless_type_conversion_p (vector_elt_type,
  				     TREE_TYPE (neutral_op)))
!     neutral_op = gimple_convert (&ctor_seq, vector_elt_type, neutral_op);
    for (j = 0; j < nunits * number_of_vectors; ++j)
      {
        tree op;
*************** get_initial_defs_for_reduction (loop_vec
*** 4924,4934 ****
  	op = neutral_op;
        else
  	{
! 	  if (!useless_type_conversion_p (TREE_TYPE (vector_type),
  					  TREE_TYPE (initial_values[i])))
! 	    initial_values[i] = gimple_convert (&ctor_seq,
! 						TREE_TYPE (vector_type),
! 						initial_values[i]);
  	  op = initial_values[i];
  	}
  
--- 4943,4964 ----
  	op = neutral_op;
        else
  	{
! 	  if (!useless_type_conversion_p (vector_elt_type,
  					  TREE_TYPE (initial_values[i])))
! 	    {
! 	      if (VECTOR_BOOLEAN_TYPE_P (vector_type))
! 		initial_values[i] = gimple_build (&ctor_seq, COND_EXPR,
! 						  vector_elt_type,
! 						  initial_values[i],
! 						  build_all_ones_cst
! 						    (vector_elt_type),
! 						  build_zero_cst
! 						    (vector_elt_type));
! 	      else
! 		initial_values[i] = gimple_convert (&ctor_seq,
! 						    vector_elt_type,
! 						    initial_values[i]);
! 	    }
  	  op = initial_values[i];
  	}
  
*************** vect_create_partial_epilog (tree vec_def
*** 5187,5192 ****
--- 5217,5231 ----
  
        new_temp = gimple_build (seq, code, vectype1, dst1, dst2);
      }
+   if (!useless_type_conversion_p (vectype, TREE_TYPE (new_temp)))
+     {
+       tree dst3 = make_ssa_name (vectype);
+       gimple *epilog_stmt = gimple_build_assign (dst3, VIEW_CONVERT_EXPR,
+ 						 build1 (VIEW_CONVERT_EXPR,
+ 							 vectype, new_temp));
+       gimple_seq_add_stmt_without_update (seq, epilog_stmt);
+       new_temp = dst3;
+     }
  
    return new_temp;
  }
*************** vect_create_epilog_for_reduction (loop_v
*** 5482,5487 ****
--- 5521,5535 ----
         && slp_reduc
         && !TYPE_VECTOR_SUBPARTS (vectype).is_constant ());
  
+   /* If signed overflow is undefined we might need to perform reduction
+      computations in an unsigned type.  */
+   tree compute_vectype = vectype;
+   if (ANY_INTEGRAL_TYPE_P (vectype)
+       && TYPE_OVERFLOW_UNDEFINED (vectype)
+       && code.is_tree_code ()
+       && arith_code_with_undefined_signed_overflow ((tree_code) code))
+     compute_vectype = unsigned_type_for (vectype);
+ 
    /* In case of reduction chain, e.g.,
       # a1 = phi <a3, a0>
       a2 = operation (a1)
*************** vect_create_epilog_for_reduction (loop_v
*** 5501,5516 ****
       a multiple of the SLP group size.
  
       The same is true if we couldn't use a single defuse cycle.  */
!   if (!slp_reduc
!       || direct_slp_reduc
!       || (slp_reduc
! 	  && constant_multiple_p (TYPE_VECTOR_SUBPARTS (vectype), group_size)))
      {
        gimple_seq stmts = NULL;
        tree single_input = reduc_inputs[0];
        for (k = 1; k < reduc_inputs.length (); k++)
! 	single_input = gimple_build (&stmts, code, vectype,
! 				     single_input, reduc_inputs[k]);
        gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
  
        reduc_inputs.truncate (0);
--- 5549,5575 ----
       a multiple of the SLP group size.
  
       The same is true if we couldn't use a single defuse cycle.  */
!   if ((!slp_reduc
!        || direct_slp_reduc
!        || (slp_reduc
! 	   && constant_multiple_p (TYPE_VECTOR_SUBPARTS (vectype), group_size)))
!       && reduc_inputs.length () > 1)
      {
        gimple_seq stmts = NULL;
        tree single_input = reduc_inputs[0];
+       if (compute_vectype != vectype)
+ 	single_input = gimple_build (&stmts, VIEW_CONVERT_EXPR,
+ 				     compute_vectype, single_input);
        for (k = 1; k < reduc_inputs.length (); k++)
! 	{
! 	  tree input = gimple_build (&stmts, VIEW_CONVERT_EXPR,
! 				     compute_vectype, reduc_inputs[k]);
! 	  single_input = gimple_build (&stmts, code, compute_vectype,
! 				       single_input, input);
! 	}
!       if (compute_vectype != vectype)
! 	single_input = gimple_build (&stmts, VIEW_CONVERT_EXPR,
! 				     vectype, single_input);
        gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
  
        reduc_inputs.truncate (0);
*************** vect_create_epilog_for_reduction (loop_v
*** 5549,5554 ****
--- 5608,5629 ----
    /* Shouldn't be used beyond this point.  */
    exit_bb = nullptr;
  
+   /* If we are operating on a mask vector and do not support direct mask
+      reduction, work on a bool data vector instead of a mask vector.  */
+   if (VECTOR_BOOLEAN_TYPE_P (vectype)
+       && VECT_REDUC_INFO_VECTYPE_FOR_MASK (reduc_info)
+       && vectype != VECT_REDUC_INFO_VECTYPE_FOR_MASK (reduc_info))
+     {
+       compute_vectype = vectype = VECT_REDUC_INFO_VECTYPE_FOR_MASK (reduc_info);
+       gimple_seq stmts = NULL;
+       for (unsigned i = 0; i < reduc_inputs.length (); ++i)
+ 	reduc_inputs[i] = gimple_build (&stmts, VEC_COND_EXPR, vectype,
+ 					reduc_inputs[i],
+ 					build_one_cst (vectype),
+ 					build_zero_cst (vectype));
+       gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
+     }
+ 
    if (VECT_REDUC_INFO_TYPE (reduc_info) == COND_REDUCTION
        && reduc_fn != IFN_LAST)
      {
*************** vect_create_epilog_for_reduction (loop_v
*** 5857,5862 ****
--- 5932,5949 ----
  	 halves against each other.  */
        enum machine_mode mode1 = mode;
        tree stype = TREE_TYPE (vectype);
+       if (compute_vectype != vectype)
+ 	{
+ 	  stype = unsigned_type_for (stype);
+ 	  gimple_seq stmts = NULL;
+ 	  for (unsigned i = 0; i < reduc_inputs.length (); ++i)
+ 	    {
+ 	      tree new_temp = gimple_build (&stmts, VIEW_CONVERT_EXPR,
+ 					    compute_vectype, reduc_inputs[i]);
+ 	      reduc_inputs[i] = new_temp;
+ 	    }
+ 	  gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
+ 	}
        unsigned nunits = TYPE_VECTOR_SUBPARTS (vectype).to_constant ();
        unsigned nunits1 = nunits;
        if ((mode1 = targetm.vectorize.split_reduction (mode)) != mode
*************** vect_create_epilog_for_reduction (loop_v
*** 5874,5898 ****
  	      gcc_assert (exact_log2 (nunits1) != -1 && nunits1 <= nunits);
  	    }
  	}
!       if (!slp_reduc
! 	  && (mode1 = targetm.vectorize.split_reduction (mode)) != mode)
  	nunits1 = GET_MODE_NUNITS (mode1).to_constant ();
  
!       tree vectype1 = get_related_vectype_for_scalar_type (TYPE_MODE (vectype),
! 							   stype, nunits1);
        reduce_with_shift = have_whole_vector_shift (mode1);
        if (!VECTOR_MODE_P (mode1)
  	  || !directly_supported_p (code, vectype1))
  	reduce_with_shift = false;
  
-       /* First reduce the vector to the desired vector size we should
- 	 do shift reduction on by combining upper and lower halves.  */
-       gimple_seq stmts = NULL;
-       new_temp = vect_create_partial_epilog (reduc_inputs[0], vectype1,
- 					     code, &stmts);
-       gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
-       reduc_inputs[0] = new_temp;
- 
        if (reduce_with_shift && (!slp_reduc || group_size == 1))
  	{
  	  tree bitsize = TYPE_SIZE (TREE_TYPE (vectype1));
--- 5961,5989 ----
  	      gcc_assert (exact_log2 (nunits1) != -1 && nunits1 <= nunits);
  	    }
  	}
!       else if (!slp_reduc
! 	       && (mode1 = targetm.vectorize.split_reduction (mode)) != mode)
  	nunits1 = GET_MODE_NUNITS (mode1).to_constant ();
  
!       tree vectype1 = vectype;
!       if (mode1 != mode)
! 	{
! 	  vectype1 = get_related_vectype_for_scalar_type (TYPE_MODE (vectype),
! 							  stype, nunits1);
! 	  /* First reduce the vector to the desired vector size we should
! 	     do shift reduction on by combining upper and lower halves.  */
! 	  gimple_seq stmts = NULL;
! 	  new_temp = vect_create_partial_epilog (reduc_inputs[0], vectype1,
! 						 code, &stmts);
! 	  gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
! 	  reduc_inputs[0] = new_temp;
! 	}
! 
        reduce_with_shift = have_whole_vector_shift (mode1);
        if (!VECTOR_MODE_P (mode1)
  	  || !directly_supported_p (code, vectype1))
  	reduce_with_shift = false;
  
        if (reduce_with_shift && (!slp_reduc || group_size == 1))
  	{
  	  tree bitsize = TYPE_SIZE (TREE_TYPE (vectype1));
*************** vect_create_epilog_for_reduction (loop_v
*** 5920,5926 ****
  			     "Reduce using vector shifts\n");
  
  	  gimple_seq stmts = NULL;
! 	  new_temp = gimple_convert (&stmts, vectype1, new_temp);
            for (elt_offset = nelements / 2;
                 elt_offset >= 1;
                 elt_offset /= 2)
--- 6011,6017 ----
  			     "Reduce using vector shifts\n");
  
  	  gimple_seq stmts = NULL;
! 	  new_temp = gimple_convert (&stmts, vectype1, reduc_inputs[0]);
            for (elt_offset = nelements / 2;
                 elt_offset >= 1;
                 elt_offset /= 2)
*************** vect_create_epilog_for_reduction (loop_v
*** 5943,5950 ****
  
  	  new_temp = gimple_build (&stmts, BIT_FIELD_REF, TREE_TYPE (vectype1),
  				   new_temp, bitsize, bitsize_zero_node);
! 	  new_temp = gimple_build (&stmts, VIEW_CONVERT_EXPR,
! 				   scalar_type, new_temp);
  	  gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
  	  scalar_results.safe_push (new_temp);
          }
--- 6034,6040 ----
  
  	  new_temp = gimple_build (&stmts, BIT_FIELD_REF, TREE_TYPE (vectype1),
  				   new_temp, bitsize, bitsize_zero_node);
! 	  new_temp = gimple_convert (&stmts, scalar_type, new_temp);
  	  gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT);
  	  scalar_results.safe_push (new_temp);
          }
*************** vect_create_epilog_for_reduction (loop_v
*** 5965,5977 ****
  			     "Reduce using scalar code.\n");
  
  	  tree compute_type = TREE_TYPE (vectype1);
! 	  tree bitsize = TYPE_SIZE (compute_type);
! 	  int vec_size_in_bits = tree_to_uhwi (TYPE_SIZE (vectype1));
! 	  int element_bitsize = tree_to_uhwi (bitsize);
  	  gimple_seq stmts = NULL;
  	  FOR_EACH_VEC_ELT (reduc_inputs, i, vec_temp)
              {
!               int bit_offset;
  	      new_temp = gimple_build (&stmts, BIT_FIELD_REF, compute_type,
  				       vec_temp, bitsize, bitsize_zero_node);
  
--- 6055,6067 ----
  			     "Reduce using scalar code.\n");
  
  	  tree compute_type = TREE_TYPE (vectype1);
! 	  unsigned vec_size_in_bits = tree_to_uhwi (TYPE_SIZE (vectype1));
! 	  unsigned element_bitsize = vector_element_bits (vectype1);
! 	  tree bitsize = bitsize_int (element_bitsize);
  	  gimple_seq stmts = NULL;
  	  FOR_EACH_VEC_ELT (reduc_inputs, i, vec_temp)
              {
! 	      unsigned bit_offset;
  	      new_temp = gimple_build (&stmts, BIT_FIELD_REF, compute_type,
  				       vec_temp, bitsize, bitsize_zero_node);
  
*************** vect_create_epilog_for_reduction (loop_v
*** 6074,6083 ****
  	{
            new_temp = scalar_results[0];
  	  gcc_assert (TREE_CODE (TREE_TYPE (adjustment_def)) != VECTOR_TYPE);
! 	  adjustment_def = gimple_convert (&stmts, TREE_TYPE (vectype),
  					   adjustment_def);
! 	  new_temp = gimple_convert (&stmts, TREE_TYPE (vectype), new_temp);
! 	  new_temp = gimple_build (&stmts, code, TREE_TYPE (vectype),
  				   new_temp, adjustment_def);
  	  new_temp = gimple_convert (&stmts, scalar_type, new_temp);
  	}
--- 6164,6174 ----
  	{
            new_temp = scalar_results[0];
  	  gcc_assert (TREE_CODE (TREE_TYPE (adjustment_def)) != VECTOR_TYPE);
! 	  adjustment_def = gimple_convert (&stmts, TREE_TYPE (compute_vectype),
  					   adjustment_def);
! 	  new_temp = gimple_convert (&stmts, TREE_TYPE (compute_vectype),
! 				     new_temp);
! 	  new_temp = gimple_build (&stmts, code, TREE_TYPE (compute_vectype),
  				   new_temp, adjustment_def);
  	  new_temp = gimple_convert (&stmts, scalar_type, new_temp);
  	}
*************** vectorize_fold_left_reduction (loop_vec_
*** 6312,6338 ****
       would also allow generalizing this for reduction paths of length > 1
       and/or SLP reductions.  */
    slp_tree reduc_node = SLP_TREE_CHILDREN (slp_node)[reduc_index];
!   tree reduc_var = vect_get_slp_scalar_def (reduc_node, 0);
  
    /* The operands either come from a binary operation or an IFN_COND operation.
       The former is a gimple assign with binary rhs and the latter is a
       gimple call with four arguments.  */
    gcc_assert (num_ops == 2 || num_ops == 4);
  
-   int group_size = 1;
-   stmt_vec_info scalar_dest_def_info;
    auto_vec<tree> vec_oprnds0, vec_opmask;
    vect_get_slp_defs (SLP_TREE_CHILDREN (slp_node)[(is_cond_op ? 2 : 0)
  						  + (1 - reduc_index)],
  						  &vec_oprnds0);
-   group_size = SLP_TREE_SCALAR_STMTS (slp_node).length ();
-   scalar_dest_def_info = SLP_TREE_SCALAR_STMTS (slp_node)[group_size - 1];
    /* For an IFN_COND_OP we also need the vector mask operand.  */
    if (is_cond_op)
      vect_get_slp_defs (SLP_TREE_CHILDREN (slp_node)[0], &vec_opmask);
  
!   gimple *sdef = vect_orig_stmt (scalar_dest_def_info)->stmt;
!   tree scalar_dest = gimple_get_lhs (sdef);
    tree scalar_type = TREE_TYPE (scalar_dest);
  
    int vec_num = vec_oprnds0.length ();
--- 6403,6432 ----
       would also allow generalizing this for reduction paths of length > 1
       and/or SLP reductions.  */
    slp_tree reduc_node = SLP_TREE_CHILDREN (slp_node)[reduc_index];
!   stmt_vec_info reduc_var_def = SLP_TREE_SCALAR_STMTS (reduc_node)[0];
!   tree reduc_var = gimple_get_lhs (STMT_VINFO_STMT (reduc_var_def));
  
    /* The operands either come from a binary operation or an IFN_COND operation.
       The former is a gimple assign with binary rhs and the latter is a
       gimple call with four arguments.  */
    gcc_assert (num_ops == 2 || num_ops == 4);
  
    auto_vec<tree> vec_oprnds0, vec_opmask;
    vect_get_slp_defs (SLP_TREE_CHILDREN (slp_node)[(is_cond_op ? 2 : 0)
  						  + (1 - reduc_index)],
  						  &vec_oprnds0);
    /* For an IFN_COND_OP we also need the vector mask operand.  */
    if (is_cond_op)
      vect_get_slp_defs (SLP_TREE_CHILDREN (slp_node)[0], &vec_opmask);
  
!   /* The transform below relies on preserving the original scalar PHI
!      and its latch def which we replace.  So work backwards from there.  */
!   tree scalar_dest
!     = gimple_phi_arg_def_from_edge (as_a <gphi *> (STMT_VINFO_STMT
! 						     (reduc_var_def)),
! 				    loop_latch_edge (loop));
!   stmt_vec_info scalar_dest_def_info
!     = vect_stmt_to_vectorize (loop_vinfo->lookup_def (scalar_dest));
    tree scalar_type = TREE_TYPE (scalar_dest);
  
    int vec_num = vec_oprnds0.length ();
*************** vectorizable_reduction (loop_vec_info lo
*** 7017,7031 ****
    tree vectype_out = SLP_TREE_VECTYPE (slp_for_stmt_info);
    VECT_REDUC_INFO_VECTYPE (reduc_info) = vectype_out;
  
-   /* We do not handle mask reductions correctly in the epilogue.  */
-   if (VECTOR_BOOLEAN_TYPE_P (vectype_out))
-     {
-       if (dump_enabled_p ())
- 	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- 			 "mask reduction not supported.\n");
-       return false;
-     }
- 
    gimple_match_op op;
    if (!gimple_extract_op (stmt_info->stmt, &op))
      gcc_unreachable ();
--- 7111,7116 ----
*************** vectorizable_reduction (loop_vec_info lo
*** 7062,7072 ****
       reduction variable.  */
    slp_tree *slp_op = XALLOCAVEC (slp_tree, op.num_ops);
    tree *vectype_op = XALLOCAVEC (tree, op.num_ops);
!   /* We need to skip an extra operand for COND_EXPRs with embedded
!      comparison.  */
!   unsigned opno_adjust = 0;
!   if (op.code == COND_EXPR && COMPARISON_CLASS_P (op.ops[0]))
!     opno_adjust = 1;
    for (i = 0; i < (int) op.num_ops; i++)
      {
        /* The condition of COND_EXPR is checked in vectorizable_condition().  */
--- 7147,7153 ----
       reduction variable.  */
    slp_tree *slp_op = XALLOCAVEC (slp_tree, op.num_ops);
    tree *vectype_op = XALLOCAVEC (tree, op.num_ops);
!   gcc_assert (op.code != COND_EXPR || !COMPARISON_CLASS_P (op.ops[0]));
    for (i = 0; i < (int) op.num_ops; i++)
      {
        /* The condition of COND_EXPR is checked in vectorizable_condition().  */
*************** vectorizable_reduction (loop_vec_info lo
*** 7076,7082 ****
        stmt_vec_info def_stmt_info;
        enum vect_def_type dt;
        if (!vect_is_simple_use (loop_vinfo, slp_for_stmt_info,
! 			       i + opno_adjust, &op.ops[i], &slp_op[i], &dt,
  			       &vectype_op[i], &def_stmt_info))
  	{
  	  if (dump_enabled_p ())
--- 7157,7163 ----
        stmt_vec_info def_stmt_info;
        enum vect_def_type dt;
        if (!vect_is_simple_use (loop_vinfo, slp_for_stmt_info,
! 			       i, &op.ops[i], &slp_op[i], &dt,
  			       &vectype_op[i], &def_stmt_info))
  	{
  	  if (dump_enabled_p ())
*************** vectorizable_reduction (loop_vec_info lo
*** 7087,7098 ****
  
        /* Skip reduction operands, and for an IFN_COND_OP we might hit the
  	 reduction operand twice (once as definition, once as else).  */
!       if (op.ops[i] == op.ops[STMT_VINFO_REDUC_IDX (stmt_info)])
  	continue;
  
        /* There should be only one cycle def in the stmt, the one
  	 leading to reduc_def.  */
!       if (VECTORIZABLE_CYCLE_DEF (dt))
  	return false;
  
        if (!vectype_op[i])
--- 7168,7181 ----
  
        /* Skip reduction operands, and for an IFN_COND_OP we might hit the
  	 reduction operand twice (once as definition, once as else).  */
!       if (SLP_TREE_CHILDREN (slp_for_stmt_info)[i]
! 	  == SLP_TREE_CHILDREN
! 	       (slp_for_stmt_info)[SLP_TREE_REDUC_IDX (slp_for_stmt_info)])
  	continue;
  
        /* There should be only one cycle def in the stmt, the one
  	 leading to reduc_def.  */
!       if (SLP_TREE_CHILDREN (slp_for_stmt_info)[i]->cycle_info.id != -1)
  	return false;
  
        if (!vectype_op[i])
*************** vectorizable_reduction (loop_vec_info lo
*** 7343,7348 ****
--- 7426,7448 ----
        return false;
      }
  
+   /* See if we can convert a mask vector to a corresponding bool data vector
+      to perform the epilogue reduction.  */
+   tree alt_vectype_out = NULL_TREE;
+   if (VECTOR_BOOLEAN_TYPE_P (vectype_out))
+     {
+       alt_vectype_out
+ 	= get_related_vectype_for_scalar_type (loop_vinfo->vector_mode,
+ 					       TREE_TYPE (vectype_out),
+ 					       TYPE_VECTOR_SUBPARTS
+ 						 (vectype_out));
+       if (!alt_vectype_out
+ 	  || maybe_ne (TYPE_VECTOR_SUBPARTS (alt_vectype_out),
+ 		       TYPE_VECTOR_SUBPARTS (vectype_out))
+ 	  || !expand_vec_cond_expr_p (alt_vectype_out, vectype_out))
+ 	alt_vectype_out = NULL_TREE;
+     }
+ 
    internal_fn reduc_fn = IFN_LAST;
    if (reduction_type == TREE_CODE_REDUCTION
        || reduction_type == FOLD_LEFT_REDUCTION
*************** vectorizable_reduction (loop_vec_info lo
*** 7353,7361 ****
  	  ? fold_left_reduction_fn (orig_code, &reduc_fn)
  	  : reduction_fn_for_scalar_code (orig_code, &reduc_fn))
  	{
! 	  if (reduc_fn != IFN_LAST
! 	      && !direct_internal_fn_supported_p (reduc_fn, vectype_out,
! 						  OPTIMIZE_FOR_SPEED))
  	    {
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 7453,7478 ----
  	  ? fold_left_reduction_fn (orig_code, &reduc_fn)
  	  : reduction_fn_for_scalar_code (orig_code, &reduc_fn))
  	{
! 	  internal_fn sbool_fn = IFN_LAST;
! 	  if (reduc_fn == IFN_LAST)
! 	    ;
! 	  else if ((!VECTOR_BOOLEAN_TYPE_P (vectype_out)
! 		    || (GET_MODE_CLASS (TYPE_MODE (vectype_out))
! 			== MODE_VECTOR_BOOL))
! 		   && direct_internal_fn_supported_p (reduc_fn, vectype_out,
! 						      OPTIMIZE_FOR_SPEED))
! 	    ;
! 	  else if (VECTOR_BOOLEAN_TYPE_P (vectype_out)
! 		   && sbool_reduction_fn_for_fn (reduc_fn, &sbool_fn)
! 		   && direct_internal_fn_supported_p (sbool_fn, vectype_out,
! 						      OPTIMIZE_FOR_SPEED))
! 	    reduc_fn = sbool_fn;
! 	  else if (reduction_type != FOLD_LEFT_REDUCTION
! 		   && alt_vectype_out
! 		   && direct_internal_fn_supported_p (reduc_fn, alt_vectype_out,
! 						      OPTIMIZE_FOR_SPEED))
! 	    VECT_REDUC_INFO_VECTYPE_FOR_MASK (reduc_info) = alt_vectype_out;
! 	  else
  	    {
  	      if (dump_enabled_p ())
  		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_reduction (loop_vec_info lo
*** 7372,7377 ****
--- 7489,7507 ----
  
  	  return false;
  	}
+       if (reduc_fn == IFN_LAST
+ 	  && VECTOR_BOOLEAN_TYPE_P (vectype_out))
+ 	{
+ 	  if (!alt_vectype_out)
+ 	    {
+ 	      if (dump_enabled_p ())
+ 		dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ 				 "cannot turn mask into bool data vector for "
+ 				 "reduction epilogue.\n");
+ 	      return false;
+ 	    }
+ 	  VECT_REDUC_INFO_VECTYPE_FOR_MASK (reduc_info) = alt_vectype_out;
+ 	}
      }
    else if (reduction_type == COND_REDUCTION)
      {
*************** vectorizable_reduction (loop_vec_info lo
*** 7447,7452 ****
--- 7577,7584 ----
       values into the low-numbered elements.  */
    if ((double_reduc || neutral_op)
        && !nunits_out.is_constant ()
+       && (SLP_TREE_LANES (slp_node) != 1 && !reduc_chain)
+       && !operand_equal_p (neutral_op, vect_phi_initial_value (reduc_def_phi))
        && !direct_internal_fn_supported_p (IFN_VEC_SHL_INSERT,
  					  vectype_out, OPTIMIZE_FOR_SPEED))
      {
*************** vect_transform_cycle_phi (loop_vec_info
*** 8093,8098 ****
--- 8225,8234 ----
      /* Leave the scalar phi in place.  */
      return true;
  
+   if (reduc_info && reduc_info->is_reduc_chain && dump_enabled_p ())
+     dump_printf_loc (MSG_NOTE, vect_location,
+ 		     "vectorizing a reduction chain\n");
+ 
    vec_num = vect_get_num_copies (loop_vinfo, slp_node);
  
    /* Check whether we should use a single PHI node and accumulate
diff -Nrcpad gcc-16-20251019/gcc/tree-vect-patterns.cc gcc-16-20251026/gcc/tree-vect-patterns.cc
*** gcc-16-20251019/gcc/tree-vect-patterns.cc	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/tree-vect-patterns.cc	Sun Oct 26 22:33:04 2025
*************** possible_vector_mask_operation_p (stmt_v
*** 7157,7169 ****
  
  /* If STMT_INFO sets a boolean SSA_NAME, see whether we should use
     a vector mask type instead of a normal vector type.  Record the
!    result in STMT_INFO->mask_precision.  */
  
! static void
  vect_determine_mask_precision (vec_info *vinfo, stmt_vec_info stmt_info)
  {
    if (!possible_vector_mask_operation_p (stmt_info))
!     return;
  
    /* If at least one boolean input uses a vector mask type,
       pick the mask type with the narrowest elements.
--- 7157,7170 ----
  
  /* If STMT_INFO sets a boolean SSA_NAME, see whether we should use
     a vector mask type instead of a normal vector type.  Record the
!    result in STMT_INFO->mask_precision.  Returns true when the
!    precision changed.  */
  
! static bool
  vect_determine_mask_precision (vec_info *vinfo, stmt_vec_info stmt_info)
  {
    if (!possible_vector_mask_operation_p (stmt_info))
!     return false;
  
    /* If at least one boolean input uses a vector mask type,
       pick the mask type with the narrowest elements.
*************** vect_determine_mask_precision (vec_info
*** 7245,7252 ****
  	  scalar_mode mode;
  	  tree vectype, mask_type;
  	  if (is_a <scalar_mode> (TYPE_MODE (op0_type), &mode)
! 	      && (vectype = get_vectype_for_scalar_type (vinfo, op0_type))
! 	      && (mask_type = get_mask_type_for_scalar_type (vinfo, op0_type))
  	      && expand_vec_cmp_expr_p (vectype, mask_type, code))
  	    precision = GET_MODE_BITSIZE (mode);
  	}
--- 7246,7256 ----
  	  scalar_mode mode;
  	  tree vectype, mask_type;
  	  if (is_a <scalar_mode> (TYPE_MODE (op0_type), &mode)
! 	      /* Do not allow this to set vinfo->vector_mode, this might
! 		 disrupt the result for the next iteration.  */
! 	      && (vectype = get_related_vectype_for_scalar_type
! 						(vinfo->vector_mode, op0_type))
! 	      && (mask_type = truth_type_for (vectype))
  	      && expand_vec_cmp_expr_p (vectype, mask_type, code))
  	    precision = GET_MODE_BITSIZE (mode);
  	}
*************** vect_determine_mask_precision (vec_info
*** 7272,7290 ****
  	}
      }
  
!   if (dump_enabled_p ())
      {
!       if (precision == ~0U)
! 	dump_printf_loc (MSG_NOTE, vect_location,
! 			 "using normal nonmask vectors for %G",
! 			 stmt_info->stmt);
!       else
! 	dump_printf_loc (MSG_NOTE, vect_location,
! 			 "using boolean precision %d for %G",
! 			 precision, stmt_info->stmt);
!     }
  
!   stmt_info->mask_precision = precision;
  }
  
  /* Handle vect_determine_precisions for STMT_INFO, given that we
--- 7276,7305 ----
  	}
      }
  
!   if (stmt_info->mask_precision != precision)
      {
!       if (dump_enabled_p ())
! 	{
! 	  if (precision == ~0U)
! 	    dump_printf_loc (MSG_NOTE, vect_location,
! 			     "using normal nonmask vectors for %G",
! 			     stmt_info->stmt);
! 	  else
! 	    dump_printf_loc (MSG_NOTE, vect_location,
! 			     "using boolean precision %d for %G",
! 			     precision, stmt_info->stmt);
! 	}
  
!       /* ???  We'd like to assert stmt_info->mask_precision == 0
! 	 || stmt_info->mask_precision > precision, thus that we only
! 	 decrease mask precisions throughout iteration, but the
! 	 tcc_comparison handling above means for comparisons of bools
! 	 we start with 8 but might increase in case the bools get mask
! 	 precision on their own.  */
!       stmt_info->mask_precision = precision;
!       return true;
!     }
!   return false;
  }
  
  /* Handle vect_determine_precisions for STMT_INFO, given that we
*************** vect_determine_precisions (vec_info *vin
*** 7317,7338 ****
  
    DUMP_VECT_SCOPE ("vect_determine_precisions");
  
!   for (unsigned int i = 0; i < nbbs; i++)
      {
!       basic_block bb = bbs[i];
!       for (auto gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
! 	{
! 	  stmt_vec_info stmt_info = vinfo->lookup_stmt (gsi.phi ());
! 	  if (stmt_info && STMT_VINFO_VECTORIZABLE (stmt_info))
! 	    vect_determine_mask_precision (vinfo, stmt_info);
! 	}
!       for (auto gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
  	{
! 	  stmt_vec_info stmt_info = vinfo->lookup_stmt (gsi_stmt (gsi));
! 	  if (stmt_info && STMT_VINFO_VECTORIZABLE (stmt_info))
! 	    vect_determine_mask_precision (vinfo, stmt_info);
  	}
      }
    for (unsigned int i = 0; i < nbbs; i++)
      {
        basic_block bb = bbs[nbbs - i - 1];
--- 7332,7364 ----
  
    DUMP_VECT_SCOPE ("vect_determine_precisions");
  
!   /* For mask precisions we have to iterate since otherwise we do not
!      get reduction PHI precision correct.  For now do this only for
!      loop vectorization.  */
!   bool changed;
!   do
      {
!       changed = false;
!       for (unsigned int i = 0; i < nbbs; i++)
  	{
! 	  basic_block bb = bbs[i];
! 	  for (auto gsi = gsi_start_phis (bb);
! 	       !gsi_end_p (gsi); gsi_next (&gsi))
! 	    {
! 	      stmt_vec_info stmt_info = vinfo->lookup_stmt (gsi.phi ());
! 	      if (stmt_info && STMT_VINFO_VECTORIZABLE (stmt_info))
! 		changed |= vect_determine_mask_precision (vinfo, stmt_info);
! 	    }
! 	  for (auto gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
! 	    {
! 	      stmt_vec_info stmt_info = vinfo->lookup_stmt (gsi_stmt (gsi));
! 	      if (stmt_info && STMT_VINFO_VECTORIZABLE (stmt_info))
! 		changed |= vect_determine_mask_precision (vinfo, stmt_info);
! 	    }
  	}
      }
+   while (changed && is_a <loop_vec_info> (vinfo));
+ 
    for (unsigned int i = 0; i < nbbs; i++)
      {
        basic_block bb = bbs[nbbs - i - 1];
diff -Nrcpad gcc-16-20251019/gcc/tree-vect-slp.cc gcc-16-20251026/gcc/tree-vect-slp.cc
*** gcc-16-20251019/gcc/tree-vect-slp.cc	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/tree-vect-slp.cc	Sun Oct 26 22:33:04 2025
*************** vect_analyze_slp_reduc_chain (loop_vec_i
*** 4230,4238 ****
        first = false;
      }
    while (!is_a <gphi *> (STMT_VINFO_STMT (next_stmt)));
!   if (fail || scalar_stmts.length () <= 1)
      return false;
  
    scalar_stmts.reverse ();
    stmt_vec_info reduc_phi_info = next_stmt;
  
--- 4230,4473 ----
        first = false;
      }
    while (!is_a <gphi *> (STMT_VINFO_STMT (next_stmt)));
!   if (fail)
      return false;
  
+   /* Remember a stmt with the actual reduction operation.  */
+   stmt_vec_info reduc_scalar_stmt = scalar_stmts[0];
+ 
+   /* When the SSA def chain through reduc-idx does not form a natural
+      reduction chain try to linearize an associative operation manually.  */
+   if (scalar_stmts.length () == 1
+       && code.is_tree_code ()
+       && associative_tree_code ((tree_code)code)
+       /* We may not associate if a fold-left reduction is required.  */
+       && !needs_fold_left_reduction_p (TREE_TYPE (gimple_get_lhs
+ 						    (reduc_scalar_stmt->stmt)),
+ 				       code))
+     {
+       auto_vec<chain_op_t> chain;
+       auto_vec<std::pair<tree_code, gimple *> > worklist;
+       gimple *op_stmt = NULL, *other_op_stmt = NULL;
+       vect_slp_linearize_chain (vinfo, worklist, chain, (tree_code)code,
+ 				scalar_stmts[0]->stmt, op_stmt, other_op_stmt,
+ 				NULL);
+ 
+       scalar_stmts.truncate (0);
+       stmt_vec_info tail = NULL;
+       for (auto el : chain)
+ 	{
+ 	  if (el.dt == vect_external_def
+ 	      || el.dt == vect_constant_def
+ 	      || el.code != (tree_code) code)
+ 	    {
+ 	      scalar_stmts.release ();
+ 	      return false;
+ 	    }
+ 	  stmt_vec_info stmt = vinfo->lookup_def (el.op);
+ 	  if (STMT_VINFO_REDUC_IDX (stmt) != -1
+ 	      || STMT_VINFO_REDUC_DEF (stmt))
+ 	    {
+ 	      gcc_assert (tail == NULL);
+ 	      tail = stmt;
+ 	      continue;
+ 	    }
+ 	  scalar_stmts.safe_push (stmt);
+ 	}
+       gcc_assert (tail);
+ 
+       /* When this linearization didn't produce a chain see if stripping
+ 	 a wrapping sign conversion produces one.  */
+       if (scalar_stmts.length () == 1)
+ 	{
+ 	  gimple *stmt = scalar_stmts[0]->stmt;
+ 	  if (!is_gimple_assign (stmt)
+ 	      || !CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (stmt))
+ 	      || TREE_CODE (gimple_assign_rhs1 (stmt)) != SSA_NAME
+ 	      || !tree_nop_conversion_p (TREE_TYPE (gimple_assign_lhs (stmt)),
+ 					 TREE_TYPE (gimple_assign_rhs1 (stmt))))
+ 	    {
+ 	      scalar_stmts.release ();
+ 	      return false;
+ 	    }
+ 	  stmt = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt));
+ 	  if (!is_gimple_assign (stmt)
+ 	      || gimple_assign_rhs_code (stmt) != (tree_code)code)
+ 	    {
+ 	      scalar_stmts.release ();
+ 	      return false;
+ 	    }
+ 	  chain.truncate (0);
+ 	  vect_slp_linearize_chain (vinfo, worklist, chain, (tree_code)code,
+ 				    stmt, op_stmt, other_op_stmt, NULL);
+ 
+ 	  scalar_stmts.truncate (0);
+ 	  tail = NULL;
+ 	  for (auto el : chain)
+ 	    {
+ 	      if (el.dt == vect_external_def
+ 		  || el.dt == vect_constant_def
+ 		  || el.code != (tree_code) code)
+ 		{
+ 		  scalar_stmts.release ();
+ 		  return false;
+ 		}
+ 	      stmt_vec_info stmt = vinfo->lookup_def (el.op);
+ 	      if (STMT_VINFO_REDUC_IDX (stmt) != -1
+ 		  || STMT_VINFO_REDUC_DEF (stmt))
+ 		{
+ 		  gcc_assert (tail == NULL);
+ 		  tail = stmt;
+ 		  continue;
+ 		}
+ 	      scalar_stmts.safe_push (stmt);
+ 	    }
+ 	  /* Unlike the above this does not include the reduction SSA
+ 	     cycle.  */
+ 	  gcc_assert (!tail);
+ 	}
+ 
+       if (scalar_stmts.length () < 2)
+ 	{
+ 	  scalar_stmts.release ();
+ 	  return false;
+ 	}
+ 
+       if (dump_enabled_p ())
+ 	{
+ 	  dump_printf_loc (MSG_NOTE, vect_location,
+ 			   "Starting SLP discovery of reduction chain for\n");
+ 	  for (unsigned i = 0; i < scalar_stmts.length (); ++i)
+ 	    dump_printf_loc (MSG_NOTE, vect_location,
+ 			     "  %G", scalar_stmts[i]->stmt);
+ 	}
+ 
+       unsigned int group_size = scalar_stmts.length ();
+       bool *matches = XALLOCAVEC (bool, group_size);
+       poly_uint64 max_nunits = 1;
+       unsigned tree_size = 0;
+       slp_tree node = vect_build_slp_tree (vinfo, scalar_stmts, group_size,
+ 					   &max_nunits, matches, limit,
+ 					   &tree_size, bst_map);
+       if (!node)
+ 	{
+ 	  scalar_stmts.release ();
+ 	  return false;
+ 	}
+ 
+       unsigned cycle_id = vinfo->reduc_infos.length ();
+       vect_reduc_info reduc_info = new vect_reduc_info_s ();
+       vinfo->reduc_infos.safe_push (reduc_info);
+       VECT_REDUC_INFO_DEF_TYPE (reduc_info) = STMT_VINFO_DEF_TYPE (next_stmt);
+       VECT_REDUC_INFO_TYPE (reduc_info) = STMT_VINFO_REDUC_TYPE (next_stmt);
+       VECT_REDUC_INFO_CODE (reduc_info) = STMT_VINFO_REDUC_CODE (next_stmt);
+       VECT_REDUC_INFO_FN (reduc_info) = IFN_LAST;
+       reduc_info->is_reduc_chain = true;
+ 
+       /* Build the node for the PHI and possibly the conversions.  */
+       slp_tree phis = vect_create_new_slp_node (2, ERROR_MARK);
+       SLP_TREE_REPRESENTATIVE (phis) = next_stmt;
+       phis->cycle_info.id = cycle_id;
+       SLP_TREE_LANES (phis) = group_size;
+       if (reduc_scalar_stmt == scalar_stmt)
+ 	SLP_TREE_VECTYPE (phis) = SLP_TREE_VECTYPE (node);
+       else
+ 	SLP_TREE_VECTYPE (phis)
+ 	  = signed_or_unsigned_type_for (TYPE_UNSIGNED
+ 					   (TREE_TYPE (gimple_get_lhs
+ 							 (scalar_stmt->stmt))),
+ 					 SLP_TREE_VECTYPE (node));
+       /* ???  vect_cse_slp_nodes cannot cope with cycles without any
+ 	 SLP_TREE_SCALAR_STMTS.  */
+       SLP_TREE_SCALAR_STMTS (phis).create (group_size);
+       for (unsigned i = 0; i < group_size; ++i)
+ 	SLP_TREE_SCALAR_STMTS (phis).quick_push (next_stmt);
+ 
+       slp_tree op_input = phis;
+       if (reduc_scalar_stmt != scalar_stmt)
+ 	{
+ 	  slp_tree conv = vect_create_new_slp_node (1, ERROR_MARK);
+ 	  SLP_TREE_REPRESENTATIVE (conv)
+ 	    = vinfo->lookup_def (gimple_arg (reduc_scalar_stmt->stmt,
+ 					     STMT_VINFO_REDUC_IDX
+ 					       (reduc_scalar_stmt)));
+ 	  SLP_TREE_CHILDREN (conv).quick_push (phis);
+ 	  conv->cycle_info.id = cycle_id;
+ 	  SLP_TREE_REDUC_IDX (conv) = 0;
+ 	  SLP_TREE_LANES (conv) = group_size;
+ 	  SLP_TREE_VECTYPE (conv) = SLP_TREE_VECTYPE (node);
+ 	  SLP_TREE_SCALAR_STMTS (conv) = vNULL;
+ 	  op_input = conv;
+ 	}
+ 
+       slp_tree reduc = vect_create_new_slp_node (2, ERROR_MARK);
+       SLP_TREE_REPRESENTATIVE (reduc) = reduc_scalar_stmt;
+       SLP_TREE_CHILDREN (reduc).quick_push (op_input);
+       SLP_TREE_CHILDREN (reduc).quick_push (node);
+       reduc->cycle_info.id = cycle_id;
+       SLP_TREE_REDUC_IDX (reduc) = 0;
+       SLP_TREE_LANES (reduc) = group_size;
+       SLP_TREE_VECTYPE (reduc) = SLP_TREE_VECTYPE (node);
+       /* ???  For the reduction epilogue we need a live lane.  */
+       SLP_TREE_SCALAR_STMTS (reduc).create (group_size);
+       SLP_TREE_SCALAR_STMTS (reduc).quick_push (reduc_scalar_stmt);
+       for (unsigned i = 1; i < group_size; ++i)
+ 	SLP_TREE_SCALAR_STMTS (reduc).quick_push (NULL);
+ 
+       if (reduc_scalar_stmt != scalar_stmt)
+ 	{
+ 	  slp_tree conv = vect_create_new_slp_node (1, ERROR_MARK);
+ 	  SLP_TREE_REPRESENTATIVE (conv) = scalar_stmt;
+ 	  SLP_TREE_CHILDREN (conv).quick_push (reduc);
+ 	  conv->cycle_info.id = cycle_id;
+ 	  SLP_TREE_REDUC_IDX (conv) = 0;
+ 	  SLP_TREE_LANES (conv) = group_size;
+ 	  SLP_TREE_VECTYPE (conv) = SLP_TREE_VECTYPE (phis);
+ 	  /* ???  For the reduction epilogue we need a live lane.  */
+ 	  SLP_TREE_SCALAR_STMTS (conv).create (group_size);
+ 	  SLP_TREE_SCALAR_STMTS (conv).quick_push (scalar_stmt);
+ 	  for (unsigned i = 1; i < group_size; ++i)
+ 	    SLP_TREE_SCALAR_STMTS (conv).quick_push (NULL);
+ 	  reduc = conv;
+ 	}
+ 
+       edge le = loop_latch_edge (LOOP_VINFO_LOOP (vinfo));
+       SLP_TREE_CHILDREN (phis).quick_push (NULL);
+       SLP_TREE_CHILDREN (phis).quick_push (NULL);
+       SLP_TREE_CHILDREN (phis)[le->dest_idx] = reduc;
+       SLP_TREE_REF_COUNT (reduc)++;
+ 
+       /* Create a new SLP instance.  */
+       slp_instance new_instance = XNEW (class _slp_instance);
+       SLP_INSTANCE_TREE (new_instance) = reduc;
+       SLP_INSTANCE_LOADS (new_instance) = vNULL;
+       SLP_INSTANCE_ROOT_STMTS (new_instance) = vNULL;
+       SLP_INSTANCE_REMAIN_DEFS (new_instance) = vNULL;
+       SLP_INSTANCE_KIND (new_instance) = slp_inst_kind_reduc_chain;
+       new_instance->reduc_phis = NULL;
+       new_instance->cost_vec = vNULL;
+       new_instance->subgraph_entries = vNULL;
+ 
+       vinfo->slp_instances.safe_push (new_instance);
+ 
+       if (dump_enabled_p ())
+ 	{
+ 	  dump_printf_loc (MSG_NOTE, vect_location,
+ 			   "Final SLP tree for instance %p:\n",
+ 			   (void *) new_instance);
+ 	  vect_print_slp_graph (MSG_NOTE, vect_location,
+ 				SLP_INSTANCE_TREE (new_instance));
+ 	}
+ 
+       return true;
+     }
+ 
+   if (scalar_stmts.length () <= 1)
+     {
+       scalar_stmts.release ();
+       return false;
+     }
+ 
    scalar_stmts.reverse ();
    stmt_vec_info reduc_phi_info = next_stmt;
  
*************** vect_make_slp_decision (loop_vec_info lo
*** 7980,7986 ****
  	decided_to_slp++;
      }
  
!   LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo) = unrolling_factor;
  
    if (decided_to_slp && dump_enabled_p ())
      {
--- 8215,8221 ----
  	decided_to_slp++;
      }
  
!   LOOP_VINFO_VECT_FACTOR (loop_vinfo) = unrolling_factor;
  
    if (decided_to_slp && dump_enabled_p ())
      {
*************** vect_schedule_slp (vec_info *vinfo, cons
*** 12046,12052 ****
        /* Remove vectorized stores original scalar stmts.  */
        for (j = 0; SLP_TREE_SCALAR_STMTS (root).iterate (j, &store_info); j++)
          {
! 	  if (!STMT_VINFO_DATA_REF (store_info)
  	      || !DR_IS_WRITE (STMT_VINFO_DATA_REF (store_info)))
  	    break;
  
--- 12281,12288 ----
        /* Remove vectorized stores original scalar stmts.  */
        for (j = 0; SLP_TREE_SCALAR_STMTS (root).iterate (j, &store_info); j++)
          {
! 	  if (!store_info
! 	      || !STMT_VINFO_DATA_REF (store_info)
  	      || !DR_IS_WRITE (STMT_VINFO_DATA_REF (store_info)))
  	    break;
  
diff -Nrcpad gcc-16-20251019/gcc/tree-vectorizer.h gcc-16-20251026/gcc/tree-vectorizer.h
*** gcc-16-20251019/gcc/tree-vectorizer.h	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/tree-vectorizer.h	Sun Oct 26 22:33:04 2025
*************** public:
*** 855,860 ****
--- 855,864 ----
    /* The vector type for performing the actual reduction operation.  */
    tree reduc_vectype;
  
+   /* The vector type we should use for the final reduction in the epilogue
+      when we reduce a mask.  */
+   tree reduc_vectype_for_mask;
+ 
    /* For INTEGER_INDUC_COND_REDUCTION, the initial value to be used.  */
    tree induc_cond_initial_val;
  
*************** typedef class vect_reduc_info_s *vect_re
*** 888,893 ****
--- 892,898 ----
  #define VECT_REDUC_INFO_INDUC_COND_INITIAL_VAL(I) ((I)->induc_cond_initial_val)
  #define VECT_REDUC_INFO_EPILOGUE_ADJUSTMENT(I) ((I)->reduc_epilogue_adjustment)
  #define VECT_REDUC_INFO_VECTYPE(I) ((I)->reduc_vectype)
+ #define VECT_REDUC_INFO_VECTYPE_FOR_MASK(I) ((I)->reduc_vectype_for_mask)
  #define VECT_REDUC_INFO_FORCE_SINGLE_CYCLE(I) ((I)->force_single_cycle)
  #define VECT_REDUC_INFO_RESULT_POS(I) ((I)->reduc_result_pos)
  
*************** public:
*** 940,946 ****
       used.  */
    poly_uint64 versioning_threshold;
  
!   /* Unrolling factor  */
    poly_uint64 vectorization_factor;
  
    /* If this loop is an epilogue loop whose main loop can be skipped,
--- 945,952 ----
       used.  */
    poly_uint64 versioning_threshold;
  
!   /* Unrolling factor.  In case of suitable super-word parallelism
!      it can be that no unrolling is needed, and thus this is 1.  */
    poly_uint64 vectorization_factor;
  
    /* If this loop is an epilogue loop whose main loop can be skipped,
*************** public:
*** 1085,1094 ****
       rhs of the store of the initializer.  */
    hash_map<tree, tree> *scan_map;
  
-   /* The unrolling factor needed to SLP the loop. In case of that pure SLP is
-      applied to the loop, i.e., no unrolling is needed, this is 1.  */
-   poly_uint64 slp_unrolling_factor;
- 
    /* The factor used to over weight those statements in an inner loop
       relative to the loop being vectorized.  */
    unsigned int inner_loop_cost_factor;
--- 1091,1096 ----
*************** public:
*** 1289,1295 ****
  #define LOOP_VINFO_USER_UNROLL(L)          (L)->user_unroll
  #define LOOP_VINFO_GROUPED_STORES(L)       (L)->grouped_stores
  #define LOOP_VINFO_SLP_INSTANCES(L)        (L)->slp_instances
- #define LOOP_VINFO_SLP_UNROLLING_FACTOR(L) (L)->slp_unrolling_factor
  #define LOOP_VINFO_REDUCTIONS(L)           (L)->reductions
  #define LOOP_VINFO_PEELING_FOR_GAPS(L)     (L)->peeling_for_gaps
  #define LOOP_VINFO_PEELING_FOR_NITER(L)    (L)->peeling_for_niter
--- 1291,1296 ----
*************** dr_safe_speculative_read_required (stmt_
*** 2142,2148 ****
    return dr_info->safe_speculative_read_required;
  }
  
! /* Set the safe_speculative_read_required for the the stmt_vec_info, if group
     access then set on the fist element otherwise set on DR directly.  */
  inline void
  dr_set_safe_speculative_read_required (stmt_vec_info stmt_info,
--- 2143,2149 ----
    return dr_info->safe_speculative_read_required;
  }
  
! /* Set the safe_speculative_read_required for the stmt_vec_info, if group
     access then set on the fist element otherwise set on DR directly.  */
  inline void
  dr_set_safe_speculative_read_required (stmt_vec_info stmt_info,
diff -Nrcpad gcc-16-20251019/gcc/value-range-storage.h gcc-16-20251026/gcc/value-range-storage.h
*** gcc-16-20251019/gcc/value-range-storage.h	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/value-range-storage.h	Sun Oct 26 22:33:04 2025
*************** private:
*** 87,93 ****
  
    enum value_range_kind m_kind : 3;
  
!   // The length of this is m_num_ranges * 2 + 2 to accomodate the bitmask.
    HOST_WIDE_INT m_val[1];
  
    // Another variable-length part of the structure following the HWIs.
--- 87,93 ----
  
    enum value_range_kind m_kind : 3;
  
!   // The length of this is m_num_ranges * 2 + 2 to accommodate the bitmask.
    HOST_WIDE_INT m_val[1];
  
    // Another variable-length part of the structure following the HWIs.
diff -Nrcpad gcc-16-20251019/gcc/wide-int.h gcc-16-20251026/gcc/wide-int.h
*** gcc-16-20251019/gcc/wide-int.h	Sun Oct 19 22:32:39 2025
--- gcc-16-20251026/gcc/wide-int.h	Sun Oct 26 22:33:04 2025
*************** along with GCC; see the file COPYING3.
*** 235,241 ****
  
  /* The MAX_BITSIZE_MODE_ANY_INT is automatically generated by a very
     early examination of the target's mode file.  The WIDE_INT_MAX_INL_ELTS
!    can accomodate at least 1 more bit so that unsigned numbers of that
     mode can be represented as a signed value.  Note that it is still
     possible to create fixed_wide_ints that have precisions greater than
     MAX_BITSIZE_MODE_ANY_INT.  This can be useful when representing a
--- 235,241 ----
  
  /* The MAX_BITSIZE_MODE_ANY_INT is automatically generated by a very
     early examination of the target's mode file.  The WIDE_INT_MAX_INL_ELTS
!    can accommodate at least 1 more bit so that unsigned numbers of that
     mode can be represented as a signed value.  Note that it is still
     possible to create fixed_wide_ints that have precisions greater than
     MAX_BITSIZE_MODE_ANY_INT.  This can be useful when representing a
diff -Nrcpad gcc-16-20251019/libgcc/ChangeLog gcc-16-20251026/libgcc/ChangeLog
*** gcc-16-20251019/libgcc/ChangeLog	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcc/ChangeLog	Sun Oct 26 22:33:05 2025
***************
*** 1,3 ****
--- 1,29 ----
+ 2025-10-25  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/t-vxworks (LIBGCC2_INCLUDES): Replace $(VSB_DIR)
+ 	by sysroot references.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 	    Ashley Gay  <gay@adacore.com>
+ 
+ 	* config/gthr-vxworks.h: Include stdatomic.h and prevent indirect
+ 	inclusion of contents from the system version of that header.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/gthr-vxworks-thread.c (__init_gthread_tcb): Make static.
+ 	(__delete_gthread_tcb): Likewise.
+ 	(__task_wrapper): Likewise.
+ 	(__gthread_create): Convert __task_wrapper to (void *) before going
+ 	to (FUNCPTR).
+ 	* config/gthr-vxworks-tls.c (tls_delete_hook): Accommodate prototype
+ 	variations between kernel and rtp. Return STATUS.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/t-vxworks: -include vxworks-predef.h explicitly, as the
+ 	automatic inclusion is disabled by -nostdinc.
+ 
  2025-10-07  H.J. Lu  <hjl.tools@gmail.com>
  
  	PR target/120691
diff -Nrcpad gcc-16-20251019/libgcc/config/gthr-vxworks-thread.c gcc-16-20251026/libgcc/config/gthr-vxworks-thread.c
*** gcc-16-20251019/libgcc/config/gthr-vxworks-thread.c	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcc/config/gthr-vxworks-thread.c	Sun Oct 26 22:33:05 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 29,34 ****
--- 29,36 ----
  
  #include "gthr.h"
  
+ typedef STATUS (* ENTRYPTR) (int);
+ 
  #if __GTHREADS_CXX0X
  
  #include <taskLib.h>
*************** __gthread_recursive_mutex_timedlock (__g
*** 189,195 ****
  
  /* Task control block initialization and destruction functions.  */
  
! int
  __init_gthread_tcb (__gthread_t __tcb)
  {
    if (!__tcb)
--- 191,197 ----
  
  /* Task control block initialization and destruction functions.  */
  
! static int
  __init_gthread_tcb (__gthread_t __tcb)
  {
    if (!__tcb)
*************** return_sem_delete:
*** 222,228 ****
  
  /* Here, we pass a pointer to a tcb to allow calls from
     cleanup attributes.  */
! void
  __delete_gthread_tcb (__gthread_t* __tcb)
  {
    semDelete ((*__tcb)->return_value_available);
--- 224,230 ----
  
  /* Here, we pass a pointer to a tcb to allow calls from
     cleanup attributes.  */
! static void
  __delete_gthread_tcb (__gthread_t* __tcb)
  {
    semDelete ((*__tcb)->return_value_available);
*************** __gthread_self (void)
*** 256,263 ****
    return __local_tcb;
  }
  
! int
! __task_wrapper (__gthread_t tcb, FUNCPTR __func, _Vx_usr_arg_t __args)
  {
    if (!tcb)
      return ERROR;
--- 258,265 ----
    return __local_tcb;
  }
  
! static int
! __task_wrapper (__gthread_t tcb, ENTRYPTR __func, _Vx_usr_arg_t __args)
  {
    if (!tcb)
      return ERROR;
*************** __gthread_create (__gthread_t * __thread
*** 322,328 ****
  
    TASK_ID task_id = taskCreate (NULL,
  				priority, options, stacksize,
! 				(FUNCPTR) & __task_wrapper,
  				(_Vx_usr_arg_t) tcb,
  				(_Vx_usr_arg_t) __func,
  				(_Vx_usr_arg_t) __args,
--- 324,330 ----
  
    TASK_ID task_id = taskCreate (NULL,
  				priority, options, stacksize,
! 				(FUNCPTR) (void *) __task_wrapper,
  				(_Vx_usr_arg_t) tcb,
  				(_Vx_usr_arg_t) __func,
  				(_Vx_usr_arg_t) __args,
diff -Nrcpad gcc-16-20251019/libgcc/config/gthr-vxworks-tls.c gcc-16-20251026/libgcc/config/gthr-vxworks-tls.c
*** gcc-16-20251019/libgcc/config/gthr-vxworks-tls.c	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcc/config/gthr-vxworks-tls.c	Sun Oct 26 22:33:05 2025
*************** static __gthread_once_t tls_init_guard =
*** 168,174 ****
  
  /* Internal routines.  */
  
! /* The task TCB has just been deleted.  Call the destructor
     function for each TLS key that has both a destructor and
     a non-NULL specific value in this thread.
  
--- 168,189 ----
  
  /* Internal routines.  */
  
! /* The task deletion hooks for TLS handling have different prototypes
!    for kernel or rtp modes.  The RTP variant expects a TCB argument, which,
!    fortunately, we don't need to use.  */
! 
! #ifdef __RTP__
! #define TLS_DELETE_HOOK_ARG_DECL TASK_ID tcb ATTRIBUTE_UNUSED
! #define TLS_DELETE_HOOK_ARG NULL
! #else
! #define TLS_DELETE_HOOK_ARG_DECL void
! #define TLS_DELETE_HOOK_ARG
! #endif
! 
! STATUS tls_delete_hook (TLS_DELETE_HOOK_ARG_DECL);
! 
! 
! /* A task has just been deleted.  Call the destructor
     function for each TLS key that has both a destructor and
     a non-NULL specific value in this thread.
  
*************** static __gthread_once_t tls_init_guard =
*** 176,183 ****
     count protects us from calling a stale destructor.  It does
     need to read tls_keys.dtor[key] atomically.  */
  
! void
! tls_delete_hook (void *tcb ATTRIBUTE_UNUSED)
  {
    struct tls_data *data;
    __gthread_key_t key;
--- 191,198 ----
     count protects us from calling a stale destructor.  It does
     need to read tls_keys.dtor[key] atomically.  */
  
! STATUS
! tls_delete_hook (TLS_DELETE_HOOK_ARG_DECL)
  {
    struct tls_data *data;
    __gthread_key_t key;
*************** tls_delete_hook (void *tcb ATTRIBUTE_UNU
*** 202,207 ****
--- 217,224 ----
        VX_LEAVE_TLS_DTOR();
        VX_SET_TLS_DATA(NULL);
      }
+ 
+   return OK;
  }
  
  /* Initialize global data used by the TLS system.  */
*************** tls_destructor (void)
*** 217,227 ****
  {
  #ifdef __RTP__
    /* All threads but this one should have exited by now.  */
!   tls_delete_hook (NULL);
  #endif
    /* Unregister the hook.  */
    if (delete_hook_installed)
!     taskDeleteHookDelete ((FUNCPTR)tls_delete_hook);
  
    if (tls_init_guard.done && __gthread_mutex_lock (&tls_lock) != ERROR)
      semDelete (tls_lock);
--- 234,244 ----
  {
  #ifdef __RTP__
    /* All threads but this one should have exited by now.  */
!   tls_delete_hook (TLS_DELETE_HOOK_ARG);
  #endif
    /* Unregister the hook.  */
    if (delete_hook_installed)
!     taskDeleteHookDelete (tls_delete_hook);
  
    if (tls_init_guard.done && __gthread_mutex_lock (&tls_lock) != ERROR)
      semDelete (tls_lock);
*************** __gthread_setspecific (__gthread_key_t k
*** 343,349 ****
  	    return ENOMEM;
  	  if (!delete_hook_installed)
  	    {
! 	      taskDeleteHookAdd ((FUNCPTR)tls_delete_hook);
  	      delete_hook_installed = 1;
  	    }
  	  __gthread_mutex_unlock (&tls_lock);
--- 360,366 ----
  	    return ENOMEM;
  	  if (!delete_hook_installed)
  	    {
! 	      taskDeleteHookAdd (tls_delete_hook);
  	      delete_hook_installed = 1;
  	    }
  	  __gthread_mutex_unlock (&tls_lock);
diff -Nrcpad gcc-16-20251019/libgcc/config/gthr-vxworks.h gcc-16-20251026/libgcc/config/gthr-vxworks.h
*** gcc-16-20251019/libgcc/config/gthr-vxworks.h	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcc/config/gthr-vxworks.h	Sun Oct 26 22:33:05 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 34,39 ****
--- 34,52 ----
  
  #else
  
+ /* VxWorks provides its own version of the standard stdatomic.h, possibly
+    relying on non-gcc builtins, and our implementation of the gthr API resorts
+    to VxWorks specific functions for atomicity features.
+ 
+    When compiling libgcc (with gcc), make sure gcc's version of stdatomic.h
+    is used: #include it here, first, then define the macro used to guard the
+    system version so it doesn't get expanded when included indirectly by
+    other system headers.  */
+ #if defined(IN_LIBGCC2)
+ #include <../include/stdatomic.h>
+ #define __INCstdatomich
+ #endif
+ 
  #include <vxWorks.h>
  #include <_vxworks-versions.h>
  
diff -Nrcpad gcc-16-20251019/libgcc/config/t-vxworks gcc-16-20251026/libgcc/config/t-vxworks
*** gcc-16-20251019/libgcc/config/t-vxworks	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcc/config/t-vxworks	Sun Oct 26 22:33:05 2025
*************** LIB2FUNCS_EXCLUDE += _clear_cache
*** 30,38 ****
  # paths differs between Windows and Linux hosts as the latter can perform
  # inode based checks while the former may only rely on name comparisons.
  
! LIBGCC2_INCLUDES = -nostdinc -I. \
    $(if $(findstring vxworks7, $(target_noncanonical)), \
!     -I$(VSB_DIR)/h -I$(VSB_DIR)/share/h -I=/system -I=/public, \
      -I=/ -I=/wrn/coreip) \
    -isystem $(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR) \
    -isystem $(MULTIBUILDTOP)../../gcc/include
--- 30,38 ----
  # paths differs between Windows and Linux hosts as the latter can perform
  # inode based checks while the former may only rely on name comparisons.
  
! LIBGCC2_INCLUDES = -nostdinc -include vxworks-predef.h -I. \
    $(if $(findstring vxworks7, $(target_noncanonical)), \
!     -I=/../../h -I=/../../share/h -I=/system -I=/public, \
      -I=/ -I=/wrn/coreip) \
    -isystem $(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR) \
    -isystem $(MULTIBUILDTOP)../../gcc/include
diff -Nrcpad gcc-16-20251019/libgcobol/ChangeLog gcc-16-20251026/libgcobol/ChangeLog
*** gcc-16-20251019/libgcobol/ChangeLog	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/ChangeLog	Sun Oct 26 22:33:05 2025
***************
*** 1,3 ****
--- 1,65 ----
+ 2025-10-25  Sam James  <sam@gentoo.org>
+ 
+ 	PR cobol/122398
+ 	* xmlparse.cc (__gg__xml_parse): Make 'msg' const.
+ 
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* charmaps.cc: Encoding.
+ 	* charmaps.h (class charmap_t): Encoding.
+ 	* intrinsic.cc (__gg__char): Report the character at the
+ 	collation position.
+ 	(__gg__ord): Report the collation position of a character.
+ 	* libgcobol.cc (struct program_state): Add encodings;
+ 	Remove obsolete defines.
+ 	(__gg__current_collation): New function for encoding/collation.
+ 	(__gg__pop_program_state): Encoding.
+ 	(__gg__init_program_state): Encoding.
+ 	(format_for_display_internal): Handle LOW-VALUE and HIGH-VALUE.
+ 	(__gg__compare_2): Encoding.
+ 	(__gg__alphabet_use): Likewise.
+ 	* libgcobol.h (__gg__current_collation): New declaration.
+ 	* xmlparse.cc (__gg__xml_parse): Make a parameter const.
+ 
+ 2025-10-23  Robert Dubner  <rdubner@symas.com>
+ 	    James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* Makefile.am: Changes for XML PARSE and POSIX functions.
+ 	* Makefile.in: Likewise.
+ 	* charmaps.cc: Augment encodings[] table with "supported" boolean.
+ 	(__gg__encoding_iconv_name): Modify how encodings are identified.
+ 	(encoding_descr): Likewise.
+ 	(__gg__encoding_iconv_valid): Likewise.
+ 	* common-defs.h (callback_t): Define function pointer.
+ 	* constants.cc: Use named cbl_attr_e constants instead of magic
+ 	numbers.; New definitions for XML special registers.
+ 	* encodings.h (struct encodings_t): Declare "supported" boolean.
+ 	* libgcobol.cc (format_for_display_internal): Use std::ptrdiff_t.
+ 	(__gg__alphabet_use): Add case for iconv_CP1252_e.
+ 	(default_exception_handler): Repair exception handling after a
+ 	successful file operation.
+ 	* posix/errno.cc: New file.
+ 	* posix/localtime.cc: New file.
+ 	* posix/stat.cc: New file.
+ 	* posix/stat.h: New file.
+ 	* posix/tm.h: New file.
+ 	* xmlparse.cc: New file to support XML PARSE statement.
+ 
+ 2025-10-19  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* charmaps.cc (__gg__set_internal_codeset): Eliminate ascii/ebcdic.
+ 	(__gg__text_conversion_override): Remove.
+ 	* charmaps.h (enum text_device_t):  Eliminate ascii/ebcdic.
+ 	(enum text_codeset_t): Remove.
+ 	(__gg__set_internal_codeset): Remove.
+ 	(__gg__text_conversion_override): Remove.
+ 	* gfileio.cc: Anticipate cbl_encoding_t fixes.
+ 	* libgcobol.cc (struct program_state): Incorporate
+ 	__gg__entry_label.
+ 	(__gg__pop_program_state): Eliminate unused defines.
+ 	(__gg__alphabet_use): Eliminate ascii/ebcdic dichotomy.
+ 	* valconv.cc (__gg__alphabet_create): Likewise.
+ 
  2025-10-10  Robert Dubner  <rdubner@symas.com>
  
  	* charmaps.cc (raw_is_SBC): Likewise.
diff -Nrcpad gcc-16-20251019/libgcobol/Makefile.am gcc-16-20251026/libgcobol/Makefile.am
*** gcc-16-20251019/libgcobol/Makefile.am	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/Makefile.am	Sun Oct 26 22:33:05 2025
***************
*** 19,25 ****
  
  # Written de novo for libgcobol.
  
! AUTOMAKE_OPTIONS = 1.8 foreign
  ACLOCAL_AMFLAGS = -I .. -I ../config
  
  # May be used by various substitution variables.
--- 19,25 ----
  
  # Written de novo for libgcobol.
  
! AUTOMAKE_OPTIONS = 1.8 foreign subdir-objects
  ACLOCAL_AMFLAGS = -I .. -I ../config
  
  # May be used by various substitution variables.
*************** toolexeclib_DATA = libgcobol.spec
*** 34,39 ****
--- 34,40 ----
  ## 2.2.12 Automatic Dependency Tracking
  ## Automake generates code for automatic dependency tracking by default
  ##
+ 
  libgcobol_la_SOURCES =				\
  	charmaps.cc				\
  	constants.cc				\
*************** libgcobol_la_SOURCES =				\
*** 42,53 ****
  	intrinsic.cc				\
  	io.cc					\
  	libgcobol.cc				\
  	stringbin.cc				\
! 	valconv.cc
  
  WARN_CFLAGS = -W -Wall -Wwrite-strings
  
! AM_CPPFLAGS = -I. -I$(srcdir) $(LIBQUADINCLUDE)
  AM_CFLAGS = $(XCFLAGS)
  AM_CXXFLAGS = $(XCFLAGS)
  AM_CXXFLAGS += $(WARN_CFLAGS)
--- 43,62 ----
  	intrinsic.cc				\
  	io.cc					\
  	libgcobol.cc				\
+ 	posix/errno.cc				\
+ 	posix/localtime.cc			\
+ 	posix/stat.cc				\
  	stringbin.cc				\
! 	valconv.cc				\
! 	xmlparse.cc
! 
! libgcobol_la_LIBADD = -lxml2
  
  WARN_CFLAGS = -W -Wall -Wwrite-strings
  
! AM_CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/posix $(LIBQUADINCLUDE)
! AM_CPPFLAGS += -I /usr/include/libxml2
! 
  AM_CFLAGS = $(XCFLAGS)
  AM_CXXFLAGS = $(XCFLAGS)
  AM_CXXFLAGS += $(WARN_CFLAGS)
*************** endif
*** 64,70 ****
  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
--- 73,79 ----
  libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
  version_arg = -version-info $(LIBGCOBOL_VERSION)
  libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV) \
! 	$(extra_ldflags_libgcobol) $(LIBS) -lxml2 $(version_arg)
  libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  
  endif BUILD_LIBGCOBOL
diff -Nrcpad gcc-16-20251019/libgcobol/Makefile.in gcc-16-20251026/libgcobol/Makefile.in
*** gcc-16-20251019/libgcobol/Makefile.in	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/Makefile.in	Sun Oct 26 22:33:05 2025
*************** target_triplet = @target@
*** 115,120 ****
--- 115,121 ----
  # Handle embedded rpaths for Darwin.
  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_1 = -Wc,-nodefaultrpaths \
  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
+ @BUILD_LIBGCOBOL_FALSE@libgcobol_la_DEPENDENCIES =
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
*************** am__uninstall_files_from_dir = { \
*** 176,186 ****
  am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
  	"$(DESTDIR)$(toolexeclibdir)"
  LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
! libgcobol_la_LIBADD =
  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_OBJECTS = charmaps.lo \
  @BUILD_LIBGCOBOL_TRUE@	constants.lo gfileio.lo gmath.lo \
  @BUILD_LIBGCOBOL_TRUE@	intrinsic.lo io.lo libgcobol.lo \
! @BUILD_LIBGCOBOL_TRUE@	stringbin.lo valconv.lo
  libgcobol_la_OBJECTS = $(am_libgcobol_la_OBJECTS)
  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_rpath = -rpath $(toolexeclibdir)
  AM_V_P = $(am__v_P_@AM_V@)
--- 177,189 ----
  am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
  	"$(DESTDIR)$(toolexeclibdir)"
  LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
! am__dirstamp = $(am__leading_dot)dirstamp
  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_OBJECTS = charmaps.lo \
  @BUILD_LIBGCOBOL_TRUE@	constants.lo gfileio.lo gmath.lo \
  @BUILD_LIBGCOBOL_TRUE@	intrinsic.lo io.lo libgcobol.lo \
! @BUILD_LIBGCOBOL_TRUE@	posix/errno.lo posix/localtime.lo \
! @BUILD_LIBGCOBOL_TRUE@	posix/stat.lo stringbin.lo valconv.lo \
! @BUILD_LIBGCOBOL_TRUE@	xmlparse.lo
  libgcobol_la_OBJECTS = $(am_libgcobol_la_OBJECTS)
  @BUILD_LIBGCOBOL_TRUE@am_libgcobol_la_rpath = -rpath $(toolexeclibdir)
  AM_V_P = $(am__v_P_@AM_V@)
*************** toolexeclibdir = @toolexeclibdir@
*** 390,396 ****
  top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
! AUTOMAKE_OPTIONS = 1.8 foreign
  ACLOCAL_AMFLAGS = -I .. -I ../config
  
  # May be used by various substitution variables.
--- 393,399 ----
  top_build_prefix = @top_build_prefix@
  top_builddir = @top_builddir@
  top_srcdir = @top_srcdir@
! AUTOMAKE_OPTIONS = 1.8 foreign subdir-objects
  ACLOCAL_AMFLAGS = -I .. -I ../config
  
  # May be used by various substitution variables.
*************** gcc_version := $(shell @get_gcc_base_ver
*** 407,417 ****
  @BUILD_LIBGCOBOL_TRUE@	intrinsic.cc				\
  @BUILD_LIBGCOBOL_TRUE@	io.cc					\
  @BUILD_LIBGCOBOL_TRUE@	libgcobol.cc				\
  @BUILD_LIBGCOBOL_TRUE@	stringbin.cc				\
! @BUILD_LIBGCOBOL_TRUE@	valconv.cc
  
  @BUILD_LIBGCOBOL_TRUE@WARN_CFLAGS = -W -Wall -Wwrite-strings
! @BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I$(srcdir) $(LIBQUADINCLUDE)
  @BUILD_LIBGCOBOL_TRUE@AM_CFLAGS = $(XCFLAGS)
  @BUILD_LIBGCOBOL_TRUE@AM_CXXFLAGS = $(XCFLAGS) $(WARN_CFLAGS) \
  @BUILD_LIBGCOBOL_TRUE@	-DIN_TARGET_LIBS -fno-strict-aliasing
--- 410,427 ----
  @BUILD_LIBGCOBOL_TRUE@	intrinsic.cc				\
  @BUILD_LIBGCOBOL_TRUE@	io.cc					\
  @BUILD_LIBGCOBOL_TRUE@	libgcobol.cc				\
+ @BUILD_LIBGCOBOL_TRUE@	posix/errno.cc				\
+ @BUILD_LIBGCOBOL_TRUE@	posix/localtime.cc			\
+ @BUILD_LIBGCOBOL_TRUE@	posix/stat.cc				\
  @BUILD_LIBGCOBOL_TRUE@	stringbin.cc				\
! @BUILD_LIBGCOBOL_TRUE@	valconv.cc				\
! @BUILD_LIBGCOBOL_TRUE@	xmlparse.cc
  
+ @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LIBADD = -lxml2
  @BUILD_LIBGCOBOL_TRUE@WARN_CFLAGS = -W -Wall -Wwrite-strings
! @BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/posix \
! @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
*************** gcc_version := $(shell @get_gcc_base_ver
*** 420,426 ****
  @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
--- 430,436 ----
  @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) -lxml2 $(version_arg)
  
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  all: config.h
*************** clean-toolexeclibLTLIBRARIES:
*** 513,524 ****
--- 523,546 ----
  	  echo rm -f $${locs}; \
  	  rm -f $${locs}; \
  	}
+ posix/$(am__dirstamp):
+ 	@$(MKDIR_P) posix
+ 	@: > posix/$(am__dirstamp)
+ posix/$(DEPDIR)/$(am__dirstamp):
+ 	@$(MKDIR_P) posix/$(DEPDIR)
+ 	@: > posix/$(DEPDIR)/$(am__dirstamp)
+ posix/errno.lo: posix/$(am__dirstamp) posix/$(DEPDIR)/$(am__dirstamp)
+ posix/localtime.lo: posix/$(am__dirstamp) \
+ 	posix/$(DEPDIR)/$(am__dirstamp)
+ posix/stat.lo: posix/$(am__dirstamp) posix/$(DEPDIR)/$(am__dirstamp)
  
  libgcobol.la: $(libgcobol_la_OBJECTS) $(libgcobol_la_DEPENDENCIES) $(EXTRA_libgcobol_la_DEPENDENCIES) 
  	$(AM_V_GEN)$(libgcobol_la_LINK) $(am_libgcobol_la_rpath) $(libgcobol_la_OBJECTS) $(libgcobol_la_LIBADD) $(LIBS)
  
  mostlyclean-compile:
  	-rm -f *.$(OBJEXT)
+ 	-rm -f posix/*.$(OBJEXT)
+ 	-rm -f posix/*.lo
  
  distclean-compile:
  	-rm -f *.tab.c
*************** distclean-compile:
*** 532,555 ****
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgcobol.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringbin.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/valconv.Plo@am__quote@
  
  .cc.o:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
! @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
  
  .cc.obj:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
! @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
  
  .cc.lo:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
! @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
--- 554,584 ----
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgcobol.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringbin.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/valconv.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlparse.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/errno.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/localtime.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/stat.Plo@am__quote@
  
  .cc.o:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
! @am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
! @am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
  
  .cc.obj:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
! @am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
! @am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
  
  .cc.lo:
! @am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
! @am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
! @am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
*************** mostlyclean-libtool:
*** 559,564 ****
--- 588,594 ----
  
  clean-libtool:
  	-rm -rf .libs _libs
+ 	-rm -rf posix/.libs posix/_libs
  
  distclean-libtool:
  	-rm -f libtool config.lt
*************** clean-generic:
*** 675,680 ****
--- 705,712 ----
  distclean-generic:
  	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
  	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ 	-rm -f posix/$(DEPDIR)/$(am__dirstamp)
+ 	-rm -f posix/$(am__dirstamp)
  
  maintainer-clean-generic:
  	@echo "This command is intended for maintainers to use"
*************** clean-am: clean-generic clean-libtool cl
*** 686,692 ****
  
  distclean: distclean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
! 	-rm -rf ./$(DEPDIR)
  	-rm -f Makefile
  distclean-am: clean-am distclean-compile distclean-generic \
  	distclean-hdr distclean-libtool distclean-tags
--- 718,724 ----
  
  distclean: distclean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
! 	-rm -rf ./$(DEPDIR) posix/$(DEPDIR)
  	-rm -f Makefile
  distclean-am: clean-am distclean-compile distclean-generic \
  	distclean-hdr distclean-libtool distclean-tags
*************** installcheck-am:
*** 735,741 ****
  maintainer-clean: maintainer-clean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
  	-rm -rf $(top_srcdir)/autom4te.cache
! 	-rm -rf ./$(DEPDIR)
  	-rm -f Makefile
  maintainer-clean-am: distclean-am maintainer-clean-generic
  
--- 767,773 ----
  maintainer-clean: maintainer-clean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
  	-rm -rf $(top_srcdir)/autom4te.cache
! 	-rm -rf ./$(DEPDIR) posix/$(DEPDIR)
  	-rm -f Makefile
  maintainer-clean-am: distclean-am maintainer-clean-generic
  
diff -Nrcpad gcc-16-20251019/libgcobol/charmaps.cc gcc-16-20251026/libgcobol/charmaps.cc
*** gcc-16-20251019/libgcobol/charmaps.cc	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/charmaps.cc	Sun Oct 26 22:33:05 2025
*************** int __gg__quote_character      = '"'  ;
*** 56,66 ****
  int __gg__low_value_character  = 0x00 ;
  int __gg__high_value_character = 0xFF ;
  char **__gg__currency_signs           ;
- 
  int __gg__default_currency_sign;
- 
  char *__gg__ct_currency_signs[256];  // Compile-time currency signs
  
  
  // First: single-byte-coded (SBC) character sets:
  
--- 56,66 ----
  int __gg__low_value_character  = 0x00 ;
  int __gg__high_value_character = 0xFF ;
  char **__gg__currency_signs           ;
  int __gg__default_currency_sign;
  char *__gg__ct_currency_signs[256];  // Compile-time currency signs
  
+ cbl_encoding_t __gg__display_encoding  = no_encoding_e;
+ cbl_encoding_t __gg__national_encoding = no_encoding_e;
  
  // First: single-byte-coded (SBC) character sets:
  
*************** __gg__ebcdic_to_cp1252_collation[256] =
*** 229,1424 ****
      };
  
  static encodings_t encodings[] = {
!   { iconv_437_e, "437" },
!   { iconv_500_e, "500" },
!   { iconv_500V1_e, "500V1" },
!   { iconv_850_e, "850" },
!   { iconv_851_e, "851" },
!   { iconv_852_e, "852" },
!   { iconv_855_e, "855" },
!   { iconv_856_e, "856" },
!   { iconv_857_e, "857" },
!   { iconv_858_e, "858" },
!   { iconv_860_e, "860" },
!   { iconv_861_e, "861" },
!   { iconv_862_e, "862" },
!   { iconv_863_e, "863" },
!   { iconv_864_e, "864" },
!   { iconv_865_e, "865" },
!   { iconv_866_e, "866" },
!   { iconv_866NAV_e, "866NAV" },
!   { iconv_869_e, "869" },
!   { iconv_874_e, "874" },
!   { iconv_904_e, "904" },
!   { iconv_1026_e, "1026" },
!   { iconv_1046_e, "1046" },
!   { iconv_1047_e, "1047" },
!   { iconv_8859_1_e, "8859_1" },
!   { iconv_8859_2_e, "8859_2" },
!   { iconv_8859_3_e, "8859_3" },
!   { iconv_8859_4_e, "8859_4" },
!   { iconv_8859_5_e, "8859_5" },
!   { iconv_8859_6_e, "8859_6" },
!   { iconv_8859_7_e, "8859_7" },
!   { iconv_8859_8_e, "8859_8" },
!   { iconv_8859_9_e, "8859_9" },
!   { iconv_10646_1_1993_e, "10646-1:1993" },
!   { iconv_10646_1_1993_e, "UCS4/ 10646-1:1993/UCS4/" },
!   { iconv_ANSI_X3_4_1968_e, "ANSI_X3.4-1968" },
!   { iconv_ANSI_X3_4_1986_e, "ANSI_X3.4-1986" },
!   { iconv_ANSI_X3_4_e, "ANSI_X3.4" },
!   { iconv_ANSI_X3_110_1983_e, "ANSI_X3.110-1983" },
!   { iconv_ANSI_X3_110_e, "ANSI_X3.110" },
!   { iconv_ARABIC_e, "ARABIC" },
!   { iconv_ARABIC7_e, "ARABIC7" },
!   { iconv_ARMSCII_8_e, "ARMSCII-8" },
!   { iconv_ARMSCII8_e, "ARMSCII8" },
!   { iconv_ASCII_e, "ASCII" },
!   { iconv_ASMO_708_e, "ASMO-708" },
!   { iconv_ASMO_449_e, "ASMO_449" },
!   { iconv_BALTIC_e, "BALTIC" },
!   { iconv_BIG_5_e, "BIG-5" },
!   { iconv_BIG_FIVE_e, "BIG-FIVE" },
!   { iconv_BIG5_HKSCS_e, "BIG5-HKSCS" },
!   { iconv_BIG5_e, "BIG5" },
!   { iconv_BIG5HKSCS_e, "BIG5HKSCS" },
!   { iconv_BIGFIVE_e, "BIGFIVE" },
!   { iconv_BRF_e, "BRF" },
!   { iconv_BS_4730_e, "BS_4730" },
!   { iconv_CA_e, "CA" },
!   { iconv_CN_BIG5_e, "CN-BIG5" },
!   { iconv_CN_GB_e, "CN-GB" },
!   { iconv_CN_e, "CN" },
!   { iconv_CP_AR_e, "CP-AR" },
!   { iconv_CP_GR_e, "CP-GR" },
!   { iconv_CP_HU_e, "CP-HU" },
!   { iconv_CP037_e, "CP037" },
!   { iconv_CP038_e, "CP038" },
!   { iconv_CP273_e, "CP273" },
!   { iconv_CP274_e, "CP274" },
!   { iconv_CP275_e, "CP275" },
!   { iconv_CP278_e, "CP278" },
!   { iconv_CP280_e, "CP280" },
!   { iconv_CP281_e, "CP281" },
!   { iconv_CP282_e, "CP282" },
!   { iconv_CP284_e, "CP284" },
!   { iconv_CP285_e, "CP285" },
!   { iconv_CP290_e, "CP290" },
!   { iconv_CP297_e, "CP297" },
!   { iconv_CP367_e, "CP367" },
!   { iconv_CP420_e, "CP420" },
!   { iconv_CP423_e, "CP423" },
!   { iconv_CP424_e, "CP424" },
!   { iconv_CP437_e, "CP437" },
!   { iconv_CP500_e, "CP500" },
!   { iconv_CP737_e, "CP737" },
!   { iconv_CP770_e, "CP770" },
!   { iconv_CP771_e, "CP771" },
!   { iconv_CP772_e, "CP772" },
!   { iconv_CP773_e, "CP773" },
!   { iconv_CP774_e, "CP774" },
!   { iconv_CP775_e, "CP775" },
!   { iconv_CP803_e, "CP803" },
!   { iconv_CP813_e, "CP813" },
!   { iconv_CP819_e, "CP819" },
!   { iconv_CP850_e, "CP850" },
!   { iconv_CP851_e, "CP851" },
!   { iconv_CP852_e, "CP852" },
!   { iconv_CP855_e, "CP855" },
!   { iconv_CP856_e, "CP856" },
!   { iconv_CP857_e, "CP857" },
!   { iconv_CP858_e, "CP858" },
!   { iconv_CP860_e, "CP860" },
!   { iconv_CP861_e, "CP861" },
!   { iconv_CP862_e, "CP862" },
!   { iconv_CP863_e, "CP863" },
!   { iconv_CP864_e, "CP864" },
!   { iconv_CP865_e, "CP865" },
!   { iconv_CP866_e, "CP866" },
!   { iconv_CP866NAV_e, "CP866NAV" },
!   { iconv_CP868_e, "CP868" },
!   { iconv_CP869_e, "CP869" },
!   { iconv_CP870_e, "CP870" },
!   { iconv_CP871_e, "CP871" },
!   { iconv_CP874_e, "CP874" },
!   { iconv_CP875_e, "CP875" },
!   { iconv_CP880_e, "CP880" },
!   { iconv_CP891_e, "CP891" },
!   { iconv_CP901_e, "CP901" },
!   { iconv_CP902_e, "CP902" },
!   { iconv_CP903_e, "CP903" },
!   { iconv_CP904_e, "CP904" },
!   { iconv_CP905_e, "CP905" },
!   { iconv_CP912_e, "CP912" },
!   { iconv_CP915_e, "CP915" },
!   { iconv_CP916_e, "CP916" },
!   { iconv_CP918_e, "CP918" },
!   { iconv_CP920_e, "CP920" },
!   { iconv_CP921_e, "CP921" },
!   { iconv_CP922_e, "CP922" },
!   { iconv_CP930_e, "CP930" },
!   { iconv_CP932_e, "CP932" },
!   { iconv_CP933_e, "CP933" },
!   { iconv_CP935_e, "CP935" },
!   { iconv_CP936_e, "CP936" },
!   { iconv_CP937_e, "CP937" },
!   { iconv_CP939_e, "CP939" },
!   { iconv_CP949_e, "CP949" },
!   { iconv_CP950_e, "CP950" },
!   { iconv_CP1004_e, "CP1004" },
!   { iconv_CP1008_e, "CP1008" },
!   { iconv_CP1025_e, "CP1025" },
!   { iconv_CP1026_e, "CP1026" },
!   { iconv_CP1046_e, "CP1046" },
!   { iconv_CP1047_e, "CP1047" },
!   { iconv_CP1070_e, "CP1070" },
!   { iconv_CP1079_e, "CP1079" },
!   { iconv_CP1081_e, "CP1081" },
!   { iconv_CP1084_e, "CP1084" },
!   { iconv_CP1089_e, "CP1089" },
!   { iconv_CP1097_e, "CP1097" },
!   { iconv_CP1112_e, "CP1112" },
!   { iconv_CP1122_e, "CP1122" },
!   { iconv_CP1123_e, "CP1123" },
!   { iconv_CP1124_e, "CP1124" },
!   { iconv_CP1125_e, "CP1125" },
!   { iconv_CP1129_e, "CP1129" },
!   { iconv_CP1130_e, "CP1130" },
!   { iconv_CP1132_e, "CP1132" },
!   { iconv_CP1133_e, "CP1133" },
!   { iconv_CP1137_e, "CP1137" },
!   { iconv_CP1140_e, "CP1140" },
!   { iconv_CP1141_e, "CP1141" },
!   { iconv_CP1142_e, "CP1142" },
!   { iconv_CP1143_e, "CP1143" },
!   { iconv_CP1144_e, "CP1144" },
!   { iconv_CP1145_e, "CP1145" },
!   { iconv_CP1146_e, "CP1146" },
!   { iconv_CP1147_e, "CP1147" },
!   { iconv_CP1148_e, "CP1148" },
!   { iconv_CP1149_e, "CP1149" },
!   { iconv_CP1153_e, "CP1153" },
!   { iconv_CP1154_e, "CP1154" },
!   { iconv_CP1155_e, "CP1155" },
!   { iconv_CP1156_e, "CP1156" },
!   { iconv_CP1157_e, "CP1157" },
!   { iconv_CP1158_e, "CP1158" },
!   { iconv_CP1160_e, "CP1160" },
!   { iconv_CP1161_e, "CP1161" },
!   { iconv_CP1162_e, "CP1162" },
!   { iconv_CP1163_e, "CP1163" },
!   { iconv_CP1164_e, "CP1164" },
!   { iconv_CP1166_e, "CP1166" },
!   { iconv_CP1167_e, "CP1167" },
!   { iconv_CP1250_e, "CP1250" },
!   { iconv_CP1251_e, "CP1251" },
!   { iconv_CP1252_e, "CP1252" },
!   { iconv_CP1253_e, "CP1253" },
!   { iconv_CP1254_e, "CP1254" },
!   { iconv_CP1255_e, "CP1255" },
!   { iconv_CP1256_e, "CP1256" },
!   { iconv_CP1257_e, "CP1257" },
!   { iconv_CP1258_e, "CP1258" },
!   { iconv_CP1282_e, "CP1282" },
!   { iconv_CP1361_e, "CP1361" },
!   { iconv_CP1364_e, "CP1364" },
!   { iconv_CP1371_e, "CP1371" },
!   { iconv_CP1388_e, "CP1388" },
!   { iconv_CP1390_e, "CP1390" },
!   { iconv_CP1399_e, "CP1399" },
!   { iconv_CP4517_e, "CP4517" },
!   { iconv_CP4899_e, "CP4899" },
!   { iconv_CP4909_e, "CP4909" },
!   { iconv_CP4971_e, "CP4971" },
!   { iconv_CP5347_e, "CP5347" },
!   { iconv_CP9030_e, "CP9030" },
!   { iconv_CP9066_e, "CP9066" },
!   { iconv_CP9448_e, "CP9448" },
!   { iconv_CP10007_e, "CP10007" },
!   { iconv_CP12712_e, "CP12712" },
!   { iconv_CP16804_e, "CP16804" },
!   { iconv_CPIBM861_e, "CPIBM861" },
!   { iconv_CSA7_1_e, "CSA7-1" },
!   { iconv_CSA7_2_e, "CSA7-2" },
!   { iconv_CSASCII_e, "CSASCII" },
!   { iconv_CSA_T500_1983_e, "CSA_T500-1983" },
!   { iconv_CSA_T500_e, "CSA_T500" },
!   { iconv_CSA_Z243_4_1985_1_e, "CSA_Z243.4-1985-1" },
!   { iconv_CSA_Z243_4_1985_2_e, "CSA_Z243.4-1985-2" },
!   { iconv_CSA_Z243_419851_e, "CSA_Z243.419851" },
!   { iconv_CSA_Z243_419852_e, "CSA_Z243.419852" },
!   { iconv_CSDECMCS_e, "CSDECMCS" },
!   { iconv_CSEBCDICATDE_e, "CSEBCDICATDE" },
!   { iconv_CSEBCDICATDEA_e, "CSEBCDICATDEA" },
!   { iconv_CSEBCDICCAFR_e, "CSEBCDICCAFR" },
!   { iconv_CSEBCDICDKNO_e, "CSEBCDICDKNO" },
!   { iconv_CSEBCDICDKNOA_e, "CSEBCDICDKNOA" },
!   { iconv_CSEBCDICES_e, "CSEBCDICES" },
!   { iconv_CSEBCDICESA_e, "CSEBCDICESA" },
!   { iconv_CSEBCDICESS_e, "CSEBCDICESS" },
!   { iconv_CSEBCDICFISE_e, "CSEBCDICFISE" },
!   { iconv_CSEBCDICFISEA_e, "CSEBCDICFISEA" },
!   { iconv_CSEBCDICFR_e, "CSEBCDICFR" },
!   { iconv_CSEBCDICIT_e, "CSEBCDICIT" },
!   { iconv_CSEBCDICPT_e, "CSEBCDICPT" },
!   { iconv_CSEBCDICUK_e, "CSEBCDICUK" },
!   { iconv_CSEBCDICUS_e, "CSEBCDICUS" },
!   { iconv_CSEUCKR_e, "CSEUCKR" },
!   { iconv_CSEUCPKDFMTJAPANESE_e, "CSEUCPKDFMTJAPANESE" },
!   { iconv_CSGB2312_e, "CSGB2312" },
!   { iconv_CSHPROMAN8_e, "CSHPROMAN8" },
!   { iconv_CSIBM037_e, "CSIBM037" },
!   { iconv_CSIBM038_e, "CSIBM038" },
!   { iconv_CSIBM273_e, "CSIBM273" },
!   { iconv_CSIBM274_e, "CSIBM274" },
!   { iconv_CSIBM275_e, "CSIBM275" },
!   { iconv_CSIBM277_e, "CSIBM277" },
!   { iconv_CSIBM278_e, "CSIBM278" },
!   { iconv_CSIBM280_e, "CSIBM280" },
!   { iconv_CSIBM281_e, "CSIBM281" },
!   { iconv_CSIBM284_e, "CSIBM284" },
!   { iconv_CSIBM285_e, "CSIBM285" },
!   { iconv_CSIBM290_e, "CSIBM290" },
!   { iconv_CSIBM297_e, "CSIBM297" },
!   { iconv_CSIBM420_e, "CSIBM420" },
!   { iconv_CSIBM423_e, "CSIBM423" },
!   { iconv_CSIBM424_e, "CSIBM424" },
!   { iconv_CSIBM500_e, "CSIBM500" },
!   { iconv_CSIBM803_e, "CSIBM803" },
!   { iconv_CSIBM851_e, "CSIBM851" },
!   { iconv_CSIBM855_e, "CSIBM855" },
!   { iconv_CSIBM856_e, "CSIBM856" },
!   { iconv_CSIBM857_e, "CSIBM857" },
!   { iconv_CSIBM860_e, "CSIBM860" },
!   { iconv_CSIBM863_e, "CSIBM863" },
!   { iconv_CSIBM864_e, "CSIBM864" },
!   { iconv_CSIBM865_e, "CSIBM865" },
!   { iconv_CSIBM866_e, "CSIBM866" },
!   { iconv_CSIBM868_e, "CSIBM868" },
!   { iconv_CSIBM869_e, "CSIBM869" },
!   { iconv_CSIBM870_e, "CSIBM870" },
!   { iconv_CSIBM871_e, "CSIBM871" },
!   { iconv_CSIBM880_e, "CSIBM880" },
!   { iconv_CSIBM891_e, "CSIBM891" },
!   { iconv_CSIBM901_e, "CSIBM901" },
!   { iconv_CSIBM902_e, "CSIBM902" },
!   { iconv_CSIBM903_e, "CSIBM903" },
!   { iconv_CSIBM904_e, "CSIBM904" },
!   { iconv_CSIBM905_e, "CSIBM905" },
!   { iconv_CSIBM918_e, "CSIBM918" },
!   { iconv_CSIBM921_e, "CSIBM921" },
!   { iconv_CSIBM922_e, "CSIBM922" },
!   { iconv_CSIBM930_e, "CSIBM930" },
!   { iconv_CSIBM932_e, "CSIBM932" },
!   { iconv_CSIBM933_e, "CSIBM933" },
!   { iconv_CSIBM935_e, "CSIBM935" },
!   { iconv_CSIBM937_e, "CSIBM937" },
!   { iconv_CSIBM939_e, "CSIBM939" },
!   { iconv_CSIBM943_e, "CSIBM943" },
!   { iconv_CSIBM1008_e, "CSIBM1008" },
!   { iconv_CSIBM1025_e, "CSIBM1025" },
!   { iconv_CSIBM1026_e, "CSIBM1026" },
!   { iconv_CSIBM1097_e, "CSIBM1097" },
!   { iconv_CSIBM1112_e, "CSIBM1112" },
!   { iconv_CSIBM1122_e, "CSIBM1122" },
!   { iconv_CSIBM1123_e, "CSIBM1123" },
!   { iconv_CSIBM1124_e, "CSIBM1124" },
!   { iconv_CSIBM1129_e, "CSIBM1129" },
!   { iconv_CSIBM1130_e, "CSIBM1130" },
!   { iconv_CSIBM1132_e, "CSIBM1132" },
!   { iconv_CSIBM1133_e, "CSIBM1133" },
!   { iconv_CSIBM1137_e, "CSIBM1137" },
!   { iconv_CSIBM1140_e, "CSIBM1140" },
!   { iconv_CSIBM1141_e, "CSIBM1141" },
!   { iconv_CSIBM1142_e, "CSIBM1142" },
!   { iconv_CSIBM1143_e, "CSIBM1143" },
!   { iconv_CSIBM1144_e, "CSIBM1144" },
!   { iconv_CSIBM1145_e, "CSIBM1145" },
!   { iconv_CSIBM1146_e, "CSIBM1146" },
!   { iconv_CSIBM1147_e, "CSIBM1147" },
!   { iconv_CSIBM1148_e, "CSIBM1148" },
!   { iconv_CSIBM1149_e, "CSIBM1149" },
!   { iconv_CSIBM1153_e, "CSIBM1153" },
!   { iconv_CSIBM1154_e, "CSIBM1154" },
!   { iconv_CSIBM1155_e, "CSIBM1155" },
!   { iconv_CSIBM1156_e, "CSIBM1156" },
!   { iconv_CSIBM1157_e, "CSIBM1157" },
!   { iconv_CSIBM1158_e, "CSIBM1158" },
!   { iconv_CSIBM1160_e, "CSIBM1160" },
!   { iconv_CSIBM1161_e, "CSIBM1161" },
!   { iconv_CSIBM1163_e, "CSIBM1163" },
!   { iconv_CSIBM1164_e, "CSIBM1164" },
!   { iconv_CSIBM1166_e, "CSIBM1166" },
!   { iconv_CSIBM1167_e, "CSIBM1167" },
!   { iconv_CSIBM1364_e, "CSIBM1364" },
!   { iconv_CSIBM1371_e, "CSIBM1371" },
!   { iconv_CSIBM1388_e, "CSIBM1388" },
!   { iconv_CSIBM1390_e, "CSIBM1390" },
!   { iconv_CSIBM1399_e, "CSIBM1399" },
!   { iconv_CSIBM4517_e, "CSIBM4517" },
!   { iconv_CSIBM4899_e, "CSIBM4899" },
!   { iconv_CSIBM4909_e, "CSIBM4909" },
!   { iconv_CSIBM4971_e, "CSIBM4971" },
!   { iconv_CSIBM5347_e, "CSIBM5347" },
!   { iconv_CSIBM9030_e, "CSIBM9030" },
!   { iconv_CSIBM9066_e, "CSIBM9066" },
!   { iconv_CSIBM9448_e, "CSIBM9448" },
!   { iconv_CSIBM12712_e, "CSIBM12712" },
!   { iconv_CSIBM16804_e, "CSIBM16804" },
!   { iconv_CSIBM11621162_e, "CSIBM11621162" },
!   { iconv_CSISO4UNITEDKINGDOM_e, "CSISO4UNITEDKINGDOM" },
!   { iconv_CSISO10SWEDISH_e, "CSISO10SWEDISH" },
!   { iconv_CSISO11SWEDISHFORNAMES_e, "CSISO11SWEDISHFORNAMES" },
!   { iconv_CSISO14JISC6220RO_e, "CSISO14JISC6220RO" },
!   { iconv_CSISO15ITALIAN_e, "CSISO15ITALIAN" },
!   { iconv_CSISO16PORTUGESE_e, "CSISO16PORTUGESE" },
!   { iconv_CSISO17SPANISH_e, "CSISO17SPANISH" },
!   { iconv_CSISO18GREEK7OLD_e, "CSISO18GREEK7OLD" },
!   { iconv_CSISO19LATINGREEK_e, "CSISO19LATINGREEK" },
!   { iconv_CSISO21GERMAN_e, "CSISO21GERMAN" },
!   { iconv_CSISO25FRENCH_e, "CSISO25FRENCH" },
!   { iconv_CSISO27LATINGREEK1_e, "CSISO27LATINGREEK1" },
!   { iconv_CSISO49INIS_e, "CSISO49INIS" },
!   { iconv_CSISO50INIS8_e, "CSISO50INIS8" },
!   { iconv_CSISO51INISCYRILLIC_e, "CSISO51INISCYRILLIC" },
!   { iconv_CSISO58GB1988_e, "CSISO58GB1988" },
!   { iconv_CSISO60DANISHNORWEGIAN_e, "CSISO60DANISHNORWEGIAN" },
!   { iconv_CSISO60NORWEGIAN1_e, "CSISO60NORWEGIAN1" },
!   { iconv_CSISO61NORWEGIAN2_e, "CSISO61NORWEGIAN2" },
!   { iconv_CSISO69FRENCH_e, "CSISO69FRENCH" },
!   { iconv_CSISO84PORTUGUESE2_e, "CSISO84PORTUGUESE2" },
!   { iconv_CSISO85SPANISH2_e, "CSISO85SPANISH2" },
!   { iconv_CSISO86HUNGARIAN_e, "CSISO86HUNGARIAN" },
!   { iconv_CSISO88GREEK7_e, "CSISO88GREEK7" },
!   { iconv_CSISO89ASMO449_e, "CSISO89ASMO449" },
!   { iconv_CSISO90_e, "CSISO90" },
!   { iconv_CSISO92JISC62991984B_e, "CSISO92JISC62991984B" },
!   { iconv_CSISO99NAPLPS_e, "CSISO99NAPLPS" },
!   { iconv_CSISO103T618BIT_e, "CSISO103T618BIT" },
!   { iconv_CSISO111ECMACYRILLIC_e, "CSISO111ECMACYRILLIC" },
!   { iconv_CSISO121CANADIAN1_e, "CSISO121CANADIAN1" },
!   { iconv_CSISO122CANADIAN2_e, "CSISO122CANADIAN2" },
!   { iconv_CSISO139CSN369103_e, "CSISO139CSN369103" },
!   { iconv_CSISO141JUSIB1002_e, "CSISO141JUSIB1002" },
!   { iconv_CSISO143IECP271_e, "CSISO143IECP271" },
!   { iconv_CSISO150_e, "CSISO150" },
!   { iconv_CSISO150GREEKCCITT_e, "CSISO150GREEKCCITT" },
!   { iconv_CSISO151CUBA_e, "CSISO151CUBA" },
!   { iconv_CSISO153GOST1976874_e, "CSISO153GOST1976874" },
!   { iconv_CSISO646DANISH_e, "CSISO646DANISH" },
!   { iconv_CSISO2022CN_e, "CSISO2022CN" },
!   { iconv_CSISO2022JP_e, "CSISO2022JP" },
!   { iconv_CSISO2022JP2_e, "CSISO2022JP2" },
!   { iconv_CSISO2022KR_e, "CSISO2022KR" },
!   { iconv_CSISO2033_e, "CSISO2033" },
!   { iconv_CSISO5427CYRILLIC_e, "CSISO5427CYRILLIC" },
!   { iconv_CSISO5427CYRILLIC1981_e, "CSISO5427CYRILLIC1981" },
!   { iconv_CSISO5428GREEK_e, "CSISO5428GREEK" },
!   { iconv_CSISO10367BOX_e, "CSISO10367BOX" },
!   { iconv_CSISOLATIN1_e, "CSISOLATIN1" },
!   { iconv_CSISOLATIN2_e, "CSISOLATIN2" },
!   { iconv_CSISOLATIN3_e, "CSISOLATIN3" },
!   { iconv_CSISOLATIN4_e, "CSISOLATIN4" },
!   { iconv_CSISOLATIN5_e, "CSISOLATIN5" },
!   { iconv_CSISOLATIN6_e, "CSISOLATIN6" },
!   { iconv_CSISOLATINARABIC_e, "CSISOLATINARABIC" },
!   { iconv_CSISOLATINCYRILLIC_e, "CSISOLATINCYRILLIC" },
!   { iconv_CSISOLATINGREEK_e, "CSISOLATINGREEK" },
!   { iconv_CSISOLATINHEBREW_e, "CSISOLATINHEBREW" },
!   { iconv_CSKOI8R_e, "CSKOI8R" },
!   { iconv_CSKSC5636_e, "CSKSC5636" },
!   { iconv_CSMACINTOSH_e, "CSMACINTOSH" },
!   { iconv_CSNATSDANO_e, "CSNATSDANO" },
!   { iconv_CSNATSSEFI_e, "CSNATSSEFI" },
!   { iconv_CSN_369103_e, "CSN_369103" },
!   { iconv_CSPC8CODEPAGE437_e, "CSPC8CODEPAGE437" },
!   { iconv_CSPC775BALTIC_e, "CSPC775BALTIC" },
!   { iconv_CSPC850MULTILINGUAL_e, "CSPC850MULTILINGUAL" },
!   { iconv_CSPC858MULTILINGUAL_e, "CSPC858MULTILINGUAL" },
!   { iconv_CSPC862LATINHEBREW_e, "CSPC862LATINHEBREW" },
!   { iconv_CSPCP852_e, "CSPCP852" },
!   { iconv_CSSHIFTJIS_e, "CSSHIFTJIS" },
!   { iconv_CSUCS4_e, "CSUCS4" },
!   { iconv_CSUNICODE_e, "CSUNICODE" },
!   { iconv_CSWINDOWS31J_e, "CSWINDOWS31J" },
!   { iconv_CUBA_e, "CUBA" },
!   { iconv_CWI_2_e, "CWI-2" },
!   { iconv_CWI_e, "CWI" },
!   { iconv_CYRILLIC_e, "CYRILLIC" },
!   { iconv_DE_e, "DE" },
!   { iconv_DEC_MCS_e, "DEC-MCS" },
!   { iconv_DEC_e, "DEC" },
!   { iconv_DECMCS_e, "DECMCS" },
!   { iconv_DIN_66003_e, "DIN_66003" },
!   { iconv_DK_e, "DK" },
!   { iconv_DS2089_e, "DS2089" },
!   { iconv_DS_2089_e, "DS_2089" },
!   { iconv_E13B_e, "E13B" },
!   { iconv_EBCDIC_AT_DE_A_e, "EBCDIC-AT-DE-A" },
!   { iconv_EBCDIC_AT_DE_e, "EBCDIC-AT-DE" },
!   { iconv_EBCDIC_BE_e, "EBCDIC-BE" },
!   { iconv_EBCDIC_BR_e, "EBCDIC-BR" },
!   { iconv_EBCDIC_CA_FR_e, "EBCDIC-CA-FR" },
!   { iconv_EBCDIC_CP_AR1_e, "EBCDIC-CP-AR1" },
!   { iconv_EBCDIC_CP_AR2_e, "EBCDIC-CP-AR2" },
!   { iconv_EBCDIC_CP_BE_e, "EBCDIC-CP-BE" },
!   { iconv_EBCDIC_CP_CA_e, "EBCDIC-CP-CA" },
!   { iconv_EBCDIC_CP_CH_e, "EBCDIC-CP-CH" },
!   { iconv_EBCDIC_CP_DK_e, "EBCDIC-CP-DK" },
!   { iconv_EBCDIC_CP_ES_e, "EBCDIC-CP-ES" },
!   { iconv_EBCDIC_CP_FI_e, "EBCDIC-CP-FI" },
!   { iconv_EBCDIC_CP_FR_e, "EBCDIC-CP-FR" },
!   { iconv_EBCDIC_CP_GB_e, "EBCDIC-CP-GB" },
!   { iconv_EBCDIC_CP_GR_e, "EBCDIC-CP-GR" },
!   { iconv_EBCDIC_CP_HE_e, "EBCDIC-CP-HE" },
!   { iconv_EBCDIC_CP_IS_e, "EBCDIC-CP-IS" },
!   { iconv_EBCDIC_CP_IT_e, "EBCDIC-CP-IT" },
!   { iconv_EBCDIC_CP_NL_e, "EBCDIC-CP-NL" },
!   { iconv_EBCDIC_CP_NO_e, "EBCDIC-CP-NO" },
!   { iconv_EBCDIC_CP_ROECE_e, "EBCDIC-CP-ROECE" },
!   { iconv_EBCDIC_CP_SE_e, "EBCDIC-CP-SE" },
!   { iconv_EBCDIC_CP_TR_e, "EBCDIC-CP-TR" },
!   { iconv_EBCDIC_CP_US_e, "EBCDIC-CP-US" },
!   { iconv_EBCDIC_CP_WT_e, "EBCDIC-CP-WT" },
!   { iconv_EBCDIC_CP_YU_e, "EBCDIC-CP-YU" },
!   { iconv_EBCDIC_CYRILLIC_e, "EBCDIC-CYRILLIC" },
!   { iconv_EBCDIC_DK_NO_A_e, "EBCDIC-DK-NO-A" },
!   { iconv_EBCDIC_DK_NO_e, "EBCDIC-DK-NO" },
!   { iconv_EBCDIC_ES_A_e, "EBCDIC-ES-A" },
!   { iconv_EBCDIC_ES_S_e, "EBCDIC-ES-S" },
!   { iconv_EBCDIC_ES_e, "EBCDIC-ES" },
!   { iconv_EBCDIC_FI_SE_A_e, "EBCDIC-FI-SE-A" },
!   { iconv_EBCDIC_FI_SE_e, "EBCDIC-FI-SE" },
!   { iconv_EBCDIC_FR_e, "EBCDIC-FR" },
!   { iconv_EBCDIC_GREEK_e, "EBCDIC-GREEK" },
!   { iconv_EBCDIC_INT_e, "EBCDIC-INT" },
!   { iconv_EBCDIC_INT1_e, "EBCDIC-INT1" },
!   { iconv_EBCDIC_IS_FRISS_e, "EBCDIC-IS-FRISS" },
!   { iconv_EBCDIC_IT_e, "EBCDIC-IT" },
!   { iconv_EBCDIC_JP_E_e, "EBCDIC-JP-E" },
!   { iconv_EBCDIC_JP_KANA_e, "EBCDIC-JP-KANA" },
!   { iconv_EBCDIC_PT_e, "EBCDIC-PT" },
!   { iconv_EBCDIC_UK_e, "EBCDIC-UK" },
!   { iconv_EBCDIC_US_e, "EBCDIC-US" },
!   { iconv_EBCDICATDE_e, "EBCDICATDE" },
!   { iconv_EBCDICATDEA_e, "EBCDICATDEA" },
!   { iconv_EBCDICCAFR_e, "EBCDICCAFR" },
!   { iconv_EBCDICDKNO_e, "EBCDICDKNO" },
!   { iconv_EBCDICDKNOA_e, "EBCDICDKNOA" },
!   { iconv_EBCDICES_e, "EBCDICES" },
!   { iconv_EBCDICESA_e, "EBCDICESA" },
!   { iconv_EBCDICESS_e, "EBCDICESS" },
!   { iconv_EBCDICFISE_e, "EBCDICFISE" },
!   { iconv_EBCDICFISEA_e, "EBCDICFISEA" },
!   { iconv_EBCDICFR_e, "EBCDICFR" },
!   { iconv_EBCDICISFRISS_e, "EBCDICISFRISS" },
!   { iconv_EBCDICIT_e, "EBCDICIT" },
!   { iconv_EBCDICPT_e, "EBCDICPT" },
!   { iconv_EBCDICUK_e, "EBCDICUK" },
!   { iconv_EBCDICUS_e, "EBCDICUS" },
!   { iconv_ECMA_114_e, "ECMA-114" },
!   { iconv_ECMA_118_e, "ECMA-118" },
!   { iconv_ECMA_128_e, "ECMA-128" },
!   { iconv_ECMA_CYRILLIC_e, "ECMA-CYRILLIC" },
!   { iconv_ECMACYRILLIC_e, "ECMACYRILLIC" },
!   { iconv_ELOT_928_e, "ELOT_928" },
!   { iconv_ES_e, "ES" },
!   { iconv_ES2_e, "ES2" },
!   { iconv_EUC_CN_e, "EUC-CN" },
!   { iconv_EUC_JISX0213_e, "EUC-JISX0213" },
!   { iconv_EUC_JP_MS_e, "EUC-JP-MS" },
!   { iconv_EUC_JP_e, "EUC-JP" },
!   { iconv_EUC_KR_e, "EUC-KR" },
!   { iconv_EUC_TW_e, "EUC-TW" },
!   { iconv_EUCCN_e, "EUCCN" },
!   { iconv_EUCJP_MS_e, "EUCJP-MS" },
!   { iconv_EUCJP_OPEN_e, "EUCJP-OPEN" },
!   { iconv_EUCJP_WIN_e, "EUCJP-WIN" },
!   { iconv_EUCJP_e, "EUCJP" },
!   { iconv_EUCKR_e, "EUCKR" },
!   { iconv_EUCTW_e, "EUCTW" },
!   { iconv_FI_e, "FI" },
!   { iconv_FR_e, "FR" },
!   { iconv_GB_e, "GB" },
!   { iconv_GB2312_e, "GB2312" },
!   { iconv_GB13000_e, "GB13000" },
!   { iconv_GB18030_e, "GB18030" },
!   { iconv_GBK_e, "GBK" },
!   { iconv_GB_1988_80_e, "GB_1988-80" },
!   { iconv_GB_198880_e, "GB_198880" },
!   { iconv_GEORGIAN_ACADEMY_e, "GEORGIAN-ACADEMY" },
!   { iconv_GEORGIAN_PS_e, "GEORGIAN-PS" },
!   { iconv_GOST_19768_74_e, "GOST_19768-74" },
!   { iconv_GOST_19768_e, "GOST_19768" },
!   { iconv_GOST_1976874_e, "GOST_1976874" },
!   { iconv_GREEK_CCITT_e, "GREEK-CCITT" },
!   { iconv_GREEK_e, "GREEK" },
!   { iconv_GREEK7_OLD_e, "GREEK7-OLD" },
!   { iconv_GREEK7_e, "GREEK7" },
!   { iconv_GREEK7OLD_e, "GREEK7OLD" },
!   { iconv_GREEK8_e, "GREEK8" },
!   { iconv_GREEKCCITT_e, "GREEKCCITT" },
!   { iconv_HEBREW_e, "HEBREW" },
!   { iconv_HP_GREEK8_e, "HP-GREEK8" },
!   { iconv_HP_ROMAN8_e, "HP-ROMAN8" },
!   { iconv_HP_ROMAN9_e, "HP-ROMAN9" },
!   { iconv_HP_THAI8_e, "HP-THAI8" },
!   { iconv_HP_TURKISH8_e, "HP-TURKISH8" },
!   { iconv_HPGREEK8_e, "HPGREEK8" },
!   { iconv_HPROMAN8_e, "HPROMAN8" },
!   { iconv_HPROMAN9_e, "HPROMAN9" },
!   { iconv_HPTHAI8_e, "HPTHAI8" },
!   { iconv_HPTURKISH8_e, "HPTURKISH8" },
!   { iconv_HU_e, "HU" },
!   { iconv_IBM_803_e, "IBM-803" },
!   { iconv_IBM_856_e, "IBM-856" },
!   { iconv_IBM_901_e, "IBM-901" },
!   { iconv_IBM_902_e, "IBM-902" },
!   { iconv_IBM_921_e, "IBM-921" },
!   { iconv_IBM_922_e, "IBM-922" },
!   { iconv_IBM_930_e, "IBM-930" },
!   { iconv_IBM_932_e, "IBM-932" },
!   { iconv_IBM_933_e, "IBM-933" },
!   { iconv_IBM_935_e, "IBM-935" },
!   { iconv_IBM_937_e, "IBM-937" },
!   { iconv_IBM_939_e, "IBM-939" },
!   { iconv_IBM_943_e, "IBM-943" },
!   { iconv_IBM_1008_e, "IBM-1008" },
!   { iconv_IBM_1025_e, "IBM-1025" },
!   { iconv_IBM_1046_e, "IBM-1046" },
!   { iconv_IBM_1047_e, "IBM-1047" },
!   { iconv_IBM_1097_e, "IBM-1097" },
!   { iconv_IBM_1112_e, "IBM-1112" },
!   { iconv_IBM_1122_e, "IBM-1122" },
!   { iconv_IBM_1123_e, "IBM-1123" },
!   { iconv_IBM_1124_e, "IBM-1124" },
!   { iconv_IBM_1129_e, "IBM-1129" },
!   { iconv_IBM_1130_e, "IBM-1130" },
!   { iconv_IBM_1132_e, "IBM-1132" },
!   { iconv_IBM_1133_e, "IBM-1133" },
!   { iconv_IBM_1137_e, "IBM-1137" },
!   { iconv_IBM_1140_e, "IBM-1140" },
!   { iconv_IBM_1141_e, "IBM-1141" },
!   { iconv_IBM_1142_e, "IBM-1142" },
!   { iconv_IBM_1143_e, "IBM-1143" },
!   { iconv_IBM_1144_e, "IBM-1144" },
!   { iconv_IBM_1145_e, "IBM-1145" },
!   { iconv_IBM_1146_e, "IBM-1146" },
!   { iconv_IBM_1147_e, "IBM-1147" },
!   { iconv_IBM_1148_e, "IBM-1148" },
!   { iconv_IBM_1149_e, "IBM-1149" },
!   { iconv_IBM_1153_e, "IBM-1153" },
!   { iconv_IBM_1154_e, "IBM-1154" },
!   { iconv_IBM_1155_e, "IBM-1155" },
!   { iconv_IBM_1156_e, "IBM-1156" },
!   { iconv_IBM_1157_e, "IBM-1157" },
!   { iconv_IBM_1158_e, "IBM-1158" },
!   { iconv_IBM_1160_e, "IBM-1160" },
!   { iconv_IBM_1161_e, "IBM-1161" },
!   { iconv_IBM_1162_e, "IBM-1162" },
!   { iconv_IBM_1163_e, "IBM-1163" },
!   { iconv_IBM_1164_e, "IBM-1164" },
!   { iconv_IBM_1166_e, "IBM-1166" },
!   { iconv_IBM_1167_e, "IBM-1167" },
!   { iconv_IBM_1364_e, "IBM-1364" },
!   { iconv_IBM_1371_e, "IBM-1371" },
!   { iconv_IBM_1388_e, "IBM-1388" },
!   { iconv_IBM_1390_e, "IBM-1390" },
!   { iconv_IBM_1399_e, "IBM-1399" },
!   { iconv_IBM_4517_e, "IBM-4517" },
!   { iconv_IBM_4899_e, "IBM-4899" },
!   { iconv_IBM_4909_e, "IBM-4909" },
!   { iconv_IBM_4971_e, "IBM-4971" },
!   { iconv_IBM_5347_e, "IBM-5347" },
!   { iconv_IBM_9030_e, "IBM-9030" },
!   { iconv_IBM_9066_e, "IBM-9066" },
!   { iconv_IBM_9448_e, "IBM-9448" },
!   { iconv_IBM_12712_e, "IBM-12712" },
!   { iconv_IBM_16804_e, "IBM-16804" },
!   { iconv_IBM037_e, "IBM037" },
!   { iconv_IBM038_e, "IBM038" },
!   { iconv_IBM256_e, "IBM256" },
!   { iconv_IBM273_e, "IBM273" },
!   { iconv_IBM274_e, "IBM274" },
!   { iconv_IBM275_e, "IBM275" },
!   { iconv_IBM277_e, "IBM277" },
!   { iconv_IBM278_e, "IBM278" },
!   { iconv_IBM280_e, "IBM280" },
!   { iconv_IBM281_e, "IBM281" },
!   { iconv_IBM284_e, "IBM284" },
!   { iconv_IBM285_e, "IBM285" },
!   { iconv_IBM290_e, "IBM290" },
!   { iconv_IBM297_e, "IBM297" },
!   { iconv_IBM367_e, "IBM367" },
!   { iconv_IBM420_e, "IBM420" },
!   { iconv_IBM423_e, "IBM423" },
!   { iconv_IBM424_e, "IBM424" },
!   { iconv_IBM437_e, "IBM437" },
!   { iconv_IBM500_e, "IBM500" },
!   { iconv_IBM775_e, "IBM775" },
!   { iconv_IBM803_e, "IBM803" },
!   { iconv_IBM813_e, "IBM813" },
!   { iconv_IBM819_e, "IBM819" },
!   { iconv_IBM848_e, "IBM848" },
!   { iconv_IBM850_e, "IBM850" },
!   { iconv_IBM851_e, "IBM851" },
!   { iconv_IBM852_e, "IBM852" },
!   { iconv_IBM855_e, "IBM855" },
!   { iconv_IBM856_e, "IBM856" },
!   { iconv_IBM857_e, "IBM857" },
!   { iconv_IBM858_e, "IBM858" },
!   { iconv_IBM860_e, "IBM860" },
!   { iconv_IBM861_e, "IBM861" },
!   { iconv_IBM862_e, "IBM862" },
!   { iconv_IBM863_e, "IBM863" },
!   { iconv_IBM864_e, "IBM864" },
!   { iconv_IBM865_e, "IBM865" },
!   { iconv_IBM866_e, "IBM866" },
!   { iconv_IBM866NAV_e, "IBM866NAV" },
!   { iconv_IBM868_e, "IBM868" },
!   { iconv_IBM869_e, "IBM869" },
!   { iconv_IBM870_e, "IBM870" },
!   { iconv_IBM871_e, "IBM871" },
!   { iconv_IBM874_e, "IBM874" },
!   { iconv_IBM875_e, "IBM875" },
!   { iconv_IBM880_e, "IBM880" },
!   { iconv_IBM891_e, "IBM891" },
!   { iconv_IBM901_e, "IBM901" },
!   { iconv_IBM902_e, "IBM902" },
!   { iconv_IBM903_e, "IBM903" },
!   { iconv_IBM904_e, "IBM904" },
!   { iconv_IBM905_e, "IBM905" },
!   { iconv_IBM912_e, "IBM912" },
!   { iconv_IBM915_e, "IBM915" },
!   { iconv_IBM916_e, "IBM916" },
!   { iconv_IBM918_e, "IBM918" },
!   { iconv_IBM920_e, "IBM920" },
!   { iconv_IBM921_e, "IBM921" },
!   { iconv_IBM922_e, "IBM922" },
!   { iconv_IBM930_e, "IBM930" },
!   { iconv_IBM932_e, "IBM932" },
!   { iconv_IBM933_e, "IBM933" },
!   { iconv_IBM935_e, "IBM935" },
!   { iconv_IBM937_e, "IBM937" },
!   { iconv_IBM939_e, "IBM939" },
!   { iconv_IBM943_e, "IBM943" },
!   { iconv_IBM1004_e, "IBM1004" },
!   { iconv_IBM1008_e, "IBM1008" },
!   { iconv_IBM1025_e, "IBM1025" },
!   { iconv_IBM1026_e, "IBM1026" },
!   { iconv_IBM1046_e, "IBM1046" },
!   { iconv_IBM1047_e, "IBM1047" },
!   { iconv_IBM1089_e, "IBM1089" },
!   { iconv_IBM1097_e, "IBM1097" },
!   { iconv_IBM1112_e, "IBM1112" },
!   { iconv_IBM1122_e, "IBM1122" },
!   { iconv_IBM1123_e, "IBM1123" },
!   { iconv_IBM1124_e, "IBM1124" },
!   { iconv_IBM1129_e, "IBM1129" },
!   { iconv_IBM1130_e, "IBM1130" },
!   { iconv_IBM1132_e, "IBM1132" },
!   { iconv_IBM1133_e, "IBM1133" },
!   { iconv_IBM1137_e, "IBM1137" },
!   { iconv_IBM1140_e, "IBM1140" },
!   { iconv_IBM1141_e, "IBM1141" },
!   { iconv_IBM1142_e, "IBM1142" },
!   { iconv_IBM1143_e, "IBM1143" },
!   { iconv_IBM1144_e, "IBM1144" },
!   { iconv_IBM1145_e, "IBM1145" },
!   { iconv_IBM1146_e, "IBM1146" },
!   { iconv_IBM1147_e, "IBM1147" },
!   { iconv_IBM1148_e, "IBM1148" },
!   { iconv_IBM1149_e, "IBM1149" },
!   { iconv_IBM1153_e, "IBM1153" },
!   { iconv_IBM1154_e, "IBM1154" },
!   { iconv_IBM1155_e, "IBM1155" },
!   { iconv_IBM1156_e, "IBM1156" },
!   { iconv_IBM1157_e, "IBM1157" },
!   { iconv_IBM1158_e, "IBM1158" },
!   { iconv_IBM1160_e, "IBM1160" },
!   { iconv_IBM1161_e, "IBM1161" },
!   { iconv_IBM1162_e, "IBM1162" },
!   { iconv_IBM1163_e, "IBM1163" },
!   { iconv_IBM1164_e, "IBM1164" },
!   { iconv_IBM1166_e, "IBM1166" },
!   { iconv_IBM1167_e, "IBM1167" },
!   { iconv_IBM1364_e, "IBM1364" },
!   { iconv_IBM1371_e, "IBM1371" },
!   { iconv_IBM1388_e, "IBM1388" },
!   { iconv_IBM1390_e, "IBM1390" },
!   { iconv_IBM1399_e, "IBM1399" },
!   { iconv_IBM4517_e, "IBM4517" },
!   { iconv_IBM4899_e, "IBM4899" },
!   { iconv_IBM4909_e, "IBM4909" },
!   { iconv_IBM4971_e, "IBM4971" },
!   { iconv_IBM5347_e, "IBM5347" },
!   { iconv_IBM9030_e, "IBM9030" },
!   { iconv_IBM9066_e, "IBM9066" },
!   { iconv_IBM9448_e, "IBM9448" },
!   { iconv_IBM12712_e, "IBM12712" },
!   { iconv_IBM16804_e, "IBM16804" },
!   { iconv_IEC_P27_1_e, "IEC_P27-1" },
!   { iconv_IEC_P271_e, "IEC_P271" },
!   { iconv_INIS_8_e, "INIS-8" },
!   { iconv_INIS_CYRILLIC_e, "INIS-CYRILLIC" },
!   { iconv_INIS_e, "INIS" },
!   { iconv_INIS8_e, "INIS8" },
!   { iconv_INISCYRILLIC_e, "INISCYRILLIC" },
!   { iconv_ISIRI_3342_e, "ISIRI-3342" },
!   { iconv_ISIRI3342_e, "ISIRI3342" },
!   { iconv_ISO_2022_CN_EXT_e, "ISO-2022-CN-EXT" },
!   { iconv_ISO_2022_CN_e, "ISO-2022-CN" },
!   { iconv_ISO_2022_JP_2_e, "ISO-2022-JP-2" },
!   { iconv_ISO_2022_JP_3_e, "ISO-2022-JP-3" },
!   { iconv_ISO_2022_JP_e, "ISO-2022-JP" },
!   { iconv_ISO_2022_KR_e, "ISO-2022-KR" },
!   { iconv_ISO_8859_1_e, "ISO-8859-1" },
!   { iconv_ISO_8859_2_e, "ISO-8859-2" },
!   { iconv_ISO_8859_3_e, "ISO-8859-3" },
!   { iconv_ISO_8859_4_e, "ISO-8859-4" },
!   { iconv_ISO_8859_5_e, "ISO-8859-5" },
!   { iconv_ISO_8859_6_e, "ISO-8859-6" },
!   { iconv_ISO_8859_7_e, "ISO-8859-7" },
!   { iconv_ISO_8859_8_e, "ISO-8859-8" },
!   { iconv_ISO_8859_9_e, "ISO-8859-9" },
!   { iconv_ISO_8859_9E_e, "ISO-8859-9E" },
!   { iconv_ISO_8859_10_e, "ISO-8859-10" },
!   { iconv_ISO_8859_11_e, "ISO-8859-11" },
!   { iconv_ISO_8859_13_e, "ISO-8859-13" },
!   { iconv_ISO_8859_14_e, "ISO-8859-14" },
!   { iconv_ISO_8859_15_e, "ISO-8859-15" },
!   { iconv_ISO_8859_16_e, "ISO-8859-16" },
!   { iconv_ISO_10646_e, "ISO-10646" },
!   { iconv_ISO_10646_e, "UCS2/ ISO-10646/UCS2/" },
!   { iconv_ISO_10646_e, "UCS4/ ISO-10646/UCS4/" },
!   { iconv_ISO_10646_e, "UTF-8/ ISO-10646/UTF-8/" },
!   { iconv_ISO_10646_e, "UTF8/ ISO-10646/UTF8/" },
!   { iconv_ISO_CELTIC_e, "ISO-CELTIC" },
!   { iconv_ISO_IR_4_e, "ISO-IR-4" },
!   { iconv_ISO_IR_6_e, "ISO-IR-6" },
!   { iconv_ISO_IR_8_1_e, "ISO-IR-8-1" },
!   { iconv_ISO_IR_9_1_e, "ISO-IR-9-1" },
!   { iconv_ISO_IR_10_e, "ISO-IR-10" },
!   { iconv_ISO_IR_11_e, "ISO-IR-11" },
!   { iconv_ISO_IR_14_e, "ISO-IR-14" },
!   { iconv_ISO_IR_15_e, "ISO-IR-15" },
!   { iconv_ISO_IR_16_e, "ISO-IR-16" },
!   { iconv_ISO_IR_17_e, "ISO-IR-17" },
!   { iconv_ISO_IR_18_e, "ISO-IR-18" },
!   { iconv_ISO_IR_19_e, "ISO-IR-19" },
!   { iconv_ISO_IR_21_e, "ISO-IR-21" },
!   { iconv_ISO_IR_25_e, "ISO-IR-25" },
!   { iconv_ISO_IR_27_e, "ISO-IR-27" },
!   { iconv_ISO_IR_37_e, "ISO-IR-37" },
!   { iconv_ISO_IR_49_e, "ISO-IR-49" },
!   { iconv_ISO_IR_50_e, "ISO-IR-50" },
!   { iconv_ISO_IR_51_e, "ISO-IR-51" },
!   { iconv_ISO_IR_54_e, "ISO-IR-54" },
!   { iconv_ISO_IR_55_e, "ISO-IR-55" },
!   { iconv_ISO_IR_57_e, "ISO-IR-57" },
!   { iconv_ISO_IR_60_e, "ISO-IR-60" },
!   { iconv_ISO_IR_61_e, "ISO-IR-61" },
!   { iconv_ISO_IR_69_e, "ISO-IR-69" },
!   { iconv_ISO_IR_84_e, "ISO-IR-84" },
!   { iconv_ISO_IR_85_e, "ISO-IR-85" },
!   { iconv_ISO_IR_86_e, "ISO-IR-86" },
!   { iconv_ISO_IR_88_e, "ISO-IR-88" },
!   { iconv_ISO_IR_89_e, "ISO-IR-89" },
!   { iconv_ISO_IR_90_e, "ISO-IR-90" },
!   { iconv_ISO_IR_92_e, "ISO-IR-92" },
!   { iconv_ISO_IR_98_e, "ISO-IR-98" },
!   { iconv_ISO_IR_99_e, "ISO-IR-99" },
!   { iconv_ISO_IR_100_e, "ISO-IR-100" },
!   { iconv_ISO_IR_101_e, "ISO-IR-101" },
!   { iconv_ISO_IR_103_e, "ISO-IR-103" },
!   { iconv_ISO_IR_109_e, "ISO-IR-109" },
!   { iconv_ISO_IR_110_e, "ISO-IR-110" },
!   { iconv_ISO_IR_111_e, "ISO-IR-111" },
!   { iconv_ISO_IR_121_e, "ISO-IR-121" },
!   { iconv_ISO_IR_122_e, "ISO-IR-122" },
!   { iconv_ISO_IR_126_e, "ISO-IR-126" },
!   { iconv_ISO_IR_127_e, "ISO-IR-127" },
!   { iconv_ISO_IR_138_e, "ISO-IR-138" },
!   { iconv_ISO_IR_139_e, "ISO-IR-139" },
!   { iconv_ISO_IR_141_e, "ISO-IR-141" },
!   { iconv_ISO_IR_143_e, "ISO-IR-143" },
!   { iconv_ISO_IR_144_e, "ISO-IR-144" },
!   { iconv_ISO_IR_148_e, "ISO-IR-148" },
!   { iconv_ISO_IR_150_e, "ISO-IR-150" },
!   { iconv_ISO_IR_151_e, "ISO-IR-151" },
!   { iconv_ISO_IR_153_e, "ISO-IR-153" },
!   { iconv_ISO_IR_155_e, "ISO-IR-155" },
!   { iconv_ISO_IR_156_e, "ISO-IR-156" },
!   { iconv_ISO_IR_157_e, "ISO-IR-157" },
!   { iconv_ISO_IR_166_e, "ISO-IR-166" },
!   { iconv_ISO_IR_179_e, "ISO-IR-179" },
!   { iconv_ISO_IR_193_e, "ISO-IR-193" },
!   { iconv_ISO_IR_197_e, "ISO-IR-197" },
!   { iconv_ISO_IR_199_e, "ISO-IR-199" },
!   { iconv_ISO_IR_203_e, "ISO-IR-203" },
!   { iconv_ISO_IR_209_e, "ISO-IR-209" },
!   { iconv_ISO_IR_226_e, "ISO-IR-226" },
!   { iconv_ISO_e, "TR_11548-1/ ISO/TR_11548-1/" },
!   { iconv_ISO646_CA_e, "ISO646-CA" },
!   { iconv_ISO646_CA2_e, "ISO646-CA2" },
!   { iconv_ISO646_CN_e, "ISO646-CN" },
!   { iconv_ISO646_CU_e, "ISO646-CU" },
!   { iconv_ISO646_DE_e, "ISO646-DE" },
!   { iconv_ISO646_DK_e, "ISO646-DK" },
!   { iconv_ISO646_ES_e, "ISO646-ES" },
!   { iconv_ISO646_ES2_e, "ISO646-ES2" },
!   { iconv_ISO646_FI_e, "ISO646-FI" },
!   { iconv_ISO646_FR_e, "ISO646-FR" },
!   { iconv_ISO646_FR1_e, "ISO646-FR1" },
!   { iconv_ISO646_GB_e, "ISO646-GB" },
!   { iconv_ISO646_HU_e, "ISO646-HU" },
!   { iconv_ISO646_IT_e, "ISO646-IT" },
!   { iconv_ISO646_JP_OCR_B_e, "ISO646-JP-OCR-B" },
!   { iconv_ISO646_JP_e, "ISO646-JP" },
!   { iconv_ISO646_KR_e, "ISO646-KR" },
!   { iconv_ISO646_NO_e, "ISO646-NO" },
!   { iconv_ISO646_NO2_e, "ISO646-NO2" },
!   { iconv_ISO646_PT_e, "ISO646-PT" },
!   { iconv_ISO646_PT2_e, "ISO646-PT2" },
!   { iconv_ISO646_SE_e, "ISO646-SE" },
!   { iconv_ISO646_SE2_e, "ISO646-SE2" },
!   { iconv_ISO646_US_e, "ISO646-US" },
!   { iconv_ISO646_YU_e, "ISO646-YU" },
!   { iconv_ISO2022CN_e, "ISO2022CN" },
!   { iconv_ISO2022CNEXT_e, "ISO2022CNEXT" },
!   { iconv_ISO2022JP_e, "ISO2022JP" },
!   { iconv_ISO2022JP2_e, "ISO2022JP2" },
!   { iconv_ISO2022KR_e, "ISO2022KR" },
!   { iconv_ISO6937_e, "ISO6937" },
!   { iconv_ISO8859_1_e, "ISO8859-1" },
!   { iconv_ISO8859_2_e, "ISO8859-2" },
!   { iconv_ISO8859_3_e, "ISO8859-3" },
!   { iconv_ISO8859_4_e, "ISO8859-4" },
!   { iconv_ISO8859_5_e, "ISO8859-5" },
!   { iconv_ISO8859_6_e, "ISO8859-6" },
!   { iconv_ISO8859_7_e, "ISO8859-7" },
!   { iconv_ISO8859_8_e, "ISO8859-8" },
!   { iconv_ISO8859_9_e, "ISO8859-9" },
!   { iconv_ISO8859_9E_e, "ISO8859-9E" },
!   { iconv_ISO8859_10_e, "ISO8859-10" },
!   { iconv_ISO8859_11_e, "ISO8859-11" },
!   { iconv_ISO8859_13_e, "ISO8859-13" },
!   { iconv_ISO8859_14_e, "ISO8859-14" },
!   { iconv_ISO8859_15_e, "ISO8859-15" },
!   { iconv_ISO8859_16_e, "ISO8859-16" },
!   { iconv_ISO11548_1_e, "ISO11548-1" },
!   { iconv_ISO88591_e, "ISO88591" },
!   { iconv_ISO88592_e, "ISO88592" },
!   { iconv_ISO88593_e, "ISO88593" },
!   { iconv_ISO88594_e, "ISO88594" },
!   { iconv_ISO88595_e, "ISO88595" },
!   { iconv_ISO88596_e, "ISO88596" },
!   { iconv_ISO88597_e, "ISO88597" },
!   { iconv_ISO88598_e, "ISO88598" },
!   { iconv_ISO88599_e, "ISO88599" },
!   { iconv_ISO88599E_e, "ISO88599E" },
!   { iconv_ISO885910_e, "ISO885910" },
!   { iconv_ISO885911_e, "ISO885911" },
!   { iconv_ISO885913_e, "ISO885913" },
!   { iconv_ISO885914_e, "ISO885914" },
!   { iconv_ISO885915_e, "ISO885915" },
!   { iconv_ISO885916_e, "ISO885916" },
!   { iconv_ISO_646_IRV_1991_e, "ISO_646.IRV:1991" },
!   { iconv_ISO_2033_1983_e, "ISO_2033-1983" },
!   { iconv_ISO_2033_e, "ISO_2033" },
!   { iconv_ISO_5427_EXT_e, "ISO_5427-EXT" },
!   { iconv_ISO_5427_e, "ISO_5427" },
!   { iconv_ISO_5427_1981_e, "ISO_5427:1981" },
!   { iconv_ISO_5427EXT_e, "ISO_5427EXT" },
!   { iconv_ISO_5428_e, "ISO_5428" },
!   { iconv_ISO_5428_1980_e, "ISO_5428:1980" },
!   { iconv_ISO_6937_2_e, "ISO_6937-2" },
!   { iconv_ISO_6937_2_1983_e, "ISO_6937-2:1983" },
!   { iconv_ISO_6937_e, "ISO_6937" },
!   { iconv_ISO_6937_1992_e, "ISO_6937:1992" },
!   { iconv_ISO_8859_1_e, "ISO_8859-1" },
!   { iconv_ISO_8859_1_1987_e, "ISO_8859-1:1987" },
!   { iconv_ISO_8859_2_e, "ISO_8859-2" },
!   { iconv_ISO_8859_2_1987_e, "ISO_8859-2:1987" },
!   { iconv_ISO_8859_3_e, "ISO_8859-3" },
!   { iconv_ISO_8859_3_1988_e, "ISO_8859-3:1988" },
!   { iconv_ISO_8859_4_e, "ISO_8859-4" },
!   { iconv_ISO_8859_4_1988_e, "ISO_8859-4:1988" },
!   { iconv_ISO_8859_5_e, "ISO_8859-5" },
!   { iconv_ISO_8859_5_1988_e, "ISO_8859-5:1988" },
!   { iconv_ISO_8859_6_e, "ISO_8859-6" },
!   { iconv_ISO_8859_6_1987_e, "ISO_8859-6:1987" },
!   { iconv_ISO_8859_7_e, "ISO_8859-7" },
!   { iconv_ISO_8859_7_1987_e, "ISO_8859-7:1987" },
!   { iconv_ISO_8859_7_2003_e, "ISO_8859-7:2003" },
!   { iconv_ISO_8859_8_e, "ISO_8859-8" },
!   { iconv_ISO_8859_8_1988_e, "ISO_8859-8:1988" },
!   { iconv_ISO_8859_9_e, "ISO_8859-9" },
!   { iconv_ISO_8859_9_1989_e, "ISO_8859-9:1989" },
!   { iconv_ISO_8859_9E_e, "ISO_8859-9E" },
!   { iconv_ISO_8859_10_e, "ISO_8859-10" },
!   { iconv_ISO_8859_10_1992_e, "ISO_8859-10:1992" },
!   { iconv_ISO_8859_14_e, "ISO_8859-14" },
!   { iconv_ISO_8859_14_1998_e, "ISO_8859-14:1998" },
!   { iconv_ISO_8859_15_e, "ISO_8859-15" },
!   { iconv_ISO_8859_15_1998_e, "ISO_8859-15:1998" },
!   { iconv_ISO_8859_16_e, "ISO_8859-16" },
!   { iconv_ISO_8859_16_2001_e, "ISO_8859-16:2001" },
!   { iconv_ISO_9036_e, "ISO_9036" },
!   { iconv_ISO_10367_BOX_e, "ISO_10367-BOX" },
!   { iconv_ISO_10367BOX_e, "ISO_10367BOX" },
!   { iconv_ISO_11548_1_e, "ISO_11548-1" },
!   { iconv_ISO_69372_e, "ISO_69372" },
!   { iconv_IT_e, "IT" },
!   { iconv_JIS_C6220_1969_RO_e, "JIS_C6220-1969-RO" },
!   { iconv_JIS_C6229_1984_B_e, "JIS_C6229-1984-B" },
!   { iconv_JIS_C62201969RO_e, "JIS_C62201969RO" },
!   { iconv_JIS_C62291984B_e, "JIS_C62291984B" },
!   { iconv_JOHAB_e, "JOHAB" },
!   { iconv_JP_OCR_B_e, "JP-OCR-B" },
!   { iconv_JP_e, "JP" },
!   { iconv_JS_e, "JS" },
!   { iconv_JUS_I_B1_002_e, "JUS_I.B1.002" },
!   { iconv_KOI_7_e, "KOI-7" },
!   { iconv_KOI_8_e, "KOI-8" },
!   { iconv_KOI8_R_e, "KOI8-R" },
!   { iconv_KOI8_RU_e, "KOI8-RU" },
!   { iconv_KOI8_T_e, "KOI8-T" },
!   { iconv_KOI8_U_e, "KOI8-U" },
!   { iconv_KOI8_e, "KOI8" },
!   { iconv_KOI8R_e, "KOI8R" },
!   { iconv_KOI8U_e, "KOI8U" },
!   { iconv_KSC5636_e, "KSC5636" },
!   { iconv_L1_e, "L1" },
!   { iconv_L2_e, "L2" },
!   { iconv_L3_e, "L3" },
!   { iconv_L4_e, "L4" },
!   { iconv_L5_e, "L5" },
!   { iconv_L6_e, "L6" },
!   { iconv_L7_e, "L7" },
!   { iconv_L8_e, "L8" },
!   { iconv_L10_e, "L10" },
!   { iconv_LATIN_9_e, "LATIN-9" },
!   { iconv_LATIN_GREEK_1_e, "LATIN-GREEK-1" },
!   { iconv_LATIN_GREEK_e, "LATIN-GREEK" },
!   { iconv_LATIN1_e, "LATIN1" },
!   { iconv_LATIN2_e, "LATIN2" },
!   { iconv_LATIN3_e, "LATIN3" },
!   { iconv_LATIN4_e, "LATIN4" },
!   { iconv_LATIN5_e, "LATIN5" },
!   { iconv_LATIN6_e, "LATIN6" },
!   { iconv_LATIN7_e, "LATIN7" },
!   { iconv_LATIN8_e, "LATIN8" },
!   { iconv_LATIN9_e, "LATIN9" },
!   { iconv_LATIN10_e, "LATIN10" },
!   { iconv_LATINGREEK_e, "LATINGREEK" },
!   { iconv_LATINGREEK1_e, "LATINGREEK1" },
!   { iconv_MAC_CENTRALEUROPE_e, "MAC-CENTRALEUROPE" },
!   { iconv_MAC_CYRILLIC_e, "MAC-CYRILLIC" },
!   { iconv_MAC_IS_e, "MAC-IS" },
!   { iconv_MAC_SAMI_e, "MAC-SAMI" },
!   { iconv_MAC_UK_e, "MAC-UK" },
!   { iconv_MAC_e, "MAC" },
!   { iconv_MACCYRILLIC_e, "MACCYRILLIC" },
!   { iconv_MACINTOSH_e, "MACINTOSH" },
!   { iconv_MACIS_e, "MACIS" },
!   { iconv_MACUK_e, "MACUK" },
!   { iconv_MACUKRAINIAN_e, "MACUKRAINIAN" },
!   { iconv_MIK_e, "MIK" },
!   { iconv_MS_ANSI_e, "MS-ANSI" },
!   { iconv_MS_ARAB_e, "MS-ARAB" },
!   { iconv_MS_CYRL_e, "MS-CYRL" },
!   { iconv_MS_EE_e, "MS-EE" },
!   { iconv_MS_GREEK_e, "MS-GREEK" },
!   { iconv_MS_HEBR_e, "MS-HEBR" },
!   { iconv_MS_MAC_CYRILLIC_e, "MS-MAC-CYRILLIC" },
!   { iconv_MS_TURK_e, "MS-TURK" },
!   { iconv_MS932_e, "MS932" },
!   { iconv_MS936_e, "MS936" },
!   { iconv_MSCP949_e, "MSCP949" },
!   { iconv_MSCP1361_e, "MSCP1361" },
!   { iconv_MSMACCYRILLIC_e, "MSMACCYRILLIC" },
!   { iconv_MSZ_7795_3_e, "MSZ_7795.3" },
!   { iconv_MS_KANJI_e, "MS_KANJI" },
!   { iconv_NAPLPS_e, "NAPLPS" },
!   { iconv_NATS_DANO_e, "NATS-DANO" },
!   { iconv_NATS_SEFI_e, "NATS-SEFI" },
!   { iconv_NATSDANO_e, "NATSDANO" },
!   { iconv_NATSSEFI_e, "NATSSEFI" },
!   { iconv_NC_NC0010_e, "NC_NC0010" },
!   { iconv_NC_NC00_10_e, "NC_NC00-10" },
!   { iconv_NC_NC00_10_81_e, "NC_NC00-10:81" },
!   { iconv_NF_Z_62_010_e, "NF_Z_62-010" },
!   { iconv_NF_Z_62_010__1973__e, "NF_Z_62-010_(1973)" },
!   { iconv_NF_Z_62_010_1973_e, "NF_Z_62-010_1973" },
!   { iconv_NF_Z_62010_e, "NF_Z_62010" },
!   { iconv_NF_Z_62010_1973_e, "NF_Z_62010_1973" },
!   { iconv_NO_e, "NO" },
!   { iconv_NO2_e, "NO2" },
!   { iconv_NS_4551_1_e, "NS_4551-1" },
!   { iconv_NS_4551_2_e, "NS_4551-2" },
!   { iconv_NS_45511_e, "NS_45511" },
!   { iconv_NS_45512_e, "NS_45512" },
!   { iconv_OS2LATIN1_e, "OS2LATIN1" },
!   { iconv_OSF00010001_e, "OSF00010001" },
!   { iconv_OSF00010002_e, "OSF00010002" },
!   { iconv_OSF00010003_e, "OSF00010003" },
!   { iconv_OSF00010004_e, "OSF00010004" },
!   { iconv_OSF00010005_e, "OSF00010005" },
!   { iconv_OSF00010006_e, "OSF00010006" },
!   { iconv_OSF00010007_e, "OSF00010007" },
!   { iconv_OSF00010008_e, "OSF00010008" },
!   { iconv_OSF00010009_e, "OSF00010009" },
!   { iconv_OSF0001000A_e, "OSF0001000A" },
!   { iconv_OSF00010020_e, "OSF00010020" },
!   { iconv_OSF00010100_e, "OSF00010100" },
!   { iconv_OSF00010101_e, "OSF00010101" },
!   { iconv_OSF00010102_e, "OSF00010102" },
!   { iconv_OSF00010104_e, "OSF00010104" },
!   { iconv_OSF00010105_e, "OSF00010105" },
!   { iconv_OSF00010106_e, "OSF00010106" },
!   { iconv_OSF00030010_e, "OSF00030010" },
!   { iconv_OSF0004000A_e, "OSF0004000A" },
!   { iconv_OSF0005000A_e, "OSF0005000A" },
!   { iconv_OSF05010001_e, "OSF05010001" },
!   { iconv_OSF100201A4_e, "OSF100201A4" },
!   { iconv_OSF100201A8_e, "OSF100201A8" },
!   { iconv_OSF100201B5_e, "OSF100201B5" },
!   { iconv_OSF100201F4_e, "OSF100201F4" },
!   { iconv_OSF100203B5_e, "OSF100203B5" },
!   { iconv_OSF1002011C_e, "OSF1002011C" },
!   { iconv_OSF1002011D_e, "OSF1002011D" },
!   { iconv_OSF1002035D_e, "OSF1002035D" },
!   { iconv_OSF1002035E_e, "OSF1002035E" },
!   { iconv_OSF1002035F_e, "OSF1002035F" },
!   { iconv_OSF1002036B_e, "OSF1002036B" },
!   { iconv_OSF1002037B_e, "OSF1002037B" },
!   { iconv_OSF10010001_e, "OSF10010001" },
!   { iconv_OSF10010004_e, "OSF10010004" },
!   { iconv_OSF10010006_e, "OSF10010006" },
!   { iconv_OSF10020025_e, "OSF10020025" },
!   { iconv_OSF10020111_e, "OSF10020111" },
!   { iconv_OSF10020115_e, "OSF10020115" },
!   { iconv_OSF10020116_e, "OSF10020116" },
!   { iconv_OSF10020118_e, "OSF10020118" },
!   { iconv_OSF10020122_e, "OSF10020122" },
!   { iconv_OSF10020129_e, "OSF10020129" },
!   { iconv_OSF10020352_e, "OSF10020352" },
!   { iconv_OSF10020354_e, "OSF10020354" },
!   { iconv_OSF10020357_e, "OSF10020357" },
!   { iconv_OSF10020359_e, "OSF10020359" },
!   { iconv_OSF10020360_e, "OSF10020360" },
!   { iconv_OSF10020364_e, "OSF10020364" },
!   { iconv_OSF10020365_e, "OSF10020365" },
!   { iconv_OSF10020366_e, "OSF10020366" },
!   { iconv_OSF10020367_e, "OSF10020367" },
!   { iconv_OSF10020370_e, "OSF10020370" },
!   { iconv_OSF10020387_e, "OSF10020387" },
!   { iconv_OSF10020388_e, "OSF10020388" },
!   { iconv_OSF10020396_e, "OSF10020396" },
!   { iconv_OSF10020402_e, "OSF10020402" },
!   { iconv_OSF10020417_e, "OSF10020417" },
!   { iconv_PT_e, "PT" },
!   { iconv_PT2_e, "PT2" },
!   { iconv_PT154_e, "PT154" },
!   { iconv_R8_e, "R8" },
!   { iconv_R9_e, "R9" },
!   { iconv_RK1048_e, "RK1048" },
!   { iconv_ROMAN8_e, "ROMAN8" },
!   { iconv_ROMAN9_e, "ROMAN9" },
!   { iconv_RUSCII_e, "RUSCII" },
!   { iconv_SE_e, "SE" },
!   { iconv_SE2_e, "SE2" },
!   { iconv_SEN_850200_B_e, "SEN_850200_B" },
!   { iconv_SEN_850200_C_e, "SEN_850200_C" },
!   { iconv_SHIFT_JIS_e, "SHIFT-JIS" },
!   { iconv_SHIFTJISX0213_e, "SHIFTJISX0213" },
!   { iconv_SHIFT_JIS_e, "SHIFT_JIS" },
!   { iconv_SHIFT_JISX0213_e, "SHIFT_JISX0213" },
!   { iconv_SJIS_OPEN_e, "SJIS-OPEN" },
!   { iconv_SJIS_WIN_e, "SJIS-WIN" },
!   { iconv_SJIS_e, "SJIS" },
!   { iconv_SS636127_e, "SS636127" },
!   { iconv_STRK1048_2002_e, "STRK1048-2002" },
!   { iconv_ST_SEV_358_88_e, "ST_SEV_358-88" },
!   { iconv_T_61_8BIT_e, "T.61-8BIT" },
!   { iconv_T_61_e, "T.61" },
!   { iconv_T_618BIT_e, "T.618BIT" },
!   { iconv_TCVN_5712_e, "TCVN-5712" },
!   { iconv_TCVN_e, "TCVN" },
!   { iconv_TCVN5712_1_e, "TCVN5712-1" },
!   { iconv_TCVN5712_1_1993_e, "TCVN5712-1:1993" },
!   { iconv_THAI8_e, "THAI8" },
!   { iconv_TIS_620_e, "TIS-620" },
!   { iconv_TIS620_0_e, "TIS620-0" },
!   { iconv_TIS620_2529_1_e, "TIS620.2529-1" },
!   { iconv_TIS620_2533_0_e, "TIS620.2533-0" },
!   { iconv_TIS620_e, "TIS620" },
!   { iconv_TS_5881_e, "TS-5881" },
!   { iconv_TSCII_e, "TSCII" },
!   { iconv_TURKISH8_e, "TURKISH8" },
!   { iconv_UCS_2_e, "UCS-2" },
!   { iconv_UCS_2BE_e, "UCS-2BE" },
!   { iconv_UCS_2LE_e, "UCS-2LE" },
!   { iconv_UCS_4_e, "UCS-4" },
!   { iconv_UCS_4BE_e, "UCS-4BE" },
!   { iconv_UCS_4LE_e, "UCS-4LE" },
!   { iconv_UCS2_e, "UCS2" },
!   { iconv_UCS4_e, "UCS4" },
!   { iconv_UHC_e, "UHC" },
!   { iconv_UJIS_e, "UJIS" },
!   { iconv_UK_e, "UK" },
!   { iconv_UNICODE_e, "UNICODE" },
!   { iconv_UNICODEBIG_e, "UNICODEBIG" },
!   { iconv_UNICODELITTLE_e, "UNICODELITTLE" },
!   { iconv_US_ASCII_e, "US-ASCII" },
!   { iconv_US_e, "US" },
!   { iconv_UTF_7_e, "UTF-7" },
!   { iconv_UTF_8_e, "UTF-8" },
!   { iconv_UTF_16_e, "UTF-16" },
!   { iconv_UTF_16BE_e, "UTF-16BE" },
!   { iconv_UTF_16LE_e, "UTF-16LE" },
!   { iconv_UTF_32_e, "UTF-32" },
!   { iconv_UTF_32BE_e, "UTF-32BE" },
!   { iconv_UTF_32LE_e, "UTF-32LE" },
!   { iconv_UTF7_e, "UTF7" },
!   { iconv_UTF8_e, "UTF8" },
!   { iconv_UTF16_e, "UTF16" },
!   { iconv_UTF16BE_e, "UTF16BE" },
!   { iconv_UTF16LE_e, "UTF16LE" },
!   { iconv_UTF32_e, "UTF32" },
!   { iconv_UTF32BE_e, "UTF32BE" },
!   { iconv_UTF32LE_e, "UTF32LE" },
!   { iconv_VISCII_e, "VISCII" },
!   { iconv_WCHAR_T_e, "WCHAR_T" },
!   { iconv_WIN_SAMI_2_e, "WIN-SAMI-2" },
!   { iconv_WINBALTRIM_e, "WINBALTRIM" },
!   { iconv_WINDOWS_31J_e, "WINDOWS-31J" },
!   { iconv_WINDOWS_874_e, "WINDOWS-874" },
!   { iconv_WINDOWS_936_e, "WINDOWS-936" },
!   { iconv_WINDOWS_1250_e, "WINDOWS-1250" },
!   { iconv_WINDOWS_1251_e, "WINDOWS-1251" },
!   { iconv_WINDOWS_1252_e, "WINDOWS-1252" },
!   { iconv_WINDOWS_1253_e, "WINDOWS-1253" },
!   { iconv_WINDOWS_1254_e, "WINDOWS-1254" },
!   { iconv_WINDOWS_1255_e, "WINDOWS-1255" },
!   { iconv_WINDOWS_1256_e, "WINDOWS-1256" },
!   { iconv_WINDOWS_1257_e, "WINDOWS-1257" },
!   { iconv_WINDOWS_1258_e, "WINDOWS-1258" },
!   { iconv_WINSAMI2_e, "WINSAMI2" },
!   { iconv_WS2_e, "WS2" },
!   { iconv_YU_e, "YU" },
  };
  
! const char *
! __gg__encoding_iconv_name( cbl_encoding_t encoding ) {
    static encodings_t *eoencodings = encodings + COUNT_OF(encodings);
  
    auto p = std::find_if( encodings, eoencodings,
                           [encoding]( const encodings_t& elem ) {
                             return encoding == elem.type;
                           } );
!   return p < eoencodings? p->name : nullptr;
  }
  
  cbl_encoding_t
--- 229,1438 ----
      };
  
  static encodings_t encodings[] = {
!   { false, iconv_437_e, "437" },
!   { false, iconv_500_e, "500" },
!   { false, iconv_500V1_e, "500V1" },
!   { false, iconv_850_e, "850" },
!   { false, iconv_851_e, "851" },
!   { false, iconv_852_e, "852" },
!   { false, iconv_855_e, "855" },
!   { false, iconv_856_e, "856" },
!   { false, iconv_857_e, "857" },
!   { false, iconv_858_e, "858" },
!   { false, iconv_860_e, "860" },
!   { false, iconv_861_e, "861" },
!   { false, iconv_862_e, "862" },
!   { false, iconv_863_e, "863" },
!   { false, iconv_864_e, "864" },
!   { false, iconv_865_e, "865" },
!   { false, iconv_866_e, "866" },
!   { false, iconv_866NAV_e, "866NAV" },
!   { false, iconv_869_e, "869" },
!   { false, iconv_874_e, "874" },
!   { false, iconv_904_e, "904" },
!   { false, iconv_1026_e, "1026" },
!   { false, iconv_1046_e, "1046" },
!   { false, iconv_1047_e, "1047" },
!   { false, iconv_8859_1_e, "8859_1" },
!   { false, iconv_8859_2_e, "8859_2" },
!   { false, iconv_8859_3_e, "8859_3" },
!   { false, iconv_8859_4_e, "8859_4" },
!   { false, iconv_8859_5_e, "8859_5" },
!   { false, iconv_8859_6_e, "8859_6" },
!   { false, iconv_8859_7_e, "8859_7" },
!   { false, iconv_8859_8_e, "8859_8" },
!   { false, iconv_8859_9_e, "8859_9" },
!   { false, iconv_10646_1_1993_e, "10646-1:1993" },
!   { false, iconv_10646_1_1993_e, "UCS4/ 10646-1:1993/UCS4/" },
!   { false, iconv_ANSI_X3_4_1968_e, "ANSI_X3.4-1968" },
!   { false, iconv_ANSI_X3_4_1986_e, "ANSI_X3.4-1986" },
!   { false, iconv_ANSI_X3_4_e, "ANSI_X3.4" },
!   { false, iconv_ANSI_X3_110_1983_e, "ANSI_X3.110-1983" },
!   { false, iconv_ANSI_X3_110_e, "ANSI_X3.110" },
!   { false, iconv_ARABIC_e, "ARABIC" },
!   { false, iconv_ARABIC7_e, "ARABIC7" },
!   { false, iconv_ARMSCII_8_e, "ARMSCII-8" },
!   { false, iconv_ARMSCII8_e, "ARMSCII8" },
!   {  true, iconv_ASCII_e, "ASCII" },
!   { false, iconv_ASMO_708_e, "ASMO-708" },
!   { false, iconv_ASMO_449_e, "ASMO_449" },
!   { false, iconv_BALTIC_e, "BALTIC" },
!   { false, iconv_BIG_5_e, "BIG-5" },
!   { false, iconv_BIG_FIVE_e, "BIG-FIVE" },
!   { false, iconv_BIG5_HKSCS_e, "BIG5-HKSCS" },
!   { false, iconv_BIG5_e, "BIG5" },
!   { false, iconv_BIG5HKSCS_e, "BIG5HKSCS" },
!   { false, iconv_BIGFIVE_e, "BIGFIVE" },
!   { false, iconv_BRF_e, "BRF" },
!   { false, iconv_BS_4730_e, "BS_4730" },
!   { false, iconv_CA_e, "CA" },
!   { false, iconv_CN_BIG5_e, "CN-BIG5" },
!   { false, iconv_CN_GB_e, "CN-GB" },
!   { false, iconv_CN_e, "CN" },
!   { false, iconv_CP_AR_e, "CP-AR" },
!   { false, iconv_CP_GR_e, "CP-GR" },
!   { false, iconv_CP_HU_e, "CP-HU" },
!   { false, iconv_CP037_e, "CP037" },
!   { false, iconv_CP038_e, "CP038" },
!   { false, iconv_CP273_e, "CP273" },
!   { false, iconv_CP274_e, "CP274" },
!   { false, iconv_CP275_e, "CP275" },
!   { false, iconv_CP278_e, "CP278" },
!   { false, iconv_CP280_e, "CP280" },
!   { false, iconv_CP281_e, "CP281" },
!   { false, iconv_CP282_e, "CP282" },
!   { false, iconv_CP284_e, "CP284" },
!   { false, iconv_CP285_e, "CP285" },
!   { false, iconv_CP290_e, "CP290" },
!   { false, iconv_CP297_e, "CP297" },
!   { false, iconv_CP367_e, "CP367" },
!   { false, iconv_CP420_e, "CP420" },
!   { false, iconv_CP423_e, "CP423" },
!   { false, iconv_CP424_e, "CP424" },
!   { false, iconv_CP437_e, "CP437" },
!   { false, iconv_CP500_e, "CP500" },
!   { false, iconv_CP737_e, "CP737" },
!   { false, iconv_CP770_e, "CP770" },
!   { false, iconv_CP771_e, "CP771" },
!   { false, iconv_CP772_e, "CP772" },
!   { false, iconv_CP773_e, "CP773" },
!   { false, iconv_CP774_e, "CP774" },
!   { false, iconv_CP775_e, "CP775" },
!   { false, iconv_CP803_e, "CP803" },
!   { false, iconv_CP813_e, "CP813" },
!   { false, iconv_CP819_e, "CP819" },
!   { false, iconv_CP850_e, "CP850" },
!   { false, iconv_CP851_e, "CP851" },
!   { false, iconv_CP852_e, "CP852" },
!   { false, iconv_CP855_e, "CP855" },
!   { false, iconv_CP856_e, "CP856" },
!   { false, iconv_CP857_e, "CP857" },
!   { false, iconv_CP858_e, "CP858" },
!   { false, iconv_CP860_e, "CP860" },
!   { false, iconv_CP861_e, "CP861" },
!   { false, iconv_CP862_e, "CP862" },
!   { false, iconv_CP863_e, "CP863" },
!   { false, iconv_CP864_e, "CP864" },
!   { false, iconv_CP865_e, "CP865" },
!   { false, iconv_CP866_e, "CP866" },
!   { false, iconv_CP866NAV_e, "CP866NAV" },
!   { false, iconv_CP868_e, "CP868" },
!   { false, iconv_CP869_e, "CP869" },
!   { false, iconv_CP870_e, "CP870" },
!   { false, iconv_CP871_e, "CP871" },
!   { false, iconv_CP874_e, "CP874" },
!   { false, iconv_CP875_e, "CP875" },
!   { false, iconv_CP880_e, "CP880" },
!   { false, iconv_CP891_e, "CP891" },
!   { false, iconv_CP901_e, "CP901" },
!   { false, iconv_CP902_e, "CP902" },
!   { false, iconv_CP903_e, "CP903" },
!   { false, iconv_CP904_e, "CP904" },
!   { false, iconv_CP905_e, "CP905" },
!   { false, iconv_CP912_e, "CP912" },
!   { false, iconv_CP915_e, "CP915" },
!   { false, iconv_CP916_e, "CP916" },
!   { false, iconv_CP918_e, "CP918" },
!   { false, iconv_CP920_e, "CP920" },
!   { false, iconv_CP921_e, "CP921" },
!   { false, iconv_CP922_e, "CP922" },
!   { false, iconv_CP930_e, "CP930" },
!   { false, iconv_CP932_e, "CP932" },
!   { false, iconv_CP933_e, "CP933" },
!   { false, iconv_CP935_e, "CP935" },
!   { false, iconv_CP936_e, "CP936" },
!   { false, iconv_CP937_e, "CP937" },
!   { false, iconv_CP939_e, "CP939" },
!   { false, iconv_CP949_e, "CP949" },
!   { false, iconv_CP950_e, "CP950" },
!   { false, iconv_CP1004_e, "CP1004" },
!   { false, iconv_CP1008_e, "CP1008" },
!   { false, iconv_CP1025_e, "CP1025" },
!   { false, iconv_CP1026_e, "CP1026" },
!   { false, iconv_CP1046_e, "CP1046" },
!   { false, iconv_CP1047_e, "CP1047" },
!   { false, iconv_CP1070_e, "CP1070" },
!   { false, iconv_CP1079_e, "CP1079" },
!   { false, iconv_CP1081_e, "CP1081" },
!   { false, iconv_CP1084_e, "CP1084" },
!   { false, iconv_CP1089_e, "CP1089" },
!   { false, iconv_CP1097_e, "CP1097" },
!   { false, iconv_CP1112_e, "CP1112" },
!   { false, iconv_CP1122_e, "CP1122" },
!   { false, iconv_CP1123_e, "CP1123" },
!   { false, iconv_CP1124_e, "CP1124" },
!   { false, iconv_CP1125_e, "CP1125" },
!   { false, iconv_CP1129_e, "CP1129" },
!   { false, iconv_CP1130_e, "CP1130" },
!   { false, iconv_CP1132_e, "CP1132" },
!   { false, iconv_CP1133_e, "CP1133" },
!   { false, iconv_CP1137_e, "CP1137" },
!   {  true, iconv_CP1140_e, "CP1140" },
!   { false, iconv_CP1141_e, "CP1141" },
!   { false, iconv_CP1142_e, "CP1142" },
!   { false, iconv_CP1143_e, "CP1143" },
!   { false, iconv_CP1144_e, "CP1144" },
!   { false, iconv_CP1145_e, "CP1145" },
!   { false, iconv_CP1146_e, "CP1146" },
!   { false, iconv_CP1147_e, "CP1147" },
!   { false, iconv_CP1148_e, "CP1148" },
!   { false, iconv_CP1149_e, "CP1149" },
!   { false, iconv_CP1153_e, "CP1153" },
!   { false, iconv_CP1154_e, "CP1154" },
!   { false, iconv_CP1155_e, "CP1155" },
!   { false, iconv_CP1156_e, "CP1156" },
!   { false, iconv_CP1157_e, "CP1157" },
!   { false, iconv_CP1158_e, "CP1158" },
!   { false, iconv_CP1160_e, "CP1160" },
!   { false, iconv_CP1161_e, "CP1161" },
!   { false, iconv_CP1162_e, "CP1162" },
!   { false, iconv_CP1163_e, "CP1163" },
!   { false, iconv_CP1164_e, "CP1164" },
!   { false, iconv_CP1166_e, "CP1166" },
!   { false, iconv_CP1167_e, "CP1167" },
!   { false, iconv_CP1250_e, "CP1250" },
!   { false, iconv_CP1251_e, "CP1251" },
!   { true,  iconv_CP1252_e, "CP1252" },
!   { false, iconv_CP1253_e, "CP1253" },
!   { false, iconv_CP1254_e, "CP1254" },
!   { false, iconv_CP1255_e, "CP1255" },
!   { false, iconv_CP1256_e, "CP1256" },
!   { false, iconv_CP1257_e, "CP1257" },
!   { false, iconv_CP1258_e, "CP1258" },
!   { false, iconv_CP1282_e, "CP1282" },
!   { false, iconv_CP1361_e, "CP1361" },
!   { false, iconv_CP1364_e, "CP1364" },
!   { false, iconv_CP1371_e, "CP1371" },
!   { false, iconv_CP1388_e, "CP1388" },
!   { false, iconv_CP1390_e, "CP1390" },
!   { false, iconv_CP1399_e, "CP1399" },
!   { false, iconv_CP4517_e, "CP4517" },
!   { false, iconv_CP4899_e, "CP4899" },
!   { false, iconv_CP4909_e, "CP4909" },
!   { false, iconv_CP4971_e, "CP4971" },
!   { false, iconv_CP5347_e, "CP5347" },
!   { false, iconv_CP9030_e, "CP9030" },
!   { false, iconv_CP9066_e, "CP9066" },
!   { false, iconv_CP9448_e, "CP9448" },
!   { false, iconv_CP10007_e, "CP10007" },
!   { false, iconv_CP12712_e, "CP12712" },
!   { false, iconv_CP16804_e, "CP16804" },
!   { false, iconv_CPIBM861_e, "CPIBM861" },
!   { false, iconv_CSA7_1_e, "CSA7-1" },
!   { false, iconv_CSA7_2_e, "CSA7-2" },
!   { false, iconv_CSASCII_e, "CSASCII" },
!   { false, iconv_CSA_T500_1983_e, "CSA_T500-1983" },
!   { false, iconv_CSA_T500_e, "CSA_T500" },
!   { false, iconv_CSA_Z243_4_1985_1_e, "CSA_Z243.4-1985-1" },
!   { false, iconv_CSA_Z243_4_1985_2_e, "CSA_Z243.4-1985-2" },
!   { false, iconv_CSA_Z243_419851_e, "CSA_Z243.419851" },
!   { false, iconv_CSA_Z243_419852_e, "CSA_Z243.419852" },
!   { false, iconv_CSDECMCS_e, "CSDECMCS" },
!   { false, iconv_CSEBCDICATDE_e, "CSEBCDICATDE" },
!   { false, iconv_CSEBCDICATDEA_e, "CSEBCDICATDEA" },
!   { false, iconv_CSEBCDICCAFR_e, "CSEBCDICCAFR" },
!   { false, iconv_CSEBCDICDKNO_e, "CSEBCDICDKNO" },
!   { false, iconv_CSEBCDICDKNOA_e, "CSEBCDICDKNOA" },
!   { false, iconv_CSEBCDICES_e, "CSEBCDICES" },
!   { false, iconv_CSEBCDICESA_e, "CSEBCDICESA" },
!   { false, iconv_CSEBCDICESS_e, "CSEBCDICESS" },
!   { false, iconv_CSEBCDICFISE_e, "CSEBCDICFISE" },
!   { false, iconv_CSEBCDICFISEA_e, "CSEBCDICFISEA" },
!   { false, iconv_CSEBCDICFR_e, "CSEBCDICFR" },
!   { false, iconv_CSEBCDICIT_e, "CSEBCDICIT" },
!   { false, iconv_CSEBCDICPT_e, "CSEBCDICPT" },
!   { false, iconv_CSEBCDICUK_e, "CSEBCDICUK" },
!   { false, iconv_CSEBCDICUS_e, "CSEBCDICUS" },
!   { false, iconv_CSEUCKR_e, "CSEUCKR" },
!   { false, iconv_CSEUCPKDFMTJAPANESE_e, "CSEUCPKDFMTJAPANESE" },
!   { false, iconv_CSGB2312_e, "CSGB2312" },
!   { false, iconv_CSHPROMAN8_e, "CSHPROMAN8" },
!   { false, iconv_CSIBM037_e, "CSIBM037" },
!   { false, iconv_CSIBM038_e, "CSIBM038" },
!   { false, iconv_CSIBM273_e, "CSIBM273" },
!   { false, iconv_CSIBM274_e, "CSIBM274" },
!   { false, iconv_CSIBM275_e, "CSIBM275" },
!   { false, iconv_CSIBM277_e, "CSIBM277" },
!   { false, iconv_CSIBM278_e, "CSIBM278" },
!   { false, iconv_CSIBM280_e, "CSIBM280" },
!   { false, iconv_CSIBM281_e, "CSIBM281" },
!   { false, iconv_CSIBM284_e, "CSIBM284" },
!   { false, iconv_CSIBM285_e, "CSIBM285" },
!   { false, iconv_CSIBM290_e, "CSIBM290" },
!   { false, iconv_CSIBM297_e, "CSIBM297" },
!   { false, iconv_CSIBM420_e, "CSIBM420" },
!   { false, iconv_CSIBM423_e, "CSIBM423" },
!   { false, iconv_CSIBM424_e, "CSIBM424" },
!   { false, iconv_CSIBM500_e, "CSIBM500" },
!   { false, iconv_CSIBM803_e, "CSIBM803" },
!   { false, iconv_CSIBM851_e, "CSIBM851" },
!   { false, iconv_CSIBM855_e, "CSIBM855" },
!   { false, iconv_CSIBM856_e, "CSIBM856" },
!   { false, iconv_CSIBM857_e, "CSIBM857" },
!   { false, iconv_CSIBM860_e, "CSIBM860" },
!   { false, iconv_CSIBM863_e, "CSIBM863" },
!   { false, iconv_CSIBM864_e, "CSIBM864" },
!   { false, iconv_CSIBM865_e, "CSIBM865" },
!   { false, iconv_CSIBM866_e, "CSIBM866" },
!   { false, iconv_CSIBM868_e, "CSIBM868" },
!   { false, iconv_CSIBM869_e, "CSIBM869" },
!   { false, iconv_CSIBM870_e, "CSIBM870" },
!   { false, iconv_CSIBM871_e, "CSIBM871" },
!   { false, iconv_CSIBM880_e, "CSIBM880" },
!   { false, iconv_CSIBM891_e, "CSIBM891" },
!   { false, iconv_CSIBM901_e, "CSIBM901" },
!   { false, iconv_CSIBM902_e, "CSIBM902" },
!   { false, iconv_CSIBM903_e, "CSIBM903" },
!   { false, iconv_CSIBM904_e, "CSIBM904" },
!   { false, iconv_CSIBM905_e, "CSIBM905" },
!   { false, iconv_CSIBM918_e, "CSIBM918" },
!   { false, iconv_CSIBM921_e, "CSIBM921" },
!   { false, iconv_CSIBM922_e, "CSIBM922" },
!   { false, iconv_CSIBM930_e, "CSIBM930" },
!   { false, iconv_CSIBM932_e, "CSIBM932" },
!   { false, iconv_CSIBM933_e, "CSIBM933" },
!   { false, iconv_CSIBM935_e, "CSIBM935" },
!   { false, iconv_CSIBM937_e, "CSIBM937" },
!   { false, iconv_CSIBM939_e, "CSIBM939" },
!   { false, iconv_CSIBM943_e, "CSIBM943" },
!   { false, iconv_CSIBM1008_e, "CSIBM1008" },
!   { false, iconv_CSIBM1025_e, "CSIBM1025" },
!   { false, iconv_CSIBM1026_e, "CSIBM1026" },
!   { false, iconv_CSIBM1097_e, "CSIBM1097" },
!   { false, iconv_CSIBM1112_e, "CSIBM1112" },
!   { false, iconv_CSIBM1122_e, "CSIBM1122" },
!   { false, iconv_CSIBM1123_e, "CSIBM1123" },
!   { false, iconv_CSIBM1124_e, "CSIBM1124" },
!   { false, iconv_CSIBM1129_e, "CSIBM1129" },
!   { false, iconv_CSIBM1130_e, "CSIBM1130" },
!   { false, iconv_CSIBM1132_e, "CSIBM1132" },
!   { false, iconv_CSIBM1133_e, "CSIBM1133" },
!   { false, iconv_CSIBM1137_e, "CSIBM1137" },
!   { false, iconv_CSIBM1140_e, "CSIBM1140" },
!   { false, iconv_CSIBM1141_e, "CSIBM1141" },
!   { false, iconv_CSIBM1142_e, "CSIBM1142" },
!   { false, iconv_CSIBM1143_e, "CSIBM1143" },
!   { false, iconv_CSIBM1144_e, "CSIBM1144" },
!   { false, iconv_CSIBM1145_e, "CSIBM1145" },
!   { false, iconv_CSIBM1146_e, "CSIBM1146" },
!   { false, iconv_CSIBM1147_e, "CSIBM1147" },
!   { false, iconv_CSIBM1148_e, "CSIBM1148" },
!   { false, iconv_CSIBM1149_e, "CSIBM1149" },
!   { false, iconv_CSIBM1153_e, "CSIBM1153" },
!   { false, iconv_CSIBM1154_e, "CSIBM1154" },
!   { false, iconv_CSIBM1155_e, "CSIBM1155" },
!   { false, iconv_CSIBM1156_e, "CSIBM1156" },
!   { false, iconv_CSIBM1157_e, "CSIBM1157" },
!   { false, iconv_CSIBM1158_e, "CSIBM1158" },
!   { false, iconv_CSIBM1160_e, "CSIBM1160" },
!   { false, iconv_CSIBM1161_e, "CSIBM1161" },
!   { false, iconv_CSIBM1163_e, "CSIBM1163" },
!   { false, iconv_CSIBM1164_e, "CSIBM1164" },
!   { false, iconv_CSIBM1166_e, "CSIBM1166" },
!   { false, iconv_CSIBM1167_e, "CSIBM1167" },
!   { false, iconv_CSIBM1364_e, "CSIBM1364" },
!   { false, iconv_CSIBM1371_e, "CSIBM1371" },
!   { false, iconv_CSIBM1388_e, "CSIBM1388" },
!   { false, iconv_CSIBM1390_e, "CSIBM1390" },
!   { false, iconv_CSIBM1399_e, "CSIBM1399" },
!   { false, iconv_CSIBM4517_e, "CSIBM4517" },
!   { false, iconv_CSIBM4899_e, "CSIBM4899" },
!   { false, iconv_CSIBM4909_e, "CSIBM4909" },
!   { false, iconv_CSIBM4971_e, "CSIBM4971" },
!   { false, iconv_CSIBM5347_e, "CSIBM5347" },
!   { false, iconv_CSIBM9030_e, "CSIBM9030" },
!   { false, iconv_CSIBM9066_e, "CSIBM9066" },
!   { false, iconv_CSIBM9448_e, "CSIBM9448" },
!   { false, iconv_CSIBM12712_e, "CSIBM12712" },
!   { false, iconv_CSIBM16804_e, "CSIBM16804" },
!   { false, iconv_CSIBM11621162_e, "CSIBM11621162" },
!   { false, iconv_CSISO4UNITEDKINGDOM_e, "CSISO4UNITEDKINGDOM" },
!   { false, iconv_CSISO10SWEDISH_e, "CSISO10SWEDISH" },
!   { false, iconv_CSISO11SWEDISHFORNAMES_e, "CSISO11SWEDISHFORNAMES" },
!   { false, iconv_CSISO14JISC6220RO_e, "CSISO14JISC6220RO" },
!   { false, iconv_CSISO15ITALIAN_e, "CSISO15ITALIAN" },
!   { false, iconv_CSISO16PORTUGESE_e, "CSISO16PORTUGESE" },
!   { false, iconv_CSISO17SPANISH_e, "CSISO17SPANISH" },
!   { false, iconv_CSISO18GREEK7OLD_e, "CSISO18GREEK7OLD" },
!   { false, iconv_CSISO19LATINGREEK_e, "CSISO19LATINGREEK" },
!   { false, iconv_CSISO21GERMAN_e, "CSISO21GERMAN" },
!   { false, iconv_CSISO25FRENCH_e, "CSISO25FRENCH" },
!   { false, iconv_CSISO27LATINGREEK1_e, "CSISO27LATINGREEK1" },
!   { false, iconv_CSISO49INIS_e, "CSISO49INIS" },
!   { false, iconv_CSISO50INIS8_e, "CSISO50INIS8" },
!   { false, iconv_CSISO51INISCYRILLIC_e, "CSISO51INISCYRILLIC" },
!   { false, iconv_CSISO58GB1988_e, "CSISO58GB1988" },
!   { false, iconv_CSISO60DANISHNORWEGIAN_e, "CSISO60DANISHNORWEGIAN" },
!   { false, iconv_CSISO60NORWEGIAN1_e, "CSISO60NORWEGIAN1" },
!   { false, iconv_CSISO61NORWEGIAN2_e, "CSISO61NORWEGIAN2" },
!   { false, iconv_CSISO69FRENCH_e, "CSISO69FRENCH" },
!   { false, iconv_CSISO84PORTUGUESE2_e, "CSISO84PORTUGUESE2" },
!   { false, iconv_CSISO85SPANISH2_e, "CSISO85SPANISH2" },
!   { false, iconv_CSISO86HUNGARIAN_e, "CSISO86HUNGARIAN" },
!   { false, iconv_CSISO88GREEK7_e, "CSISO88GREEK7" },
!   { false, iconv_CSISO89ASMO449_e, "CSISO89ASMO449" },
!   { false, iconv_CSISO90_e, "CSISO90" },
!   { false, iconv_CSISO92JISC62991984B_e, "CSISO92JISC62991984B" },
!   { false, iconv_CSISO99NAPLPS_e, "CSISO99NAPLPS" },
!   { false, iconv_CSISO103T618BIT_e, "CSISO103T618BIT" },
!   { false, iconv_CSISO111ECMACYRILLIC_e, "CSISO111ECMACYRILLIC" },
!   { false, iconv_CSISO121CANADIAN1_e, "CSISO121CANADIAN1" },
!   { false, iconv_CSISO122CANADIAN2_e, "CSISO122CANADIAN2" },
!   { false, iconv_CSISO139CSN369103_e, "CSISO139CSN369103" },
!   { false, iconv_CSISO141JUSIB1002_e, "CSISO141JUSIB1002" },
!   { false, iconv_CSISO143IECP271_e, "CSISO143IECP271" },
!   { false, iconv_CSISO150_e, "CSISO150" },
!   { false, iconv_CSISO150GREEKCCITT_e, "CSISO150GREEKCCITT" },
!   { false, iconv_CSISO151CUBA_e, "CSISO151CUBA" },
!   { false, iconv_CSISO153GOST1976874_e, "CSISO153GOST1976874" },
!   { false, iconv_CSISO646DANISH_e, "CSISO646DANISH" },
!   { false, iconv_CSISO2022CN_e, "CSISO2022CN" },
!   { false, iconv_CSISO2022JP_e, "CSISO2022JP" },
!   { false, iconv_CSISO2022JP2_e, "CSISO2022JP2" },
!   { false, iconv_CSISO2022KR_e, "CSISO2022KR" },
!   { false, iconv_CSISO2033_e, "CSISO2033" },
!   { false, iconv_CSISO5427CYRILLIC_e, "CSISO5427CYRILLIC" },
!   { false, iconv_CSISO5427CYRILLIC1981_e, "CSISO5427CYRILLIC1981" },
!   { false, iconv_CSISO5428GREEK_e, "CSISO5428GREEK" },
!   { false, iconv_CSISO10367BOX_e, "CSISO10367BOX" },
!   { false, iconv_CSISOLATIN1_e, "CSISOLATIN1" },
!   { false, iconv_CSISOLATIN2_e, "CSISOLATIN2" },
!   { false, iconv_CSISOLATIN3_e, "CSISOLATIN3" },
!   { false, iconv_CSISOLATIN4_e, "CSISOLATIN4" },
!   { false, iconv_CSISOLATIN5_e, "CSISOLATIN5" },
!   { false, iconv_CSISOLATIN6_e, "CSISOLATIN6" },
!   { false, iconv_CSISOLATINARABIC_e, "CSISOLATINARABIC" },
!   { false, iconv_CSISOLATINCYRILLIC_e, "CSISOLATINCYRILLIC" },
!   { false, iconv_CSISOLATINGREEK_e, "CSISOLATINGREEK" },
!   { false, iconv_CSISOLATINHEBREW_e, "CSISOLATINHEBREW" },
!   { false, iconv_CSKOI8R_e, "CSKOI8R" },
!   { false, iconv_CSKSC5636_e, "CSKSC5636" },
!   { false, iconv_CSMACINTOSH_e, "CSMACINTOSH" },
!   { false, iconv_CSNATSDANO_e, "CSNATSDANO" },
!   { false, iconv_CSNATSSEFI_e, "CSNATSSEFI" },
!   { false, iconv_CSN_369103_e, "CSN_369103" },
!   { false, iconv_CSPC8CODEPAGE437_e, "CSPC8CODEPAGE437" },
!   { false, iconv_CSPC775BALTIC_e, "CSPC775BALTIC" },
!   { false, iconv_CSPC850MULTILINGUAL_e, "CSPC850MULTILINGUAL" },
!   { false, iconv_CSPC858MULTILINGUAL_e, "CSPC858MULTILINGUAL" },
!   { false, iconv_CSPC862LATINHEBREW_e, "CSPC862LATINHEBREW" },
!   { false, iconv_CSPCP852_e, "CSPCP852" },
!   { false, iconv_CSSHIFTJIS_e, "CSSHIFTJIS" },
!   { false, iconv_CSUCS4_e, "CSUCS4" },
!   { false, iconv_CSUNICODE_e, "CSUNICODE" },
!   { false, iconv_CSWINDOWS31J_e, "CSWINDOWS31J" },
!   { false, iconv_CUBA_e, "CUBA" },
!   { false, iconv_CWI_2_e, "CWI-2" },
!   { false, iconv_CWI_e, "CWI" },
!   { false, iconv_CYRILLIC_e, "CYRILLIC" },
!   { false, iconv_DE_e, "DE" },
!   { false, iconv_DEC_MCS_e, "DEC-MCS" },
!   { false, iconv_DEC_e, "DEC" },
!   { false, iconv_DECMCS_e, "DECMCS" },
!   { false, iconv_DIN_66003_e, "DIN_66003" },
!   { false, iconv_DK_e, "DK" },
!   { false, iconv_DS2089_e, "DS2089" },
!   { false, iconv_DS_2089_e, "DS_2089" },
!   { false, iconv_E13B_e, "E13B" },
!   { false, iconv_EBCDIC_AT_DE_A_e, "EBCDIC-AT-DE-A" },
!   { false, iconv_EBCDIC_AT_DE_e, "EBCDIC-AT-DE" },
!   { false, iconv_EBCDIC_BE_e, "EBCDIC-BE" },
!   { false, iconv_EBCDIC_BR_e, "EBCDIC-BR" },
!   { false, iconv_EBCDIC_CA_FR_e, "EBCDIC-CA-FR" },
!   { false, iconv_EBCDIC_CP_AR1_e, "EBCDIC-CP-AR1" },
!   { false, iconv_EBCDIC_CP_AR2_e, "EBCDIC-CP-AR2" },
!   { false, iconv_EBCDIC_CP_BE_e, "EBCDIC-CP-BE" },
!   { false, iconv_EBCDIC_CP_CA_e, "EBCDIC-CP-CA" },
!   { false, iconv_EBCDIC_CP_CH_e, "EBCDIC-CP-CH" },
!   { false, iconv_EBCDIC_CP_DK_e, "EBCDIC-CP-DK" },
!   { false, iconv_EBCDIC_CP_ES_e, "EBCDIC-CP-ES" },
!   { false, iconv_EBCDIC_CP_FI_e, "EBCDIC-CP-FI" },
!   { false, iconv_EBCDIC_CP_FR_e, "EBCDIC-CP-FR" },
!   { false, iconv_EBCDIC_CP_GB_e, "EBCDIC-CP-GB" },
!   { false, iconv_EBCDIC_CP_GR_e, "EBCDIC-CP-GR" },
!   { false, iconv_EBCDIC_CP_HE_e, "EBCDIC-CP-HE" },
!   { false, iconv_EBCDIC_CP_IS_e, "EBCDIC-CP-IS" },
!   { false, iconv_EBCDIC_CP_IT_e, "EBCDIC-CP-IT" },
!   { false, iconv_EBCDIC_CP_NL_e, "EBCDIC-CP-NL" },
!   { false, iconv_EBCDIC_CP_NO_e, "EBCDIC-CP-NO" },
!   { false, iconv_EBCDIC_CP_ROECE_e, "EBCDIC-CP-ROECE" },
!   { false, iconv_EBCDIC_CP_SE_e, "EBCDIC-CP-SE" },
!   { false, iconv_EBCDIC_CP_TR_e, "EBCDIC-CP-TR" },
!   { false, iconv_EBCDIC_CP_US_e, "EBCDIC-CP-US" },
!   { false, iconv_EBCDIC_CP_WT_e, "EBCDIC-CP-WT" },
!   { false, iconv_EBCDIC_CP_YU_e, "EBCDIC-CP-YU" },
!   { false, iconv_EBCDIC_CYRILLIC_e, "EBCDIC-CYRILLIC" },
!   { false, iconv_EBCDIC_DK_NO_A_e, "EBCDIC-DK-NO-A" },
!   { false, iconv_EBCDIC_DK_NO_e, "EBCDIC-DK-NO" },
!   { false, iconv_EBCDIC_ES_A_e, "EBCDIC-ES-A" },
!   { false, iconv_EBCDIC_ES_S_e, "EBCDIC-ES-S" },
!   { false, iconv_EBCDIC_ES_e, "EBCDIC-ES" },
!   { false, iconv_EBCDIC_FI_SE_A_e, "EBCDIC-FI-SE-A" },
!   { false, iconv_EBCDIC_FI_SE_e, "EBCDIC-FI-SE" },
!   { false, iconv_EBCDIC_FR_e, "EBCDIC-FR" },
!   { false, iconv_EBCDIC_GREEK_e, "EBCDIC-GREEK" },
!   { false, iconv_EBCDIC_INT_e, "EBCDIC-INT" },
!   { false, iconv_EBCDIC_INT1_e, "EBCDIC-INT1" },
!   { false, iconv_EBCDIC_IS_FRISS_e, "EBCDIC-IS-FRISS" },
!   { false, iconv_EBCDIC_IT_e, "EBCDIC-IT" },
!   { false, iconv_EBCDIC_JP_E_e, "EBCDIC-JP-E" },
!   { false, iconv_EBCDIC_JP_KANA_e, "EBCDIC-JP-KANA" },
!   { false, iconv_EBCDIC_PT_e, "EBCDIC-PT" },
!   { false, iconv_EBCDIC_UK_e, "EBCDIC-UK" },
!   { false, iconv_EBCDIC_US_e, "EBCDIC-US" },
!   { false, iconv_EBCDICATDE_e, "EBCDICATDE" },
!   { false, iconv_EBCDICATDEA_e, "EBCDICATDEA" },
!   { false, iconv_EBCDICCAFR_e, "EBCDICCAFR" },
!   { false, iconv_EBCDICDKNO_e, "EBCDICDKNO" },
!   { false, iconv_EBCDICDKNOA_e, "EBCDICDKNOA" },
!   { false, iconv_EBCDICES_e, "EBCDICES" },
!   { false, iconv_EBCDICESA_e, "EBCDICESA" },
!   { false, iconv_EBCDICESS_e, "EBCDICESS" },
!   { false, iconv_EBCDICFISE_e, "EBCDICFISE" },
!   { false, iconv_EBCDICFISEA_e, "EBCDICFISEA" },
!   { false, iconv_EBCDICFR_e, "EBCDICFR" },
!   { false, iconv_EBCDICISFRISS_e, "EBCDICISFRISS" },
!   { false, iconv_EBCDICIT_e, "EBCDICIT" },
!   { false, iconv_EBCDICPT_e, "EBCDICPT" },
!   { false, iconv_EBCDICUK_e, "EBCDICUK" },
!   { false, iconv_EBCDICUS_e, "EBCDICUS" },
!   { false, iconv_ECMA_114_e, "ECMA-114" },
!   { false, iconv_ECMA_118_e, "ECMA-118" },
!   { false, iconv_ECMA_128_e, "ECMA-128" },
!   { false, iconv_ECMA_CYRILLIC_e, "ECMA-CYRILLIC" },
!   { false, iconv_ECMACYRILLIC_e, "ECMACYRILLIC" },
!   { false, iconv_ELOT_928_e, "ELOT_928" },
!   { false, iconv_ES_e, "ES" },
!   { false, iconv_ES2_e, "ES2" },
!   { false, iconv_EUC_CN_e, "EUC-CN" },
!   { false, iconv_EUC_JISX0213_e, "EUC-JISX0213" },
!   { false, iconv_EUC_JP_MS_e, "EUC-JP-MS" },
!   { false, iconv_EUC_JP_e, "EUC-JP" },
!   { false, iconv_EUC_KR_e, "EUC-KR" },
!   { false, iconv_EUC_TW_e, "EUC-TW" },
!   { false, iconv_EUCCN_e, "EUCCN" },
!   { false, iconv_EUCJP_MS_e, "EUCJP-MS" },
!   { false, iconv_EUCJP_OPEN_e, "EUCJP-OPEN" },
!   { false, iconv_EUCJP_WIN_e, "EUCJP-WIN" },
!   { false, iconv_EUCJP_e, "EUCJP" },
!   { false, iconv_EUCKR_e, "EUCKR" },
!   { false, iconv_EUCTW_e, "EUCTW" },
!   { false, iconv_FI_e, "FI" },
!   { false, iconv_FR_e, "FR" },
!   { false, iconv_GB_e, "GB" },
!   { false, iconv_GB2312_e, "GB2312" },
!   { false, iconv_GB13000_e, "GB13000" },
!   { false, iconv_GB18030_e, "GB18030" },
!   { false, iconv_GBK_e, "GBK" },
!   { false, iconv_GB_1988_80_e, "GB_1988-80" },
!   { false, iconv_GB_198880_e, "GB_198880" },
!   { false, iconv_GEORGIAN_ACADEMY_e, "GEORGIAN-ACADEMY" },
!   { false, iconv_GEORGIAN_PS_e, "GEORGIAN-PS" },
!   { false, iconv_GOST_19768_74_e, "GOST_19768-74" },
!   { false, iconv_GOST_19768_e, "GOST_19768" },
!   { false, iconv_GOST_1976874_e, "GOST_1976874" },
!   { false, iconv_GREEK_CCITT_e, "GREEK-CCITT" },
!   { false, iconv_GREEK_e, "GREEK" },
!   { false, iconv_GREEK7_OLD_e, "GREEK7-OLD" },
!   { false, iconv_GREEK7_e, "GREEK7" },
!   { false, iconv_GREEK7OLD_e, "GREEK7OLD" },
!   { false, iconv_GREEK8_e, "GREEK8" },
!   { false, iconv_GREEKCCITT_e, "GREEKCCITT" },
!   { false, iconv_HEBREW_e, "HEBREW" },
!   { false, iconv_HP_GREEK8_e, "HP-GREEK8" },
!   { false, iconv_HP_ROMAN8_e, "HP-ROMAN8" },
!   { false, iconv_HP_ROMAN9_e, "HP-ROMAN9" },
!   { false, iconv_HP_THAI8_e, "HP-THAI8" },
!   { false, iconv_HP_TURKISH8_e, "HP-TURKISH8" },
!   { false, iconv_HPGREEK8_e, "HPGREEK8" },
!   { false, iconv_HPROMAN8_e, "HPROMAN8" },
!   { false, iconv_HPROMAN9_e, "HPROMAN9" },
!   { false, iconv_HPTHAI8_e, "HPTHAI8" },
!   { false, iconv_HPTURKISH8_e, "HPTURKISH8" },
!   { false, iconv_HU_e, "HU" },
!   { false, iconv_IBM_803_e, "IBM-803" },
!   { false, iconv_IBM_856_e, "IBM-856" },
!   { false, iconv_IBM_901_e, "IBM-901" },
!   { false, iconv_IBM_902_e, "IBM-902" },
!   { false, iconv_IBM_921_e, "IBM-921" },
!   { false, iconv_IBM_922_e, "IBM-922" },
!   { false, iconv_IBM_930_e, "IBM-930" },
!   { false, iconv_IBM_932_e, "IBM-932" },
!   { false, iconv_IBM_933_e, "IBM-933" },
!   { false, iconv_IBM_935_e, "IBM-935" },
!   { false, iconv_IBM_937_e, "IBM-937" },
!   { false, iconv_IBM_939_e, "IBM-939" },
!   { false, iconv_IBM_943_e, "IBM-943" },
!   { false, iconv_IBM_1008_e, "IBM-1008" },
!   { false, iconv_IBM_1025_e, "IBM-1025" },
!   { false, iconv_IBM_1046_e, "IBM-1046" },
!   { false, iconv_IBM_1047_e, "IBM-1047" },
!   { false, iconv_IBM_1097_e, "IBM-1097" },
!   { false, iconv_IBM_1112_e, "IBM-1112" },
!   { false, iconv_IBM_1122_e, "IBM-1122" },
!   { false, iconv_IBM_1123_e, "IBM-1123" },
!   { false, iconv_IBM_1124_e, "IBM-1124" },
!   { false, iconv_IBM_1129_e, "IBM-1129" },
!   { false, iconv_IBM_1130_e, "IBM-1130" },
!   { false, iconv_IBM_1132_e, "IBM-1132" },
!   { false, iconv_IBM_1133_e, "IBM-1133" },
!   { false, iconv_IBM_1137_e, "IBM-1137" },
!   { false, iconv_IBM_1140_e, "IBM-1140" },
!   { false, iconv_IBM_1141_e, "IBM-1141" },
!   { false, iconv_IBM_1142_e, "IBM-1142" },
!   { false, iconv_IBM_1143_e, "IBM-1143" },
!   { false, iconv_IBM_1144_e, "IBM-1144" },
!   { false, iconv_IBM_1145_e, "IBM-1145" },
!   { false, iconv_IBM_1146_e, "IBM-1146" },
!   { false, iconv_IBM_1147_e, "IBM-1147" },
!   { false, iconv_IBM_1148_e, "IBM-1148" },
!   { false, iconv_IBM_1149_e, "IBM-1149" },
!   { false, iconv_IBM_1153_e, "IBM-1153" },
!   { false, iconv_IBM_1154_e, "IBM-1154" },
!   { false, iconv_IBM_1155_e, "IBM-1155" },
!   { false, iconv_IBM_1156_e, "IBM-1156" },
!   { false, iconv_IBM_1157_e, "IBM-1157" },
!   { false, iconv_IBM_1158_e, "IBM-1158" },
!   { false, iconv_IBM_1160_e, "IBM-1160" },
!   { false, iconv_IBM_1161_e, "IBM-1161" },
!   { false, iconv_IBM_1162_e, "IBM-1162" },
!   { false, iconv_IBM_1163_e, "IBM-1163" },
!   { false, iconv_IBM_1164_e, "IBM-1164" },
!   { false, iconv_IBM_1166_e, "IBM-1166" },
!   { false, iconv_IBM_1167_e, "IBM-1167" },
!   { false, iconv_IBM_1364_e, "IBM-1364" },
!   { false, iconv_IBM_1371_e, "IBM-1371" },
!   { false, iconv_IBM_1388_e, "IBM-1388" },
!   { false, iconv_IBM_1390_e, "IBM-1390" },
!   { false, iconv_IBM_1399_e, "IBM-1399" },
!   { false, iconv_IBM_4517_e, "IBM-4517" },
!   { false, iconv_IBM_4899_e, "IBM-4899" },
!   { false, iconv_IBM_4909_e, "IBM-4909" },
!   { false, iconv_IBM_4971_e, "IBM-4971" },
!   { false, iconv_IBM_5347_e, "IBM-5347" },
!   { false, iconv_IBM_9030_e, "IBM-9030" },
!   { false, iconv_IBM_9066_e, "IBM-9066" },
!   { false, iconv_IBM_9448_e, "IBM-9448" },
!   { false, iconv_IBM_12712_e, "IBM-12712" },
!   { false, iconv_IBM_16804_e, "IBM-16804" },
!   { false, iconv_IBM037_e, "IBM037" },
!   { false, iconv_IBM038_e, "IBM038" },
!   { false, iconv_IBM256_e, "IBM256" },
!   { false, iconv_IBM273_e, "IBM273" },
!   { false, iconv_IBM274_e, "IBM274" },
!   { false, iconv_IBM275_e, "IBM275" },
!   { false, iconv_IBM277_e, "IBM277" },
!   { false, iconv_IBM278_e, "IBM278" },
!   { false, iconv_IBM280_e, "IBM280" },
!   { false, iconv_IBM281_e, "IBM281" },
!   { false, iconv_IBM284_e, "IBM284" },
!   { false, iconv_IBM285_e, "IBM285" },
!   { false, iconv_IBM290_e, "IBM290" },
!   { false, iconv_IBM297_e, "IBM297" },
!   { false, iconv_IBM367_e, "IBM367" },
!   { false, iconv_IBM420_e, "IBM420" },
!   { false, iconv_IBM423_e, "IBM423" },
!   { false, iconv_IBM424_e, "IBM424" },
!   { false, iconv_IBM437_e, "IBM437" },
!   { false, iconv_IBM500_e, "IBM500" },
!   { false, iconv_IBM775_e, "IBM775" },
!   { false, iconv_IBM803_e, "IBM803" },
!   { false, iconv_IBM813_e, "IBM813" },
!   { false, iconv_IBM819_e, "IBM819" },
!   { false, iconv_IBM848_e, "IBM848" },
!   { false, iconv_IBM850_e, "IBM850" },
!   { false, iconv_IBM851_e, "IBM851" },
!   { false, iconv_IBM852_e, "IBM852" },
!   { false, iconv_IBM855_e, "IBM855" },
!   { false, iconv_IBM856_e, "IBM856" },
!   { false, iconv_IBM857_e, "IBM857" },
!   { false, iconv_IBM858_e, "IBM858" },
!   { false, iconv_IBM860_e, "IBM860" },
!   { false, iconv_IBM861_e, "IBM861" },
!   { false, iconv_IBM862_e, "IBM862" },
!   { false, iconv_IBM863_e, "IBM863" },
!   { false, iconv_IBM864_e, "IBM864" },
!   { false, iconv_IBM865_e, "IBM865" },
!   { false, iconv_IBM866_e, "IBM866" },
!   { false, iconv_IBM866NAV_e, "IBM866NAV" },
!   { false, iconv_IBM868_e, "IBM868" },
!   { false, iconv_IBM869_e, "IBM869" },
!   { false, iconv_IBM870_e, "IBM870" },
!   { false, iconv_IBM871_e, "IBM871" },
!   { false, iconv_IBM874_e, "IBM874" },
!   { false, iconv_IBM875_e, "IBM875" },
!   { false, iconv_IBM880_e, "IBM880" },
!   { false, iconv_IBM891_e, "IBM891" },
!   { false, iconv_IBM901_e, "IBM901" },
!   { false, iconv_IBM902_e, "IBM902" },
!   { false, iconv_IBM903_e, "IBM903" },
!   { false, iconv_IBM904_e, "IBM904" },
!   { false, iconv_IBM905_e, "IBM905" },
!   { false, iconv_IBM912_e, "IBM912" },
!   { false, iconv_IBM915_e, "IBM915" },
!   { false, iconv_IBM916_e, "IBM916" },
!   { false, iconv_IBM918_e, "IBM918" },
!   { false, iconv_IBM920_e, "IBM920" },
!   { false, iconv_IBM921_e, "IBM921" },
!   { false, iconv_IBM922_e, "IBM922" },
!   { false, iconv_IBM930_e, "IBM930" },
!   { false, iconv_IBM932_e, "IBM932" },
!   { false, iconv_IBM933_e, "IBM933" },
!   { false, iconv_IBM935_e, "IBM935" },
!   { false, iconv_IBM937_e, "IBM937" },
!   { false, iconv_IBM939_e, "IBM939" },
!   { false, iconv_IBM943_e, "IBM943" },
!   { false, iconv_IBM1004_e, "IBM1004" },
!   { false, iconv_IBM1008_e, "IBM1008" },
!   { false, iconv_IBM1025_e, "IBM1025" },
!   { false, iconv_IBM1026_e, "IBM1026" },
!   { false, iconv_IBM1046_e, "IBM1046" },
!   { false, iconv_IBM1047_e, "IBM1047" },
!   { false, iconv_IBM1089_e, "IBM1089" },
!   { false, iconv_IBM1097_e, "IBM1097" },
!   { false, iconv_IBM1112_e, "IBM1112" },
!   { false, iconv_IBM1122_e, "IBM1122" },
!   { false, iconv_IBM1123_e, "IBM1123" },
!   { false, iconv_IBM1124_e, "IBM1124" },
!   { false, iconv_IBM1129_e, "IBM1129" },
!   { false, iconv_IBM1130_e, "IBM1130" },
!   { false, iconv_IBM1132_e, "IBM1132" },
!   { false, iconv_IBM1133_e, "IBM1133" },
!   { false, iconv_IBM1137_e, "IBM1137" },
!   { false, iconv_IBM1140_e, "IBM1140" },
!   { false, iconv_IBM1141_e, "IBM1141" },
!   { false, iconv_IBM1142_e, "IBM1142" },
!   { false, iconv_IBM1143_e, "IBM1143" },
!   { false, iconv_IBM1144_e, "IBM1144" },
!   { false, iconv_IBM1145_e, "IBM1145" },
!   { false, iconv_IBM1146_e, "IBM1146" },
!   { false, iconv_IBM1147_e, "IBM1147" },
!   { false, iconv_IBM1148_e, "IBM1148" },
!   { false, iconv_IBM1149_e, "IBM1149" },
!   { false, iconv_IBM1153_e, "IBM1153" },
!   { false, iconv_IBM1154_e, "IBM1154" },
!   { false, iconv_IBM1155_e, "IBM1155" },
!   { false, iconv_IBM1156_e, "IBM1156" },
!   { false, iconv_IBM1157_e, "IBM1157" },
!   { false, iconv_IBM1158_e, "IBM1158" },
!   { false, iconv_IBM1160_e, "IBM1160" },
!   { false, iconv_IBM1161_e, "IBM1161" },
!   { false, iconv_IBM1162_e, "IBM1162" },
!   { false, iconv_IBM1163_e, "IBM1163" },
!   { false, iconv_IBM1164_e, "IBM1164" },
!   { false, iconv_IBM1166_e, "IBM1166" },
!   { false, iconv_IBM1167_e, "IBM1167" },
!   { false, iconv_IBM1364_e, "IBM1364" },
!   { false, iconv_IBM1371_e, "IBM1371" },
!   { false, iconv_IBM1388_e, "IBM1388" },
!   { false, iconv_IBM1390_e, "IBM1390" },
!   { false, iconv_IBM1399_e, "IBM1399" },
!   { false, iconv_IBM4517_e, "IBM4517" },
!   { false, iconv_IBM4899_e, "IBM4899" },
!   { false, iconv_IBM4909_e, "IBM4909" },
!   { false, iconv_IBM4971_e, "IBM4971" },
!   { false, iconv_IBM5347_e, "IBM5347" },
!   { false, iconv_IBM9030_e, "IBM9030" },
!   { false, iconv_IBM9066_e, "IBM9066" },
!   { false, iconv_IBM9448_e, "IBM9448" },
!   { false, iconv_IBM12712_e, "IBM12712" },
!   { false, iconv_IBM16804_e, "IBM16804" },
!   { false, iconv_IEC_P27_1_e, "IEC_P27-1" },
!   { false, iconv_IEC_P271_e, "IEC_P271" },
!   { false, iconv_INIS_8_e, "INIS-8" },
!   { false, iconv_INIS_CYRILLIC_e, "INIS-CYRILLIC" },
!   { false, iconv_INIS_e, "INIS" },
!   { false, iconv_INIS8_e, "INIS8" },
!   { false, iconv_INISCYRILLIC_e, "INISCYRILLIC" },
!   { false, iconv_ISIRI_3342_e, "ISIRI-3342" },
!   { false, iconv_ISIRI3342_e, "ISIRI3342" },
!   { false, iconv_ISO_2022_CN_EXT_e, "ISO-2022-CN-EXT" },
!   { false, iconv_ISO_2022_CN_e, "ISO-2022-CN" },
!   { false, iconv_ISO_2022_JP_2_e, "ISO-2022-JP-2" },
!   { false, iconv_ISO_2022_JP_3_e, "ISO-2022-JP-3" },
!   { false, iconv_ISO_2022_JP_e, "ISO-2022-JP" },
!   { false, iconv_ISO_2022_KR_e, "ISO-2022-KR" },
!   { false, iconv_ISO_8859_1_e, "ISO-8859-1" },
!   { false, iconv_ISO_8859_2_e, "ISO-8859-2" },
!   { false, iconv_ISO_8859_3_e, "ISO-8859-3" },
!   { false, iconv_ISO_8859_4_e, "ISO-8859-4" },
!   { false, iconv_ISO_8859_5_e, "ISO-8859-5" },
!   { false, iconv_ISO_8859_6_e, "ISO-8859-6" },
!   { false, iconv_ISO_8859_7_e, "ISO-8859-7" },
!   { false, iconv_ISO_8859_8_e, "ISO-8859-8" },
!   { false, iconv_ISO_8859_9_e, "ISO-8859-9" },
!   { false, iconv_ISO_8859_9E_e, "ISO-8859-9E" },
!   { false, iconv_ISO_8859_10_e, "ISO-8859-10" },
!   { false, iconv_ISO_8859_11_e, "ISO-8859-11" },
!   { false, iconv_ISO_8859_13_e, "ISO-8859-13" },
!   { false, iconv_ISO_8859_14_e, "ISO-8859-14" },
!   { false, iconv_ISO_8859_15_e, "ISO-8859-15" },
!   { false, iconv_ISO_8859_16_e, "ISO-8859-16" },
!   {  true, iconv_ISO_10646_e, "ISO-10646" },
!   {  true, iconv_ISO_10646_e, "UCS2/ ISO-10646/UCS2/" },
!   {  true, iconv_ISO_10646_e, "UCS4/ ISO-10646/UCS4/" },
!   {  true, iconv_ISO_10646_e, "UTF-8/ ISO-10646/UTF-8/" },
!   {  true, iconv_ISO_10646_e, "UTF8/ ISO-10646/UTF8/" },
!   { false, iconv_ISO_CELTIC_e, "ISO-CELTIC" },
!   { false, iconv_ISO_IR_4_e, "ISO-IR-4" },
!   { false, iconv_ISO_IR_6_e, "ISO-IR-6" },
!   { false, iconv_ISO_IR_8_1_e, "ISO-IR-8-1" },
!   { false, iconv_ISO_IR_9_1_e, "ISO-IR-9-1" },
!   { false, iconv_ISO_IR_10_e, "ISO-IR-10" },
!   { false, iconv_ISO_IR_11_e, "ISO-IR-11" },
!   { false, iconv_ISO_IR_14_e, "ISO-IR-14" },
!   { false, iconv_ISO_IR_15_e, "ISO-IR-15" },
!   { false, iconv_ISO_IR_16_e, "ISO-IR-16" },
!   { false, iconv_ISO_IR_17_e, "ISO-IR-17" },
!   { false, iconv_ISO_IR_18_e, "ISO-IR-18" },
!   { false, iconv_ISO_IR_19_e, "ISO-IR-19" },
!   { false, iconv_ISO_IR_21_e, "ISO-IR-21" },
!   { false, iconv_ISO_IR_25_e, "ISO-IR-25" },
!   { false, iconv_ISO_IR_27_e, "ISO-IR-27" },
!   { false, iconv_ISO_IR_37_e, "ISO-IR-37" },
!   { false, iconv_ISO_IR_49_e, "ISO-IR-49" },
!   { false, iconv_ISO_IR_50_e, "ISO-IR-50" },
!   { false, iconv_ISO_IR_51_e, "ISO-IR-51" },
!   { false, iconv_ISO_IR_54_e, "ISO-IR-54" },
!   { false, iconv_ISO_IR_55_e, "ISO-IR-55" },
!   { false, iconv_ISO_IR_57_e, "ISO-IR-57" },
!   { false, iconv_ISO_IR_60_e, "ISO-IR-60" },
!   { false, iconv_ISO_IR_61_e, "ISO-IR-61" },
!   { false, iconv_ISO_IR_69_e, "ISO-IR-69" },
!   { false, iconv_ISO_IR_84_e, "ISO-IR-84" },
!   { false, iconv_ISO_IR_85_e, "ISO-IR-85" },
!   { false, iconv_ISO_IR_86_e, "ISO-IR-86" },
!   { false, iconv_ISO_IR_88_e, "ISO-IR-88" },
!   { false, iconv_ISO_IR_89_e, "ISO-IR-89" },
!   { false, iconv_ISO_IR_90_e, "ISO-IR-90" },
!   { false, iconv_ISO_IR_92_e, "ISO-IR-92" },
!   { false, iconv_ISO_IR_98_e, "ISO-IR-98" },
!   { false, iconv_ISO_IR_99_e, "ISO-IR-99" },
!   { false, iconv_ISO_IR_100_e, "ISO-IR-100" },
!   { false, iconv_ISO_IR_101_e, "ISO-IR-101" },
!   { false, iconv_ISO_IR_103_e, "ISO-IR-103" },
!   { false, iconv_ISO_IR_109_e, "ISO-IR-109" },
!   { false, iconv_ISO_IR_110_e, "ISO-IR-110" },
!   { false, iconv_ISO_IR_111_e, "ISO-IR-111" },
!   { false, iconv_ISO_IR_121_e, "ISO-IR-121" },
!   { false, iconv_ISO_IR_122_e, "ISO-IR-122" },
!   { false, iconv_ISO_IR_126_e, "ISO-IR-126" },
!   { false, iconv_ISO_IR_127_e, "ISO-IR-127" },
!   { false, iconv_ISO_IR_138_e, "ISO-IR-138" },
!   { false, iconv_ISO_IR_139_e, "ISO-IR-139" },
!   { false, iconv_ISO_IR_141_e, "ISO-IR-141" },
!   { false, iconv_ISO_IR_143_e, "ISO-IR-143" },
!   { false, iconv_ISO_IR_144_e, "ISO-IR-144" },
!   { false, iconv_ISO_IR_148_e, "ISO-IR-148" },
!   { false, iconv_ISO_IR_150_e, "ISO-IR-150" },
!   { false, iconv_ISO_IR_151_e, "ISO-IR-151" },
!   { false, iconv_ISO_IR_153_e, "ISO-IR-153" },
!   { false, iconv_ISO_IR_155_e, "ISO-IR-155" },
!   { false, iconv_ISO_IR_156_e, "ISO-IR-156" },
!   { false, iconv_ISO_IR_157_e, "ISO-IR-157" },
!   { false, iconv_ISO_IR_166_e, "ISO-IR-166" },
!   { false, iconv_ISO_IR_179_e, "ISO-IR-179" },
!   { false, iconv_ISO_IR_193_e, "ISO-IR-193" },
!   { false, iconv_ISO_IR_197_e, "ISO-IR-197" },
!   { false, iconv_ISO_IR_199_e, "ISO-IR-199" },
!   { false, iconv_ISO_IR_203_e, "ISO-IR-203" },
!   { false, iconv_ISO_IR_209_e, "ISO-IR-209" },
!   { false, iconv_ISO_IR_226_e, "ISO-IR-226" },
!   { false, iconv_ISO_e, "TR_11548-1/ ISO/TR_11548-1/" },
!   { false, iconv_ISO646_CA_e, "ISO646-CA" },
!   { false, iconv_ISO646_CA2_e, "ISO646-CA2" },
!   { false, iconv_ISO646_CN_e, "ISO646-CN" },
!   { false, iconv_ISO646_CU_e, "ISO646-CU" },
!   { false, iconv_ISO646_DE_e, "ISO646-DE" },
!   { false, iconv_ISO646_DK_e, "ISO646-DK" },
!   { false, iconv_ISO646_ES_e, "ISO646-ES" },
!   { false, iconv_ISO646_ES2_e, "ISO646-ES2" },
!   { false, iconv_ISO646_FI_e, "ISO646-FI" },
!   { false, iconv_ISO646_FR_e, "ISO646-FR" },
!   { false, iconv_ISO646_FR1_e, "ISO646-FR1" },
!   { false, iconv_ISO646_GB_e, "ISO646-GB" },
!   { false, iconv_ISO646_HU_e, "ISO646-HU" },
!   { false, iconv_ISO646_IT_e, "ISO646-IT" },
!   { false, iconv_ISO646_JP_OCR_B_e, "ISO646-JP-OCR-B" },
!   { false, iconv_ISO646_JP_e, "ISO646-JP" },
!   { false, iconv_ISO646_KR_e, "ISO646-KR" },
!   { false, iconv_ISO646_NO_e, "ISO646-NO" },
!   { false, iconv_ISO646_NO2_e, "ISO646-NO2" },
!   { false, iconv_ISO646_PT_e, "ISO646-PT" },
!   { false, iconv_ISO646_PT2_e, "ISO646-PT2" },
!   { false, iconv_ISO646_SE_e, "ISO646-SE" },
!   { false, iconv_ISO646_SE2_e, "ISO646-SE2" },
!   { false, iconv_ISO646_US_e, "ISO646-US" },
!   { false, iconv_ISO646_YU_e, "ISO646-YU" },
!   { false, iconv_ISO2022CN_e, "ISO2022CN" },
!   { false, iconv_ISO2022CNEXT_e, "ISO2022CNEXT" },
!   { false, iconv_ISO2022JP_e, "ISO2022JP" },
!   { false, iconv_ISO2022JP2_e, "ISO2022JP2" },
!   { false, iconv_ISO2022KR_e, "ISO2022KR" },
!   { false, iconv_ISO6937_e, "ISO6937" },
!   { false, iconv_ISO8859_1_e, "ISO8859-1" },
!   { false, iconv_ISO8859_2_e, "ISO8859-2" },
!   { false, iconv_ISO8859_3_e, "ISO8859-3" },
!   { false, iconv_ISO8859_4_e, "ISO8859-4" },
!   { false, iconv_ISO8859_5_e, "ISO8859-5" },
!   { false, iconv_ISO8859_6_e, "ISO8859-6" },
!   { false, iconv_ISO8859_7_e, "ISO8859-7" },
!   { false, iconv_ISO8859_8_e, "ISO8859-8" },
!   { false, iconv_ISO8859_9_e, "ISO8859-9" },
!   { false, iconv_ISO8859_9E_e, "ISO8859-9E" },
!   { false, iconv_ISO8859_10_e, "ISO8859-10" },
!   { false, iconv_ISO8859_11_e, "ISO8859-11" },
!   { false, iconv_ISO8859_13_e, "ISO8859-13" },
!   { false, iconv_ISO8859_14_e, "ISO8859-14" },
!   { false, iconv_ISO8859_15_e, "ISO8859-15" },
!   { false, iconv_ISO8859_16_e, "ISO8859-16" },
!   { false, iconv_ISO11548_1_e, "ISO11548-1" },
!   { false, iconv_ISO88591_e, "ISO88591" },
!   { false, iconv_ISO88592_e, "ISO88592" },
!   { false, iconv_ISO88593_e, "ISO88593" },
!   { false, iconv_ISO88594_e, "ISO88594" },
!   { false, iconv_ISO88595_e, "ISO88595" },
!   { false, iconv_ISO88596_e, "ISO88596" },
!   { false, iconv_ISO88597_e, "ISO88597" },
!   { false, iconv_ISO88598_e, "ISO88598" },
!   { false, iconv_ISO88599_e, "ISO88599" },
!   { false, iconv_ISO88599E_e, "ISO88599E" },
!   { false, iconv_ISO885910_e, "ISO885910" },
!   { false, iconv_ISO885911_e, "ISO885911" },
!   { false, iconv_ISO885913_e, "ISO885913" },
!   { false, iconv_ISO885914_e, "ISO885914" },
!   { false, iconv_ISO885915_e, "ISO885915" },
!   { false, iconv_ISO885916_e, "ISO885916" },
!   { false, iconv_ISO_646_IRV_1991_e, "ISO_646.IRV:1991" },
!   { false, iconv_ISO_2033_1983_e, "ISO_2033-1983" },
!   { false, iconv_ISO_2033_e, "ISO_2033" },
!   { false, iconv_ISO_5427_EXT_e, "ISO_5427-EXT" },
!   { false, iconv_ISO_5427_e, "ISO_5427" },
!   { false, iconv_ISO_5427_1981_e, "ISO_5427:1981" },
!   { false, iconv_ISO_5427EXT_e, "ISO_5427EXT" },
!   { false, iconv_ISO_5428_e, "ISO_5428" },
!   { false, iconv_ISO_5428_1980_e, "ISO_5428:1980" },
!   { false, iconv_ISO_6937_2_e, "ISO_6937-2" },
!   { false, iconv_ISO_6937_2_1983_e, "ISO_6937-2:1983" },
!   { false, iconv_ISO_6937_e, "ISO_6937" },
!   { false, iconv_ISO_6937_1992_e, "ISO_6937:1992" },
!   { false, iconv_ISO_8859_1_e, "ISO_8859-1" },
!   { false, iconv_ISO_8859_1_1987_e, "ISO_8859-1:1987" },
!   { false, iconv_ISO_8859_2_e, "ISO_8859-2" },
!   { false, iconv_ISO_8859_2_1987_e, "ISO_8859-2:1987" },
!   { false, iconv_ISO_8859_3_e, "ISO_8859-3" },
!   { false, iconv_ISO_8859_3_1988_e, "ISO_8859-3:1988" },
!   { false, iconv_ISO_8859_4_e, "ISO_8859-4" },
!   { false, iconv_ISO_8859_4_1988_e, "ISO_8859-4:1988" },
!   { false, iconv_ISO_8859_5_e, "ISO_8859-5" },
!   { false, iconv_ISO_8859_5_1988_e, "ISO_8859-5:1988" },
!   { false, iconv_ISO_8859_6_e, "ISO_8859-6" },
!   { false, iconv_ISO_8859_6_1987_e, "ISO_8859-6:1987" },
!   { false, iconv_ISO_8859_7_e, "ISO_8859-7" },
!   { false, iconv_ISO_8859_7_1987_e, "ISO_8859-7:1987" },
!   { false, iconv_ISO_8859_7_2003_e, "ISO_8859-7:2003" },
!   { false, iconv_ISO_8859_8_e, "ISO_8859-8" },
!   { false, iconv_ISO_8859_8_1988_e, "ISO_8859-8:1988" },
!   { false, iconv_ISO_8859_9_e, "ISO_8859-9" },
!   { false, iconv_ISO_8859_9_1989_e, "ISO_8859-9:1989" },
!   { false, iconv_ISO_8859_9E_e, "ISO_8859-9E" },
!   { false, iconv_ISO_8859_10_e, "ISO_8859-10" },
!   { false, iconv_ISO_8859_10_1992_e, "ISO_8859-10:1992" },
!   { false, iconv_ISO_8859_14_e, "ISO_8859-14" },
!   { false, iconv_ISO_8859_14_1998_e, "ISO_8859-14:1998" },
!   { false, iconv_ISO_8859_15_e, "ISO_8859-15" },
!   { false, iconv_ISO_8859_15_1998_e, "ISO_8859-15:1998" },
!   { false, iconv_ISO_8859_16_e, "ISO_8859-16" },
!   { false, iconv_ISO_8859_16_2001_e, "ISO_8859-16:2001" },
!   { false, iconv_ISO_9036_e, "ISO_9036" },
!   { false, iconv_ISO_10367_BOX_e, "ISO_10367-BOX" },
!   { false, iconv_ISO_10367BOX_e, "ISO_10367BOX" },
!   { false, iconv_ISO_11548_1_e, "ISO_11548-1" },
!   { false, iconv_ISO_69372_e, "ISO_69372" },
!   { false, iconv_IT_e, "IT" },
!   { false, iconv_JIS_C6220_1969_RO_e, "JIS_C6220-1969-RO" },
!   { false, iconv_JIS_C6229_1984_B_e, "JIS_C6229-1984-B" },
!   { false, iconv_JIS_C62201969RO_e, "JIS_C62201969RO" },
!   { false, iconv_JIS_C62291984B_e, "JIS_C62291984B" },
!   { false, iconv_JOHAB_e, "JOHAB" },
!   { false, iconv_JP_OCR_B_e, "JP-OCR-B" },
!   { false, iconv_JP_e, "JP" },
!   { false, iconv_JS_e, "JS" },
!   { false, iconv_JUS_I_B1_002_e, "JUS_I.B1.002" },
!   { false, iconv_KOI_7_e, "KOI-7" },
!   { false, iconv_KOI_8_e, "KOI-8" },
!   { false, iconv_KOI8_R_e, "KOI8-R" },
!   { false, iconv_KOI8_RU_e, "KOI8-RU" },
!   { false, iconv_KOI8_T_e, "KOI8-T" },
!   { false, iconv_KOI8_U_e, "KOI8-U" },
!   { false, iconv_KOI8_e, "KOI8" },
!   { false, iconv_KOI8R_e, "KOI8R" },
!   { false, iconv_KOI8U_e, "KOI8U" },
!   { false, iconv_KSC5636_e, "KSC5636" },
!   { false, iconv_L1_e, "L1" },
!   { false, iconv_L2_e, "L2" },
!   { false, iconv_L3_e, "L3" },
!   { false, iconv_L4_e, "L4" },
!   { false, iconv_L5_e, "L5" },
!   { false, iconv_L6_e, "L6" },
!   { false, iconv_L7_e, "L7" },
!   { false, iconv_L8_e, "L8" },
!   { false, iconv_L10_e, "L10" },
!   { false, iconv_LATIN_9_e, "LATIN-9" },
!   { false, iconv_LATIN_GREEK_1_e, "LATIN-GREEK-1" },
!   { false, iconv_LATIN_GREEK_e, "LATIN-GREEK" },
!   { false, iconv_LATIN1_e, "LATIN1" },
!   { false, iconv_LATIN2_e, "LATIN2" },
!   { false, iconv_LATIN3_e, "LATIN3" },
!   { false, iconv_LATIN4_e, "LATIN4" },
!   { false, iconv_LATIN5_e, "LATIN5" },
!   { false, iconv_LATIN6_e, "LATIN6" },
!   { false, iconv_LATIN7_e, "LATIN7" },
!   { false, iconv_LATIN8_e, "LATIN8" },
!   { false, iconv_LATIN9_e, "LATIN9" },
!   { false, iconv_LATIN10_e, "LATIN10" },
!   { false, iconv_LATINGREEK_e, "LATINGREEK" },
!   { false, iconv_LATINGREEK1_e, "LATINGREEK1" },
!   { false, iconv_MAC_CENTRALEUROPE_e, "MAC-CENTRALEUROPE" },
!   { false, iconv_MAC_CYRILLIC_e, "MAC-CYRILLIC" },
!   { false, iconv_MAC_IS_e, "MAC-IS" },
!   { false, iconv_MAC_SAMI_e, "MAC-SAMI" },
!   { false, iconv_MAC_UK_e, "MAC-UK" },
!   { false, iconv_MAC_e, "MAC" },
!   { false, iconv_MACCYRILLIC_e, "MACCYRILLIC" },
!   { false, iconv_MACINTOSH_e, "MACINTOSH" },
!   { false, iconv_MACIS_e, "MACIS" },
!   { false, iconv_MACUK_e, "MACUK" },
!   { false, iconv_MACUKRAINIAN_e, "MACUKRAINIAN" },
!   { false, iconv_MIK_e, "MIK" },
!   { false, iconv_MS_ANSI_e, "MS-ANSI" },
!   { false, iconv_MS_ARAB_e, "MS-ARAB" },
!   { false, iconv_MS_CYRL_e, "MS-CYRL" },
!   { false, iconv_MS_EE_e, "MS-EE" },
!   { false, iconv_MS_GREEK_e, "MS-GREEK" },
!   { false, iconv_MS_HEBR_e, "MS-HEBR" },
!   { false, iconv_MS_MAC_CYRILLIC_e, "MS-MAC-CYRILLIC" },
!   { false, iconv_MS_TURK_e, "MS-TURK" },
!   { false, iconv_MS932_e, "MS932" },
!   { false, iconv_MS936_e, "MS936" },
!   { false, iconv_MSCP949_e, "MSCP949" },
!   { false, iconv_MSCP1361_e, "MSCP1361" },
!   { false, iconv_MSMACCYRILLIC_e, "MSMACCYRILLIC" },
!   { false, iconv_MSZ_7795_3_e, "MSZ_7795.3" },
!   { false, iconv_MS_KANJI_e, "MS_KANJI" },
!   { false, iconv_NAPLPS_e, "NAPLPS" },
!   { false, iconv_NATS_DANO_e, "NATS-DANO" },
!   { false, iconv_NATS_SEFI_e, "NATS-SEFI" },
!   { false, iconv_NATSDANO_e, "NATSDANO" },
!   { false, iconv_NATSSEFI_e, "NATSSEFI" },
!   { false, iconv_NC_NC0010_e, "NC_NC0010" },
!   { false, iconv_NC_NC00_10_e, "NC_NC00-10" },
!   { false, iconv_NC_NC00_10_81_e, "NC_NC00-10:81" },
!   { false, iconv_NF_Z_62_010_e, "NF_Z_62-010" },
!   { false, iconv_NF_Z_62_010__1973__e, "NF_Z_62-010_(1973)" },
!   { false, iconv_NF_Z_62_010_1973_e, "NF_Z_62-010_1973" },
!   { false, iconv_NF_Z_62010_e, "NF_Z_62010" },
!   { false, iconv_NF_Z_62010_1973_e, "NF_Z_62010_1973" },
!   { false, iconv_NO_e, "NO" },
!   { false, iconv_NO2_e, "NO2" },
!   { false, iconv_NS_4551_1_e, "NS_4551-1" },
!   { false, iconv_NS_4551_2_e, "NS_4551-2" },
!   { false, iconv_NS_45511_e, "NS_45511" },
!   { false, iconv_NS_45512_e, "NS_45512" },
!   { false, iconv_OS2LATIN1_e, "OS2LATIN1" },
!   { false, iconv_OSF00010001_e, "OSF00010001" },
!   { false, iconv_OSF00010002_e, "OSF00010002" },
!   { false, iconv_OSF00010003_e, "OSF00010003" },
!   { false, iconv_OSF00010004_e, "OSF00010004" },
!   { false, iconv_OSF00010005_e, "OSF00010005" },
!   { false, iconv_OSF00010006_e, "OSF00010006" },
!   { false, iconv_OSF00010007_e, "OSF00010007" },
!   { false, iconv_OSF00010008_e, "OSF00010008" },
!   { false, iconv_OSF00010009_e, "OSF00010009" },
!   { false, iconv_OSF0001000A_e, "OSF0001000A" },
!   { false, iconv_OSF00010020_e, "OSF00010020" },
!   { false, iconv_OSF00010100_e, "OSF00010100" },
!   { false, iconv_OSF00010101_e, "OSF00010101" },
!   { false, iconv_OSF00010102_e, "OSF00010102" },
!   { false, iconv_OSF00010104_e, "OSF00010104" },
!   { false, iconv_OSF00010105_e, "OSF00010105" },
!   { false, iconv_OSF00010106_e, "OSF00010106" },
!   { false, iconv_OSF00030010_e, "OSF00030010" },
!   { false, iconv_OSF0004000A_e, "OSF0004000A" },
!   { false, iconv_OSF0005000A_e, "OSF0005000A" },
!   { false, iconv_OSF05010001_e, "OSF05010001" },
!   { false, iconv_OSF100201A4_e, "OSF100201A4" },
!   { false, iconv_OSF100201A8_e, "OSF100201A8" },
!   { false, iconv_OSF100201B5_e, "OSF100201B5" },
!   { false, iconv_OSF100201F4_e, "OSF100201F4" },
!   { false, iconv_OSF100203B5_e, "OSF100203B5" },
!   { false, iconv_OSF1002011C_e, "OSF1002011C" },
!   { false, iconv_OSF1002011D_e, "OSF1002011D" },
!   { false, iconv_OSF1002035D_e, "OSF1002035D" },
!   { false, iconv_OSF1002035E_e, "OSF1002035E" },
!   { false, iconv_OSF1002035F_e, "OSF1002035F" },
!   { false, iconv_OSF1002036B_e, "OSF1002036B" },
!   { false, iconv_OSF1002037B_e, "OSF1002037B" },
!   { false, iconv_OSF10010001_e, "OSF10010001" },
!   { false, iconv_OSF10010004_e, "OSF10010004" },
!   { false, iconv_OSF10010006_e, "OSF10010006" },
!   { false, iconv_OSF10020025_e, "OSF10020025" },
!   { false, iconv_OSF10020111_e, "OSF10020111" },
!   { false, iconv_OSF10020115_e, "OSF10020115" },
!   { false, iconv_OSF10020116_e, "OSF10020116" },
!   { false, iconv_OSF10020118_e, "OSF10020118" },
!   { false, iconv_OSF10020122_e, "OSF10020122" },
!   { false, iconv_OSF10020129_e, "OSF10020129" },
!   { false, iconv_OSF10020352_e, "OSF10020352" },
!   { false, iconv_OSF10020354_e, "OSF10020354" },
!   { false, iconv_OSF10020357_e, "OSF10020357" },
!   { false, iconv_OSF10020359_e, "OSF10020359" },
!   { false, iconv_OSF10020360_e, "OSF10020360" },
!   { false, iconv_OSF10020364_e, "OSF10020364" },
!   { false, iconv_OSF10020365_e, "OSF10020365" },
!   { false, iconv_OSF10020366_e, "OSF10020366" },
!   { false, iconv_OSF10020367_e, "OSF10020367" },
!   { false, iconv_OSF10020370_e, "OSF10020370" },
!   { false, iconv_OSF10020387_e, "OSF10020387" },
!   { false, iconv_OSF10020388_e, "OSF10020388" },
!   { false, iconv_OSF10020396_e, "OSF10020396" },
!   { false, iconv_OSF10020402_e, "OSF10020402" },
!   { false, iconv_OSF10020417_e, "OSF10020417" },
!   { false, iconv_PT_e, "PT" },
!   { false, iconv_PT2_e, "PT2" },
!   { false, iconv_PT154_e, "PT154" },
!   { false, iconv_R8_e, "R8" },
!   { false, iconv_R9_e, "R9" },
!   { false, iconv_RK1048_e, "RK1048" },
!   { false, iconv_ROMAN8_e, "ROMAN8" },
!   { false, iconv_ROMAN9_e, "ROMAN9" },
!   { false, iconv_RUSCII_e, "RUSCII" },
!   { false, iconv_SE_e, "SE" },
!   { false, iconv_SE2_e, "SE2" },
!   { false, iconv_SEN_850200_B_e, "SEN_850200_B" },
!   { false, iconv_SEN_850200_C_e, "SEN_850200_C" },
!   { false, iconv_SHIFT_JIS_e, "SHIFT-JIS" },
!   { false, iconv_SHIFTJISX0213_e, "SHIFTJISX0213" },
!   { false, iconv_SHIFT_JIS_e, "SHIFT_JIS" },
!   { false, iconv_SHIFT_JISX0213_e, "SHIFT_JISX0213" },
!   { false, iconv_SJIS_OPEN_e, "SJIS-OPEN" },
!   { false, iconv_SJIS_WIN_e, "SJIS-WIN" },
!   { false, iconv_SJIS_e, "SJIS" },
!   { false, iconv_SS636127_e, "SS636127" },
!   { false, iconv_STRK1048_2002_e, "STRK1048-2002" },
!   { false, iconv_ST_SEV_358_88_e, "ST_SEV_358-88" },
!   { false, iconv_T_61_8BIT_e, "T.61-8BIT" },
!   { false, iconv_T_61_e, "T.61" },
!   { false, iconv_T_618BIT_e, "T.618BIT" },
!   { false, iconv_TCVN_5712_e, "TCVN-5712" },
!   { false, iconv_TCVN_e, "TCVN" },
!   { false, iconv_TCVN5712_1_e, "TCVN5712-1" },
!   { false, iconv_TCVN5712_1_1993_e, "TCVN5712-1:1993" },
!   { false, iconv_THAI8_e, "THAI8" },
!   { false, iconv_TIS_620_e, "TIS-620" },
!   { false, iconv_TIS620_0_e, "TIS620-0" },
!   { false, iconv_TIS620_2529_1_e, "TIS620.2529-1" },
!   { false, iconv_TIS620_2533_0_e, "TIS620.2533-0" },
!   { false, iconv_TIS620_e, "TIS620" },
!   { false, iconv_TS_5881_e, "TS-5881" },
!   { false, iconv_TSCII_e, "TSCII" },
!   { false, iconv_TURKISH8_e, "TURKISH8" },
!   { false, iconv_UCS_2_e, "UCS-2" },
!   { false, iconv_UCS_2BE_e, "UCS-2BE" },
!   { false, iconv_UCS_2LE_e, "UCS-2LE" },
!   { false, iconv_UCS_4_e, "UCS-4" },
!   { false, iconv_UCS_4BE_e, "UCS-4BE" },
!   { false, iconv_UCS_4LE_e, "UCS-4LE" },
!   { false, iconv_UCS2_e, "UCS2" },
!   { false, iconv_UCS4_e, "UCS4" },
!   { false, iconv_UHC_e, "UHC" },
!   { false, iconv_UJIS_e, "UJIS" },
!   { false, iconv_UK_e, "UK" },
!   { false, iconv_UNICODE_e, "UNICODE" },
!   { false, iconv_UNICODEBIG_e, "UNICODEBIG" },
!   { false, iconv_UNICODELITTLE_e, "UNICODELITTLE" },
!   { false, iconv_US_ASCII_e, "US-ASCII" },
!   { false, iconv_US_e, "US" },
!   { false, iconv_UTF_7_e, "UTF-7" },
!   // Is UTF-8 supported??  "supported" means "recognized by parser_alphabet",
!   // but UTF-8 is not a valid runtime encoding.
!   { false, iconv_UTF_8_e, "UTF-8" },  
!   { false, iconv_UTF_16_e, "UTF-16" },
!   { false, iconv_UTF_16BE_e, "UTF-16BE" },
!   { false, iconv_UTF_16LE_e, "UTF-16LE" },
!   { false, iconv_UTF_32_e, "UTF-32" },
!   { false, iconv_UTF_32BE_e, "UTF-32BE" },
!   { false, iconv_UTF_32LE_e, "UTF-32LE" },
!   { false, iconv_UTF7_e, "UTF7" },
!   { false, iconv_UTF8_e, "UTF8" },
!   { false, iconv_UTF16_e, "UTF16" },
!   { false, iconv_UTF16BE_e, "UTF16BE" },
!   { false, iconv_UTF16LE_e, "UTF16LE" },
!   { false, iconv_UTF32_e, "UTF32" },
!   { false, iconv_UTF32BE_e, "UTF32BE" },
!   { false, iconv_UTF32LE_e, "UTF32LE" },
!   { false, iconv_VISCII_e, "VISCII" },
!   { false, iconv_WCHAR_T_e, "WCHAR_T" },
!   { false, iconv_WIN_SAMI_2_e, "WIN-SAMI-2" },
!   { false, iconv_WINBALTRIM_e, "WINBALTRIM" },
!   { false, iconv_WINDOWS_31J_e, "WINDOWS-31J" },
!   { false, iconv_WINDOWS_874_e, "WINDOWS-874" },
!   { false, iconv_WINDOWS_936_e, "WINDOWS-936" },
!   { false, iconv_WINDOWS_1250_e, "WINDOWS-1250" },
!   { false, iconv_WINDOWS_1251_e, "WINDOWS-1251" },
!   { false, iconv_WINDOWS_1252_e, "WINDOWS-1252" },
!   { false, iconv_WINDOWS_1253_e, "WINDOWS-1253" },
!   { false, iconv_WINDOWS_1254_e, "WINDOWS-1254" },
!   { false, iconv_WINDOWS_1255_e, "WINDOWS-1255" },
!   { false, iconv_WINDOWS_1256_e, "WINDOWS-1256" },
!   { false, iconv_WINDOWS_1257_e, "WINDOWS-1257" },
!   { false, iconv_WINDOWS_1258_e, "WINDOWS-1258" },
!   { false, iconv_WINSAMI2_e, "WINSAMI2" },
!   { false, iconv_WS2_e, "WS2" },
!   { false, iconv_YU_e, "YU" },
  };
  
! static const encodings_t *
! encoding_descr( cbl_encoding_t encoding ) {
    static encodings_t *eoencodings = encodings + COUNT_OF(encodings);
  
    auto p = std::find_if( encodings, eoencodings,
                           [encoding]( const encodings_t& elem ) {
                             return encoding == elem.type;
                           } );
!   return p < eoencodings? p : nullptr;
! }
! 
! const char *
! __gg__encoding_iconv_name( cbl_encoding_t encoding ) {
!   auto p = encoding_descr(encoding);
!   return p? p->name : nullptr;
! }
! 
! bool
! __gg__encoding_iconv_valid( cbl_encoding_t encoding ) {
!   auto p = encoding_descr(encoding);
!   return p? p->supported : false;
  }
  
  cbl_encoding_t
diff -Nrcpad gcc-16-20251019/libgcobol/charmaps.h gcc-16-20251026/libgcobol/charmaps.h
*** gcc-16-20251019/libgcobol/charmaps.h	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/charmaps.h	Sun Oct 26 22:33:05 2025
*************** extern int    __gg__low_value_character
*** 110,115 ****
--- 110,117 ----
  extern int    __gg__high_value_character ;
  extern char **__gg__currency_signs       ;
  extern int    __gg__default_currency_sign;
+ extern cbl_encoding_t __gg__display_encoding ;
+ extern cbl_encoding_t __gg__national_encoding ;
  extern char  *__gg__ct_currency_signs[256];  // Compile-time currency signs
  
  #define NULLCH ('\0')
*************** class charmap_t
*** 307,317 ****
        }
      int low_value_character()
        {
!       return __gg__low_value_character;
        }
      int high_value_character()
        {
!       return __gg__high_value_character;
        }
  
      int figconst_character(cbl_figconst_t figconst)
--- 309,319 ----
        }
      int low_value_character()
        {
!       return mapped_character(__gg__low_value_character);
        }
      int high_value_character()
        {
!       return mapped_character(__gg__high_value_character);
        }
  
      int figconst_character(cbl_figconst_t figconst)
diff -Nrcpad gcc-16-20251019/libgcobol/common-defs.h gcc-16-20251026/libgcobol/common-defs.h
*** gcc-16-20251019/libgcobol/common-defs.h	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/common-defs.h	Sun Oct 26 22:33:05 2025
***************
*** 33,39 ****
--- 33,43 ----
  #include <cassert>
  #include <cstdio>
  #include <cstdint>
+ 
+ #include <algorithm>
  #include <list>
+ #include <set>
+ #include <vector>
  
  #include "encodings.h"
  
***************
*** 125,130 ****
--- 129,136 ----
   */
  typedef char cbl_name_t[64];
  
+ typedef void (callback_t)();
+ 
  // Note that the field_type enum is duplicated in the source code for the
  // COBOL-aware GDB, and so any changes here (or there) have to be reflected
  // there (or here)
diff -Nrcpad gcc-16-20251019/libgcobol/constants.cc gcc-16-20251026/libgcobol/constants.cc
*** gcc-16-20251019/libgcobol/constants.cc	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/constants.cc	Sun Oct 26 22:33:05 2025
*************** struct cblc_field_t __ggsr__nulls = {
*** 248,254 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x280 ,
    .type           = FldPointer ,
    .level          = 0 ,
    .digits         = 0 ,
--- 248,254 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e ,
    .type           = FldPointer ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___dev_null =
*** 428,434 ****
    };
  
  unsigned char __gg__data_tally[] = {0,0};
! struct cblc_field_t __ggsr__tally = {
    .data           = __gg__data_tally ,
    .capacity       = 4 ,
    .allocated      = 4 ,
--- 428,434 ----
    };
  
  unsigned char __gg__data_tally[] = {0,0};
! struct cblc_field_t __ggsr___tally = {
    .data           = __gg__data_tally ,
    .capacity       = 4 ,
    .allocated      = 4 ,
*************** struct cblc_field_t __ggsr__argi = {
*** 469,489 ****
    .alphabet       = 0 ,
    };
  
! /**
  
! Special registers used by the XML parser
! Special register Implicit definition and usage Content
!     
! XML-EVENT PICTURE X(30) USAGE DISPLAY VALUE SPACE *> name of XML event
! XML-CODE  PICTURE S9(9) USAGE BINARY VALUE ZERO   *> status of XML event 
! XML-TEXT  Variable-length alphanumeric item
! XML-NTEXT Variable-length national item
  
  
  
! **/
  
  
  
  /* The following defines storage for the global DEBUG-ITEM:
  
--- 469,668 ----
    .alphabet       = 0 ,
    };
  
! /*
!  * Special registers used by the XML parser
!  */
! // XML-CODE  PICTURE S9(9) USAGE BINARY VALUE ZERO   *> status of XML event
! static int __gg__data_xml_code = 0;
! struct cblc_field_t __ggsr__xml_code = {
!   .data           = reinterpret_cast<unsigned char*>(&__gg__data_xml_code), 
!   .capacity       = 4 ,
!   .allocated      = 4 ,
!   .offset         = 0 ,
!   .name           = "XML-CODE" ,
!   .picture        = "" ,
!   .initial        = "" ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e,
!   .type           = FldNumericBin5 ,
!   .level          = 0 ,
!   .digits         = 9 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
  
! // XML-EVENT PICTURE X(30) USAGE DISPLAY VALUE SPACE *> name of XML event
! static unsigned char __gg__data_xml_event[30];
! struct cblc_field_t __ggsr__xml_event = {
!   .data           = __gg__data_xml_event, 
!   .capacity       = 30 ,
!   .allocated      = 30 ,
!   .offset         = 0 ,
!   .name           = "XML-EVENT" ,
!   .picture        = "" ,
!   .initial        = NULL,
!   .parent         = NULL, 
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e ,
!   .type           = FldAlphanumeric ,
!   .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
  
+ // XML-INFORMATION  PICTURE S9(9) USAGE BINARY VALUE ZERO
+ static int __gg__data_xml_information = 0;
+ struct cblc_field_t __ggsr__xml_information = {
+   .data           = reinterpret_cast<unsigned char*>(&__gg__data_xml_information), 
+   .capacity       = 4 ,
+   .allocated      = 4 ,
+   .offset         = 0 ,
+   .name           = "XML-INFORMATION" ,
+   .picture        = "" ,
+   .initial        = "" ,
+   .parent         = NULL,
+   .occurs_lower   = 0 ,
+   .occurs_upper   = 0 ,
+   .attr           = register_e,
+   .type           = FldNumericBin5 ,
+   .level          = 0 ,
+   .digits         = 9 ,
+   .rdigits        = 0 ,
+   .encoding       = iconv_CP1252_e ,
+   .alphabet       = 0 ,
+   };
  
+ // XML-NAMESPACE  Variable-length based alphanumeric item
+ struct cblc_field_t __ggsr__xml_namespace = {
+   .data           = nullptr ,
+   .capacity       = 1 ,
+   .allocated      = 1 ,
+   .offset         = 0 ,
+   .name           = "XML-NAMESPACE" ,
+   .picture        = "" ,
+   .initial        = "" ,
+   .parent         = NULL,
+   .occurs_lower   = 0 ,
+   .occurs_upper   = 0 ,
+   .attr           = register_e | based_e | any_length_e,
+   .type           = FldAlphanumeric ,
+   .level          = 0 ,
+   .digits         = 0 ,
+   .rdigits        = 0 ,
+   .encoding       = iconv_CP1252_e ,
+   .alphabet       = 0 ,
+   };
  
! // XML-NNAMESPACE Variable-length national item
! struct cblc_field_t __ggsr__xml_nnamespace = {
!   .data           = nullptr ,
!   .capacity       = 1 ,
!   .allocated      = 1 ,
!   .offset         = 0 ,
!   .name           = "XML-NNAMESPACE" ,
!   .picture        = "" ,
!   .initial        = "" ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e | based_e | any_length_e,
!   .type           = FldAlphanumeric ,
!   .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
! 
! // XML-NAMESPACE-PREFIX  Variable-length based alphanumeric item
! struct cblc_field_t __ggsr__xml_namespace_prefix = {
!   .data           = nullptr ,
!   .capacity       = 1 ,
!   .allocated      = 1 ,
!   .offset         = 0 ,
!   .name           = "XML-NAMESPACE-PREFIX" ,
!   .picture        = "" ,
!   .initial        = "" ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e | based_e | any_length_e,
!   .type           = FldAlphanumeric ,
!   .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
! 
! // XML-NNAMESPACE_PREFIX Variable-length national item
! struct cblc_field_t __ggsr__xml_nnamespace_prefix = {
!   .data           = nullptr ,
!   .capacity       = 1 ,
!   .allocated      = 1 ,
!   .offset         = 0 ,
!   .name           = "XML-NNAMESPACE-PREFIX" ,
!   .picture        = "" ,
!   .initial        = "" ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e | based_e | any_length_e,
!   .type           = FldAlphanumeric ,
!   .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
  
+ // XML-TEXT  Variable-length based alphanumeric item
+ struct cblc_field_t __ggsr__xml_text = {
+   .data           = nullptr ,
+   .capacity       = 1 ,
+   .allocated      = 1 ,
+   .offset         = 0 ,
+   .name           = "XML-TEXT" ,
+   .picture        = "" ,
+   .initial        = "" ,
+   .parent         = NULL,
+   .occurs_lower   = 0 ,
+   .occurs_upper   = 0 ,
+   .attr           = register_e | based_e | any_length_e ,
+   .type           = FldAlphanumeric ,
+   .level          = 0 ,
+   .digits         = 0 ,
+   .rdigits        = 0 ,
+   .encoding       = iconv_CP1252_e ,
+   .alphabet       = 0 ,
+   };
  
+ // XML-NTEXT Variable-length national item
+ struct cblc_field_t __ggsr__xml_ntext = {
+   .data           = nullptr ,
+   .capacity       = 1 ,
+   .allocated      = 1 ,
+   .offset         = 0 ,
+   .name           = "XML-NTEXT" ,
+   .picture        = "" ,
+   .initial        = "" ,
+   .parent         = NULL,
+   .occurs_lower   = 0 ,
+   .occurs_upper   = 0 ,
+   .attr           = register_e | based_e | any_length_e,
+   .type           = FldAlphanumeric ,
+   .level          = 0 ,
+   .digits         = 0 ,
+   .rdigits        = 0 ,
+   .encoding       = iconv_CP1252_e ,
+   .alphabet       = 0 ,
+   };
  
  /* The following defines storage for the global DEBUG-ITEM:
  
diff -Nrcpad gcc-16-20251019/libgcobol/encodings.h gcc-16-20251026/libgcobol/encodings.h
*** gcc-16-20251019/libgcobol/encodings.h	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/encodings.h	Sun Oct 26 22:33:05 2025
*************** enum cbl_encoding_t {
*** 1202,1207 ****
--- 1202,1208 ----
  #define iso646_e iconv_ISO_10646_e
  
  struct encodings_t {
+   bool supported;
    cbl_encoding_t type;
    const char name[32];
  };
diff -Nrcpad gcc-16-20251019/libgcobol/intrinsic.cc gcc-16-20251026/libgcobol/intrinsic.cc
*** gcc-16-20251019/libgcobol/intrinsic.cc	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/intrinsic.cc	Sun Oct 26 22:33:05 2025
*************** __gg__char( cblc_field_t *dest,
*** 1146,1164 ****
  
    // The CHAR function takes an integer, the ordinal position.  It
    // returns a single-character string, which is the character at that
!   // ordinal position.
  
!   // 'A', with the ascii value of 65, is at the ordinal position 66.
  
    int ordinal = (int)(__gg__binary_value_from_qualified_field(&rdigits,
                                                                source,
                                                                source_offset,
                                                                source_size));
    ordinal /= __gg__power_of_ten(rdigits);
!   int ch = ordinal-1;
!   charmap_t *charmap = __gg__get_charmap(dest->encoding);
!   memset(dest->data, charmap->mapped_character(ascii_space), dest->capacity);
!   dest->data[0] = ch;
    }
  
  extern "C"
--- 1146,1203 ----
  
    // The CHAR function takes an integer, the ordinal position.  It
    // returns a single-character string, which is the character at that
!   // ordinal position in the DISPLAY collation.
  
!   // 'A', with the ascii value of 65, is at the ordinal position 66
!   // in the default collation.
  
    int ordinal = (int)(__gg__binary_value_from_qualified_field(&rdigits,
                                                                source,
                                                                source_offset,
                                                                source_size));
    ordinal /= __gg__power_of_ten(rdigits);
!   ordinal -= 1;
! 
!   // We now look for that ordinal position in the collation table:
!   const unsigned short *collation = __gg__current_collation();
!   int ch = -1;
!   for(int i=0; i<256; i++)
!     {
!     if( collation[i] == ordinal )
!       {
!       ch = i;
!       break;
!       }
!     }
!   if( ch == -1 )
!     {
!     // This means that the given ordinal was not in the range of
!     // LOW-VALUE through HIGH-VALUE
!     exception_raise(ec_argument_function_e);
!     }
! 
!   // We need to convert the ch character to the destination encoding.
!   const char achFrom[2] = {static_cast<char>(ch), '\0'};
!   size_t charsout;
!   const char *converted = __gg__iconverter(__gg__display_encoding,
!                                            dest->encoding,
!                                            achFrom,
!                                            1,
!                                            &charsout );
!   // Pick up our character, because mapped_character() might clobber
!   // the converted contents.
!   int converted_char = *converted; // cppcheck-suppress variableScope
!   // Space fill the dest:
!   charmap_t *charmap_dest = __gg__get_charmap(dest->encoding);
!   memset(dest->data,
!          charmap_dest->mapped_character(ascii_space),
!          dest->capacity);
!   // Make the first character of the destination equal to our converted
!   // character:
!   if( ch > -1 && charsout == 1 )
!     {
!     dest->data[0] = converted_char;
!     }
    }
  
  extern "C"
*************** __gg__ord(cblc_field_t *dest,
*** 3052,3060 ****
    const char *arg = PTRCAST(char, (input->data + input_offset));
  
    // The ORD function takes a single-character string and returns the
!   // ordinal position of that character.
  
-   size_t retval = (arg[0]&0xFF) + 1;
    __gg__int128_to_field(dest,
                          retval,
                          NO_RDIGITS,
--- 3091,3102 ----
    const char *arg = PTRCAST(char, (input->data + input_offset));
  
    // The ORD function takes a single-character string and returns the
!   // ordinal position of that character within the current collation.
! 
!   const unsigned short *collation = __gg__current_collation();
! 
!   size_t retval = (collation[arg[0]&0xFF]) + 1;
  
    __gg__int128_to_field(dest,
                          retval,
                          NO_RDIGITS,
diff -Nrcpad gcc-16-20251019/libgcobol/libgcobol.cc gcc-16-20251026/libgcobol/libgcobol.cc
*** gcc-16-20251019/libgcobol/libgcobol.cc	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/libgcobol.cc	Sun Oct 26 22:33:05 2025
*************** struct program_state
*** 462,467 ****
--- 462,469 ----
    int rt_high_value_character;
    char *rt_currency_signs[256];
    const unsigned short *rt_collation;  // Points to a table of 256 values;
+   cbl_encoding_t rt_display_encoding;
+   cbl_encoding_t rt_national_encoding;
    char *rt_program_name;
  
    program_state()
*************** struct program_state
*** 485,490 ****
--- 487,494 ----
  
      memset(rt_currency_signs, 0, sizeof(rt_currency_signs));
  
+     rt_display_encoding  = __gg__display_encoding;
+     rt_national_encoding = __gg__national_encoding;
      rt_collation = __gg__one_to_one_values;
      rt_program_name = NULL;
      }
*************** struct program_state
*** 496,505 ****
      rt_quote_character      = ps.rt_quote_character       ;
      rt_low_value_character  = ps.rt_low_value_character   ;
      // Note throughout the code that there is special processing for the
!     // high-value character.  In EBCDIC 0xFF doesn't map to ASCII 0xFF, so
!     // we are forced to avoid converting EBCDIC 0xFF.
      rt_high_value_character = ps.rt_high_value_character  ;
!     rt_collation            = ps.rt_collation  ;
  
      for( int i=0; i<256; i++ )
        {
--- 500,511 ----
      rt_quote_character      = ps.rt_quote_character       ;
      rt_low_value_character  = ps.rt_low_value_character   ;
      // Note throughout the code that there is special processing for the
!     // default high-value character.  In EBCDIC 0xFF doesn't map
!     // to ASCII 0xFF, so we are forced to avoid converting EBCDIC 0xFF.
      rt_high_value_character = ps.rt_high_value_character  ;
!     rt_display_encoding     = ps.rt_display_encoding      ;
!     rt_national_encoding    = ps.rt_national_encoding     ;
!     rt_collation            = ps.rt_collation             ;
  
      for( int i=0; i<256; i++ )
        {
*************** struct program_state
*** 532,545 ****
  static std::vector<program_state> program_states;
  #define collated(a)          (program_states.back().rt_collation[(unsigned int)(a&0xFF)])
  #define program_name         (program_states.back().rt_program_name)
- // #define decimal_point        (program_states.back().rt_decimal_point)
- // #define decimal_separator    (program_states.back().rt_decimal_separator)
- // #define quote_character      (program_states.back().rt_quote_character)
- // #define low_value_character  (program_states.back().rt_low_value_character)
- // #define high_value_character (program_states.back().rt_high_value_character)
- // #define currency_signs(a)    (program_states.back().rt_currency_signs[(a)])
  #define currency_signs(a)    (__gg__currency_signs[(a)])
  
  #ifdef DEBUG_MALLOC
  void *malloc(size_t a)
    {
--- 538,551 ----
  static std::vector<program_state> program_states;
  #define collated(a)          (program_states.back().rt_collation[(unsigned int)(a&0xFF)])
  #define program_name         (program_states.back().rt_program_name)
  #define currency_signs(a)    (__gg__currency_signs[(a)])
  
+ const unsigned short *
+ __gg__current_collation()
+   {
+   return program_states.back().rt_collation;
+   }
+ 
  #ifdef DEBUG_MALLOC
  void *malloc(size_t a)
    {
*************** __gg__pop_program_state()
*** 691,696 ****
--- 697,704 ----
    __gg__quote_character      = program_states.back().rt_quote_character      ;
    __gg__low_value_character  = program_states.back().rt_low_value_character  ;
    __gg__high_value_character = program_states.back().rt_high_value_character ;
+   __gg__display_encoding     = program_states.back().rt_display_encoding     ;
+   __gg__national_encoding    = program_states.back().rt_national_encoding    ;
    __gg__currency_signs       = program_states.back().rt_currency_signs       ;
    }
  
*************** __gg__decimal_point_is_comma()
*** 732,741 ****
  
  extern "C"
  void
! __gg__init_program_state()
    {
    // This routine gets called at DATA DIVISION time.
  
    // We need to make sure that the program_states vector has at least one
    // entry in it.  This happens when we are the very first PROGRAM-ID called
    // in this module.
--- 740,753 ----
  
  extern "C"
  void
! __gg__init_program_state(cbl_encoding_t display_encoding,
!                          cbl_encoding_t national_encoding)
    {
    // This routine gets called at DATA DIVISION time.
  
+   __gg__display_encoding  = display_encoding;
+   __gg__national_encoding = national_encoding;
+ 
    // We need to make sure that the program_states vector has at least one
    // entry in it.  This happens when we are the very first PROGRAM-ID called
    // in this module.
*************** format_for_display_internal(char **dest,
*** 2972,2989 ****
      case FldAlphanumeric:
      case FldNumericEdited:
      case FldAlphaEdited:
        __gg__realloc_if_necessary(dest, dest_size, actual_length+1);
!       if( actual_location )
          {
!         memcpy(*dest, actual_location, actual_length);
          }
        else
          {
!         fprintf(stderr, "attempting to display a NULL pointer in %s\n", var->name);
!         abort();
          }
-       (*dest)[actual_length] = NULLCH;
        break;
  
      case FldNumericDisplay:
        {
--- 2984,3015 ----
      case FldAlphanumeric:
      case FldNumericEdited:
      case FldAlphaEdited:
+       {
        __gg__realloc_if_necessary(dest, dest_size, actual_length+1);
! 
!       cbl_figconst_t figconst = (cbl_figconst_t)(var->attr & FIGCONST_MASK);
!       if( figconst )
          {
!         charmap_t *charmap = __gg__get_charmap(retval);
!         int figconst_char  = charmap->figconst_character(figconst);
!         memset(*dest, figconst_char, actual_length);
!         (*dest)[actual_length] = NULLCH;
          }
        else
          {
!         if( actual_location )
!           {
!           memcpy(*dest, actual_location, actual_length);
!           }
!         else
!           {
!           fprintf(stderr, "attempting to display a NULL pointer in %s\n", var->name);
!           abort();
!           }
!         (*dest)[actual_length] = NULLCH;
          }
        break;
+       }
  
      case FldNumericDisplay:
        {
*************** format_for_display_internal(char **dest,
*** 3051,3057 ****
          bool is_negative;
          int index = 0;  // This is the running index into our output destination
  
!         ptrdiff_t signoffset;
          switch(signtype)
            {
            case 0:
--- 3077,3083 ----
          bool is_negative;
          int index = 0;  // This is the running index into our output destination
  
!         std::ptrdiff_t signoffset;
          switch(signtype)
            {
            case 0:
*************** __gg__compare_2(cblc_field_t *left_side,
*** 4160,4165 ****
--- 4186,4192 ----
  
    unsigned int fig_left  = 0;
    unsigned int fig_right = 0;
+ 
    fig_left  = charmap_left->figconst_character(left_figconst);
    fig_right = charmap_right->figconst_character(right_figconst);
  
*************** __gg__set_pointer(cblc_field_t       *ta
*** 10717,10723 ****
  
  extern "C"
  void
! __gg__alphabet_use( cbl_encoding_t alphabetic_encoding,
                      cbl_encoding_t encoding,
                      size_t alphabet_index)
    {
--- 10744,10751 ----
  
  extern "C"
  void
! __gg__alphabet_use( cbl_encoding_t display_encoding,
!                     cbl_encoding_t national_encoding,
                      cbl_encoding_t encoding,
                      size_t alphabet_index)
    {
*************** __gg__alphabet_use( cbl_encoding_t alpha
*** 10725,10730 ****
--- 10753,10761 ----
    // state needs to be saved -- for example, if we are doing a SORT with an
    // ALPHABET override -- that's up to the caller
  
+   __gg__display_encoding  = display_encoding;
+   __gg__national_encoding = national_encoding;
+ 
    if( program_states.empty() )
      {
      // When there is no DATA DIVISION, program_states can be empty when
*************** __gg__alphabet_use( cbl_encoding_t alpha
*** 10732,10741 ****
      initialize_program_state();
      }
  
!   const charmap_t *charmap_alphabetic = __gg__get_charmap(alphabetic_encoding);
  
    switch( encoding )
      {
      case ASCII_e:
      case iso646_e:
        // This is one of the very common standard situations; where we are using
--- 10763,10773 ----
      initialize_program_state();
      }
  
!   const charmap_t *charmap_alphabetic = __gg__get_charmap(display_encoding);
  
    switch( encoding )
      {
+     case iconv_CP1252_e:
      case ASCII_e:
      case iso646_e:
        // This is one of the very common standard situations; where we are using
*************** default_exception_handler( ec_type_t ec
*** 11589,11596 ****
        filename = file.filename;
        switch( last_exception_file_operation ) {
        case file_op_none:   // not an I/O statement
!         assert(false);
!         abort();
        case file_op_open:
        case file_op_close:  // No OPEN/CLOSE results in a fatal error.
          disposition = ec_category_none_e;
--- 11621,11627 ----
        filename = file.filename;
        switch( last_exception_file_operation ) {
        case file_op_none:   // not an I/O statement
!         break;
        case file_op_open:
        case file_op_close:  // No OPEN/CLOSE results in a fatal error.
          disposition = ec_category_none_e;
diff -Nrcpad gcc-16-20251019/libgcobol/libgcobol.h gcc-16-20251026/libgcobol/libgcobol.h
*** gcc-16-20251019/libgcobol/libgcobol.h	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgcobol/libgcobol.h	Sun Oct 26 22:33:05 2025
*************** void __gg__convert_encoding_length(char
*** 142,145 ****
--- 142,147 ----
                                     cbl_encoding_t from,
                                     cbl_encoding_t to );
  
+ const unsigned short *__gg__current_collation();
+ 
  #endif
diff -Nrcpad gcc-16-20251019/libgcobol/posix/errno.cc gcc-16-20251026/libgcobol/posix/errno.cc
*** gcc-16-20251019/libgcobol/posix/errno.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/posix/errno.cc	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,7 ----
+ #include <errno.h>
+ 
+ extern "C"
+ int
+ posix_errno() {
+   return errno;
+ }
diff -Nrcpad gcc-16-20251019/libgcobol/posix/localtime.cc gcc-16-20251026/libgcobol/posix/localtime.cc
*** gcc-16-20251019/libgcobol/posix/localtime.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/posix/localtime.cc	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,34 ----
+ #include <assert.h>
+ #include <time.h>
+ 
+ extern "C" {
+ 
+ #include "tm.h"
+ 
+ static struct posix_tm posix_tm;
+ 
+ 
+ struct posix_tm *
+ posix_localtime(const time_t *timep, size_t size) {
+ 
+   assert(timep);
+   assert(sizeof(posix_tm) == size);
+ 
+   struct tm * tm = localtime(timep);
+ 
+   if( tm == NULL ) return NULL;
+ 
+   posix_tm.tm_sec = tm->tm_sec;
+   posix_tm.tm_min = tm->tm_min;
+   posix_tm.tm_hour = tm->tm_hour;
+   posix_tm.tm_mday = tm->tm_mday;
+   posix_tm.tm_mon = tm->tm_mon;
+   posix_tm.tm_year = tm->tm_year;
+   posix_tm.tm_wday = tm->tm_wday;
+   posix_tm.tm_yday = tm->tm_yday;
+   posix_tm.tm_isdst = tm->tm_isdst;
+ 
+   return &posix_tm;
+ }
+ 
+ } // extern "C"
diff -Nrcpad gcc-16-20251019/libgcobol/posix/stat.cc gcc-16-20251026/libgcobol/posix/stat.cc
*** gcc-16-20251019/libgcobol/posix/stat.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/posix/stat.cc	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,90 ----
+ #include <assert.h>
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ 
+ extern "C" {
+ 
+ #include "stat.h"
+ 
+ int
+ posix_stat(const char *pathname, struct posix_stat_t *statbuf, size_t size) {
+   struct stat sb;
+   int erc = stat(pathname, &sb);
+ 
+   if( sizeof(struct posix_stat_t) != size ) {
+     fprintf(stderr, "posix_stat %lu != received size %lu\n",
+             (unsigned long)sizeof(struct posix_stat_t), 
+             (unsigned long)size);
+   }
+ 
+   assert(sizeof(struct posix_stat_t) == size);
+   assert(statbuf);
+ 
+   if( erc == 0 ) {
+     statbuf->st_dev = sb.st_dev;
+     statbuf->st_ino = sb.st_ino;
+     statbuf->st_mode = sb.st_mode;
+     statbuf->st_nlink = sb.st_nlink;
+     statbuf->st_uid = sb.st_uid;
+     statbuf->st_gid = sb.st_gid;
+     statbuf->st_rdev = sb.st_rdev;
+     statbuf->st_size = sb.st_size;
+     statbuf->st_blksize = sb.st_blksize;
+     statbuf->st_blocks = sb.st_blocks;
+     statbuf->st_atim = sb.st_atim.tv_sec;
+     statbuf->st_mtim = sb.st_mtim.tv_sec;
+     statbuf->st_ctim = sb.st_ctim.tv_sec;
+   }
+ 
+   if( 0 ) {
+     printf("%4lu: st_dev: %lu = %lu\n",
+            (unsigned long)offsetof(struct posix_stat_t, st_dev),
+            (unsigned long)statbuf->st_dev, (unsigned long)sb.st_dev);
+     printf("%4lu: st_ino: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_ino),
+            (unsigned long)statbuf->st_ino, (unsigned long)sb.st_ino);
+     printf("%4lu: st_mode: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_mode),
+            (unsigned long)statbuf->st_mode, (unsigned long)sb.st_mode);
+     printf("%4lu: st_nlink: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_nlink),
+            (unsigned long)statbuf->st_nlink, (unsigned long)sb.st_nlink);
+     printf("%4lu: st_uid: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_uid),
+            (unsigned long)statbuf->st_uid, (unsigned long)sb.st_uid);
+     printf("%4lu: st_gid: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_gid),
+            (unsigned long)statbuf->st_gid, (unsigned long)sb.st_gid);
+     printf("%4lu: st_rdev: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_rdev),
+            (unsigned long)statbuf->st_rdev, (unsigned long)sb.st_rdev);
+     printf("%4lu: st_size: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_size),
+            (unsigned long)statbuf->st_size, (unsigned long)sb.st_size);
+     printf("%4lu: st_blksize: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_blksize),
+            (unsigned long)statbuf->st_blksize, (unsigned long)sb.st_blksize);
+     printf("%4lu: st_blocks: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_blocks),
+            (unsigned long)statbuf->st_blocks, (unsigned long)sb.st_blocks);
+     printf("%4lu: st_atim: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_atim),
+            (unsigned long)statbuf->st_atim, (unsigned long)sb.st_atim.tv_sec);
+     printf("%4lu: st_mtim: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_mtim),
+            (unsigned long)statbuf->st_mtim, (unsigned long)sb.st_mtim.tv_sec);
+     printf("%4lu: st_ctim: %lu = %lu\n", 
+            (unsigned long)offsetof(struct posix_stat_t, st_ctim),
+            (unsigned long)statbuf->st_ctim, (unsigned long)sb.st_ctim.tv_sec);
+   }
+ 
+   return erc;
+ 
+   
+ }
+ 
+ } // extern "C"
diff -Nrcpad gcc-16-20251019/libgcobol/posix/stat.h gcc-16-20251026/libgcobol/posix/stat.h
*** gcc-16-20251019/libgcobol/posix/stat.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/posix/stat.h	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,15 ----
+ struct posix_stat_t {
+   dev_t     st_dev;         /* ID of device containing file */
+   ino_t     st_ino;         /* Inode number */
+   mode_t    st_mode;        /* File type and mode */
+   nlink_t   st_nlink;       /* Number of hard links */
+   uid_t     st_uid;         /* User ID of owner */
+   gid_t     st_gid;         /* Group ID of owner */
+   dev_t     st_rdev;        /* Device ID (if special file) */
+   off_t     st_size;        /* Total size, in bytes */
+   blksize_t st_blksize;     /* Block size for filesystem I/O */
+   blkcnt_t  st_blocks;      /* Number of 512B blocks allocated */
+   time_t    st_atim;        /* Time of last access */
+   time_t    st_mtim;        /* Time of last modification */
+   time_t    st_ctim;        /* Time of last status change */
+ };
diff -Nrcpad gcc-16-20251019/libgcobol/posix/tm.h gcc-16-20251026/libgcobol/posix/tm.h
*** gcc-16-20251019/libgcobol/posix/tm.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/posix/tm.h	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,11 ----
+ struct posix_tm {
+   int tm_sec;    /* Seconds (0-60) */
+   int tm_min;    /* Minutes (0-59) */
+   int tm_hour;   /* Hours (0-23) */
+   int tm_mday;   /* Day of the month (1-31) */
+   int tm_mon;    /* Month (0-11) */
+   int tm_year;   /* Year - 1900 */
+   int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
+   int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
+   int tm_isdst;  /* Daylight saving time */
+ };
diff -Nrcpad gcc-16-20251019/libgcobol/xmlparse.cc gcc-16-20251026/libgcobol/xmlparse.cc
*** gcc-16-20251019/libgcobol/xmlparse.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgcobol/xmlparse.cc	Sun Oct 26 22:33:05 2025
***************
*** 0 ****
--- 1,592 ----
+ /*
+  * 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
+  * met:
+  *
+  * * Redistributions of source code must retain the above copyright
+  *   notice, this list of conditions and the following disclaimer.
+  * * Redistributions in binary form must reproduce the above
+  *   copyright notice, this list of conditions and the following disclaimer
+  *   in the documentation and/or other materials provided with the
+  *   distribution.
+  * * Neither the name of the Symas Corporation nor the names of its
+  *   contributors may be used to endorse or promote products derived from
+  *   this software without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
+ #include <fcntl.h>
+ #include <unistd.h>
+ 
+ #include <cctype>
+ #include <cerrno>
+ #include <cmath>
+ #include <cfenv>
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+ #include <ctime>
+ 
+ #include <algorithm>
+ #include <vector>
+ 
+ #include <libxml/SAX2.h>
+ #include <libxml/parser.h>
+ 
+ #include "config.h"
+ #include "libgcobol-fp.h"
+ #include "ec.h"
+ #include "common-defs.h"
+ #include "io.h"
+ #include "gcobolio.h"
+ #include "libgcobol.h"
+ 
+ #define COUNT_OF(X) (sizeof(X) / sizeof(X[0]))
+ 
+ void sayso( const char func[], int line,
+             int len = 0 , const unsigned char data[] = { 0}  ) {
+   if( getenv("XMLPARSE") ) {
+     switch(len) {
+     case 0:
+       fprintf(stderr, "%s:%d Kilroy was here\n", func, line);
+       break;
+     case -1:
+       fprintf(stderr, "%s:%d: '%s'\n", func, line, data);
+       break;
+     default:
+       fprintf(stderr, "%s:%d: '%.*s'\n", func, line, len, data);
+       break;
+     }
+   }
+ }
+ #define SAYSO() sayso(__func__, __LINE__)
+ #define SAYSO_DATAZ(S) sayso(__func__, __LINE__, -1, S)
+ #define SAYSO_DATA(N, S) sayso(__func__, __LINE__, N, S)
+ 
+ struct xml_ec_value_t {
+   int ibm_code;
+   const char msg[80];
+ } xml_ec_values[] = {  
+   // Table 73. XML PARSE exceptions that allow continuation
+   { 1, "invalid character between elements" }, 
+   { 2, "invalid start before element content" }, 
+   { 3, "duplicate attribute" }, 
+   { 4, "markup character '<' in an attribute value" }, 
+   { 5, "start/end tag mismatch" }, 
+   { 6, "invalid character in element" }, 
+   { 7, "invalid start in element content. " }, 
+   { 8, "CDATA closing character sequence ']]>' not opened" }, 
+   { 10, "comment the character sequence '--' without '>'" }, 
+   { 11, "invalid character in a processing instruction" }, 
+   { 12, "XML declaration was not start of  document" }, 
+   { 13, "invalid digit in a hexadecimal character reference" }, 
+   { 14, "invalid digit in a decimal character reference" }, 
+   { 15, "encoding declaration value name must start with [a-zA-Z] character" }, 
+   { 16, "character reference did not refer to a legal XML character" }, 
+   { 17, "invalid character in an entity reference name" }, 
+   { 70, "EBCDIC document, supported EBCDIC page, unsupported declaration" }, 
+   { 71, "EBCDIC document, unsupported EBCDIC page " }, 
+   { 72, "EBCDIC document, unsupported EBCDIC page, unsupported  declaration" }, 
+   { 73, "EBCDIC document, unsupported EBCDIC page and declaration " }, 
+   { 80, "ASCII document, supported ASCII page, unsupported declaration" }, 
+   { 81, "ASCII document, unsupported ASCII page " }, 
+   { 82, "ASCII document, unsupported ASCII page, unsupported  declaration" }, 
+   { 83, "ASCII document, unsupported ASCII page and declaration " }, 
+   { 84, "ASCII document, invalid UTF-8, external UTF-8, no declaration. " }, 
+   { 85, "ASCII document, invalid UTF-8, external UTF-8, invalid  declaration" }, 
+   { 86, "ASCII document, invalid UTF-8, external ASCII" }, 
+   { 87, "ASCII document, invalid UTF-8, external and document UTF-8" }, 
+   { 88, "ASCII document, invalid UTF-8, unsupported ASCII/UTF-8, UTF-8 declaration" }, 
+   { 89, "ASCII document, invalid UTF-8, external UTF-8, ASCII declaration" }, 
+   { 92, "alphanumeric document expected, document is UTF-16. " }, 
+ 
+   // XML PARSE exceptions that allow continuation (continued) 
+   //// 100,001 - 165,535 EBCDIC document encoding does not match code page
+   //// 200,001 - 265,535 ASCII document encoding does not match code page
+ 
+   // XML PARSE exceptions that do not allow continuation 
+   { 100, "end of document before start of XML declaration" }, 
+   { 101, "end of document before end of XML declaration" }, 
+   { 102, "end of document before root element" }, 
+   { 103, "end of document before version information in XML declaration" }, 
+   { 104, "end of document before version information value in XML declaration" }, 
+   { 106, "end of document before encoding declaration value in XML declaration" }, 
+   { 108, "end of document before standalone declaration value in XML declaration" }, 
+   { 109, "end of document before attribute name" }, 
+   { 110, "end of document before attribute value" }, 
+   { 111, "end of document before character/entity reference in attribute value" }, 
+   { 112, "end of document before empty element tag" }, 
+   { 113, "end of document before root element name" }, 
+   { 114, "end of document before element name" }, 
+   { 115, "end of document before character data in element content" }, 
+   { 116, "end of document before processing instruction in element content" }, 
+   { 117, "end of document before comment or CDATA section in element content" }, 
+   { 118, "end of document before comment in element content" }, 
+   { 119, "end of document before CDATA section in element content" }, 
+   { 120, "end of document before character/entity reference in element content" }, 
+   { 121, "end of document before after close of root element" }, 
+   { 122, "possible invalid start of a document type" }, 
+   { 123, "duplicate document type" }, 
+   { 124, "root element name must start with [A-Za-z_:]" }, 
+   { 125, "first attribute name must start with [A-Za-z_:]" }, 
+   { 126, "invalid character in or after element name" }, 
+   { 127, "attribute name not followed by '=' " }, 
+   { 128, "invalid attribute value delimiter" }, 
+   { 130, "attribute name must start with [A-Za-z_:]" }, 
+   { 131, "invalid character in or after attribute name" }, 
+   { 132, "empty element tag not terminated with '/>'" }, 
+   { 133, "element end tag name name must start with [A-Za-z_:]" }, 
+   { 134, "element end tag not terminated with '>'" }, 
+   { 135, "element name must start with [A-Za-z_:]" }, 
+   { 136, "invalid start of comment/CDATA in element" }, 
+   { 137, "invalid start of comment" }, 
+   { 138, "processing instruction target name must start with [A-Za-z_:]" }, 
+   { 139, "invalid character in/afterprocessing instruction target name" }, 
+   { 140, "processing instruction not terminated with '?>'" }, 
+   { 141, "invalid character following '&' in a character/entity reference" }, 
+   { 142, "missing version information in XML declaration" }, 
+   { 143, "missing '=' after 'version' in XML declaration " }, 
+   { 144, "missing XML version declaration " }, 
+   { 145, "invalid character in XML version information" }, 
+   { 146, "invalid character following XML version information value " }, 
+   { 147, "invalid attribute in XML declaration" }, 
+   { 148, "missing '=' after 'encoding' in XML declaration" }, 
+   { 149, "missing XML encoding declaration value" }, 
+   { 150, "invalid XML encoding declaration value" }, 
+   { 151, "invalid character afer XML declaration" }, 
+   { 152, "invalid attribute  XML declaration" }, 
+   { 153, "missing '=' after standalone  XML declaration" }, 
+   { 154, "missing standalone XML declaration value" }, 
+   { 155, "standalone declaration must be 'yes' or 'no'" }, 
+   { 156, "invalid standalone XML declaration value" }, 
+   { 157, "invalid character following XML standalone declaration value" }, 
+   { 158, "unterminated XML declaration " }, 
+   { 159, "start of document type declaration after end of root element" }, 
+   { 160, "start of element after end of root element" }, 
+   { 161, "invalid UTF-8 byte sequence" }, 
+   { 162, "UTF-8 character that has a Unicode code point above x'FFFF'" }, 
+   { 315, "UTF-16 document  little-endian unsupported" }, 
+   { 316, "UCS4 document unsupported" }, 
+   { 317, "unrecognized document encoding" }, 
+   { 318, "UTF-8 document unsupported " }, 
+   { 320, "mismatched national document data item to document encoding EBCDIC" }, 
+   { 321, "mismatched national document data item to document encoding ASCII" }, 
+   { 322, "mismatched native alphanumeric document data item to document encoding EBCDIC" }, 
+   { 323, "mismatched host alphanumeric document data item to document encoding ASCII" }, 
+   { 324, "mismatched national document data item to document encoding UTF-8" }, 
+   { 325, "mismatched host alphanumeric document datat to document encoding UTF-8" }, 
+   { 500, "internal error" },
+ }, *eoxml_ec_values = xml_ec_values + COUNT_OF(xml_ec_values);
+ 
+ static const xml_ec_value_t *
+ xml_ec_value_of( int ibm_code ) {
+   if( 100000 < ibm_code && ibm_code < 200000 ) {
+     static xml_ec_value_t not_ebcdic{ 0, "EBCDIC document encoding "
+                                        "does not match code page" };
+     not_ebcdic.ibm_code = ibm_code;
+     return &not_ebcdic;
+   }
+   if( 200000 < ibm_code && ibm_code < 300000 ) {
+     static xml_ec_value_t not_ascii{ 0, "ASCII document encoding "
+                                        "does not match code page" };
+     not_ascii.ibm_code = ibm_code;
+     return &not_ascii;
+   }
+   auto p = std::find_if( xml_ec_values, eoxml_ec_values,
+                          [ibm_code]( const auto& value ) {
+                            return ibm_code == value.ibm_code;
+                          } );
+   return p < eoxml_ec_values ? &*p : nullptr;
+ }
+ 
+ const char *
+ xml_ec_value_str( int ibm_code ) {
+   auto p = xml_ec_value_of(ibm_code);
+   return p? p->msg : nullptr;
+ }
+ 
+ #if NEEDED
+ static bool
+ xml_fatal( int ibm_code ) {
+   if( ibm_code < 100 ) return false;
+   if( ibm_code > 100000 ) return false;
+   assert(ibm_code < 1000);
+   return true;
+ }
+ #endif
+ 
+ static callback_t *cobol_callback;
+ 
+ /*
+  * Internal handler functions
+  */
+ ///////////////
+ /*
+ 
+ ATTRIBUTE-CHARACTER The single character that corresponds with the predefined entity reference in the attribute value
+ ATTRIBUTE-CHARACTERS The value within quotation marks or apostrophes. This can be a substring of the attribute value if the value includes an entity reference.
+ ATTRIBUTE-NAME The attribute name; the string to the left of the equal sign
+ ATTRIBUTE-NATIONAL-CHARACTER Regardless of the type of the XML document specified by identifier-1 in the XML PARSE statement, XML-TEXT is empty with length zero and XML-NTEXT contains the single national character that corresponds with the numeric character reference.
+  
+ CONTENT-CHARACTER The single character that corresponds with the predefined entity reference in the element content
+  
+ CONTENT-NATIONAL-CHARACTER Regardless of the type of the XML document specified by identifier-1 in the XML PARSE statement, XML-TEXT is empty with length zero and XML-NTEXT contains the single national character that corresponds with the numeric character reference.1
+ DOCUMENT-TYPE-DECLARATION The entire document type declaration, including the opening and closing character sequences "<!DOCTYPE" and ">"
+ ENCODING-DECLARATION The value, between quotes or apostrophes, of the encoding declaration in the XML declaration
+ END-OF-CDATA-SECTION The string "]]>"
+ END-OF-DOCUMENT Empty with length zero
+  
+ EXCEPTION The part of the document that was successfully scanned, up to and including the point at which the exception was detected.2 Special register XML-CODE contains the unique error code that identifies the exception.
+  
+ PROCESSING-INSTRUCTION-TARGET The processing instruction target name, which occurs immediately after the processing instruction opening sequence, "<?"
+ STANDALONE-DECLARATION The value, between quotation marks or apostrophes ("yes" or "no"), of the stand-alone declaration in the XML declaration
+ START-OF-CDATA-SECTION The string "<![CDATA["
+ START-OF-DOCUMENT The entire document
+ 
+ UNKNOWN-REFERENCE-IN-CONTENT The entity reference name, not including the "&" and ";" delimiters
+ UNKNOWN-REFERENCE-IN-ATTRIBUTE The entity reference name, not including the "&" and ";" delimiters
+ VERSION-INFORMATION The value, between quotation marks or apostrophes, of the version information in the XML declaration
+ 
+ */
+ ///////////////
+ 
+ extern cblc_field_t __ggsr__xml_event;
+ extern cblc_field_t __ggsr__xml_code;
+ extern cblc_field_t __ggsr__xml_text;
+ extern cblc_field_t __ggsr__xml_ntext;
+ 
+ static void
+ xml_event( const char event_name[], size_t len, char text[] ) {
+   assert(strlen(event_name) < __ggsr__xml_event.allocated);
+ 
+   auto pend = __ggsr__xml_event.data + __ggsr__xml_event.allocated;
+   auto p = std::copy( event_name, event_name + strlen(event_name),
+                       PTRCAST(char, __ggsr__xml_event.data) );
+   std::fill(PTRCAST(unsigned char, p), pend, 0x20);
+   
+   __ggsr__xml_text.data = reinterpret_cast<unsigned char*>(text);
+   __ggsr__xml_text.capacity = __ggsr__xml_text.allocated = len;
+   __ggsr__xml_code.data = 0;
+   cobol_callback();
+ }
+ 
+ static inline void
+ xml_event( const char event_name[], char text[] ) {
+   xml_event(event_name, strlen(text), text);
+ }
+ 
+ static inline void
+ xml_event( const char event_name[], size_t len, const xmlChar * value ) {
+   char *text = reinterpret_cast<char*>(const_cast<xmlChar*>(value));
+   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);
+ }
+ 
+ static void attributeDecl(void * ctx, 
+                           const xmlChar * elem, 
+                           const xmlChar * fullname, 
+                           int type, 
+                           int def, 
+                           const xmlChar * defaultValue, 
+                           xmlEnumerationPtr tree)
+ {
+   fprintf(stderr, "%s:%d: elem=%s, name=%s, default=%s\n",
+           __func__, __LINE__, elem, fullname, defaultValue);
+ }
+ 
+ static void cdataBlock(void * ctx, 
+                        const xmlChar * data, 
+                        int len)
+ { 
+   SAYSO_DATA(len, data);
+   xml_event("CONTENT-CHARACTERS", len, data);
+ }
+ 
+ static void characters(void * ctx, 
+                        const xmlChar * data, 
+                        int len)
+ {
+   SAYSO_DATA(len, data);
+   xml_event("CONTENT-CHARACTERS", len, data);
+ }
+ 
+ static void comment(void * ctx, const xmlChar * value) {
+   SAYSO_DATAZ(value);
+   xml_event("COMMENT", value);
+ }
+ 
+ static void elementDecl(void * ctx, 
+                         const xmlChar * name, 
+                         int type, 
+                         xmlElementContentPtr content)
+ { SAYSO_DATAZ(name); }
+ 
+ static void endDocument(void * ctx)
+ { SAYSO(); }
+ 
+ static void endElementNs(void * ctx, 
+                          const xmlChar * localname, 
+                          const xmlChar * prefix, 
+                          const xmlChar * URI)
+ {
+   SAYSO_DATAZ(localname);
+   xml_event("END-OF-ELEMENT", localname);
+ }
+ 
+ static void endElement(void * ctx, 
+                        const xmlChar * name)
+ { SAYSO_DATAZ(name); }
+ 
+ static void entityDecl(void * ctx, 
+                        const xmlChar * name, 
+                        int type, 
+                        const xmlChar * publicId, 
+                        const xmlChar * systemId, 
+                        xmlChar * content)
+ { SAYSO_DATAZ(name); }
+ 
+ static void error(void * ctx, const char * msg, ...)
+ {
+   va_list ap;
+   va_start (ap, msg);
+   fprintf(stderr, "error: ");
+   vfprintf(stderr, msg, ap);
+   fprintf(stderr, "\n");
+   va_end (ap);
+ }
+ 
+ static void externalSubset(void * ctx, 
+                            const xmlChar * name, 
+                            const xmlChar * ExternalID, 
+                            const xmlChar * SystemID)
+ { SAYSO_DATAZ(name); }
+ 
+ static void fatalError(void * ctx, const char * msg, ...)
+ {
+   va_list ap;
+   va_start (ap, msg);
+   fprintf(stderr, "fatal: ");
+   vfprintf(stderr, msg, ap);
+   fprintf(stderr, "\n");
+   va_end (ap);
+ }
+ 
+ static xmlEntityPtr getEntity(void * ctx, 
+                               const xmlChar * name)
+ { SAYSO_DATAZ(name); }
+ 
+ static xmlEntityPtr getParameterEntity(void * ctx, 
+                                        const xmlChar * name)
+ { SAYSO_DATAZ(name); }
+ 
+ static int hasExternalSubset(void * ctx)
+ { SAYSO(); }
+ 
+ static int hasInternalSubset(void * ctx)
+ { SAYSO(); }
+ 
+ static void ignorableWhitespace(void * ctx, 
+                                 const xmlChar * ch, 
+                                 int len)
+ { SAYSO_DATA(len, ch); }
+ 
+ static void internalSubset(void * ctx, 
+                            const xmlChar * name, 
+                            const xmlChar * ExternalID, 
+                            const xmlChar * SystemID)
+ { SAYSO_DATAZ(name); }
+ 
+ static int isStandalone (void * ctx)
+ { SAYSO(); }
+ 
+ 
+ static void notationDecl(void * ctx, 
+                          const xmlChar * name, 
+                          const xmlChar * publicId, 
+                          const xmlChar * systemId)
+ { SAYSO_DATAZ(name); }
+ 
+ static void processingInstruction(void * ctx, 
+                                   const xmlChar * target, 
+                                   const xmlChar * data)
+ {
+   SAYSO_DATAZ(target);
+   xml_event("PROCESSING-INSTRUCTION-TARGET", target);
+   SAYSO_DATAZ(data);
+   xml_event("PROCESSING-INSTRUCTION-DATA", data);
+ }
+ 
+ static void reference(void * ctx, 
+                       const xmlChar * name)
+ { SAYSO_DATAZ(name); }
+ 
+ static xmlParserInputPtr resolveEntity( void * ctx, 
+                                         const xmlChar * publicId, 
+                                         const xmlChar * systemId)
+ { SAYSO(); }
+ 
+ static void setDocumentLocator(void * ctx, 
+                                xmlSAXLocatorPtr loc)
+ { SAYSO(); }
+ 
+ /*
+  * Called after the XML declaration was parsed.
+  * Use xmlCtxtGetVersion(), xmlCtxtGetDeclaredEncoding() and
+  * xmlCtxtGetStandalone() to get data from the XML declaration.
+  */
+ static void startDocument(void * ctx)
+ { SAYSO(); }
+ 
+ static void startElementNs(void * ctx, 
+                            const xmlChar * localname, 
+                            const xmlChar * prefix, 
+                            const xmlChar * URI, 
+                            int nb_namespaces, 
+                            const xmlChar ** namespaces, 
+                            int nb_attributes, 
+                            int nb_defaulted, 
+                            const xmlChar ** attributes)
+ {
+   SAYSO_DATAZ(localname);
+   xml_event("START-OF-ELEMENT", localname);
+ }
+ 
+ static void startElement(void * ctx, 
+                          const xmlChar * name, 
+                          const xmlChar ** atts)
+ { SAYSO_DATAZ(name); }
+ 
+ static void unparsedEntityDecl(void * ctx, 
+                                const xmlChar * name, 
+                                const xmlChar * publicId, 
+                                const xmlChar * systemId, 
+                                const xmlChar * notationName)
+ { SAYSO_DATAZ(name); }
+ 
+ static void warning(void * ctx, const char * msg, ... )
+ {
+   va_list ap;
+   va_start (ap, msg);
+   fprintf(stderr, "warning: ");
+   vfprintf(stderr, msg, ap);
+   fprintf(stderr, "\n");
+   va_end (ap);
+ }
+ 
+ /*
+  * xmlSAXHandler is a structure of function pointers that the SAX parser calls
+  * as it encounters XML elements in the input.  Each pointer is a callback
+  * function, locally defined in this file. These we term "handlers".  
+  * 
+  * Each handler sets the XML registers per IBM, and then calls
+  * cobol_callback(), which is a function pointer supplied by the COBOL program
+  * to be the processing procedure for XML PARSE.  
+  * 
+  * There is no obvious way to abort parsing at the C level.  See:
+  *     http://veillard.com/XML/messages/0540.html
+  * 
+  * > The simplest to implement this would not be to add a new SAX
+  * > callback but rather modify the xmlParserCtxtPtr passed to the
+  * > callbacks. The best seems to be:
+  * > - set ctxt->instate to XML_PARSER_EOF
+  * > - hack xmlCurrentChar() to return 0
+  * > if (ctxt->instate == XML_PARSER_EOF)
+  * > Doing both should led to a quick termination of parsing
+  * > (but endElement(s)/endDocument will certainly be called anyway).
+  *
+  * Another hack might be to set the input to all blanks in cobol_callback. 
+  */
+ 
+ static xmlSAXHandler handlers;
+ 
+ static void
+ initialize_handlers( callback_t *callback ) {
+   handlers = xmlSAXHandler {};
+   handlers.initialized = XML_SAX2_MAGIC;
+ 
+   cobol_callback = callback;
+ 
+ #if 0
+   //// Should typically not be modified
+   handlers.attributeDecl = attributeDecl;
+   handlers.elementDecl = elementDecl;
+   handlers.entityDecl = entityDecl;
+   handlers.externalSubset = externalSubset;
+   handlers.getEntity = getEntity;
+   handlers.getParameterEntity = getParameterEntity;
+   handlers.internalSubset = internalSubset;
+   handlers.notationDecl = notationDecl;
+   handlers.resolveEntity = resolveEntity;
+   handlers.unparsedEntityDecl = unparsedEntityDecl;
+ 
+   //// Not supposed to be changed by applications
+   handlers.hasExternalSubset = hasExternalSubset;
+   handlers.hasInternalSubset = hasInternalSubset;
+   handlers.isStandalone = isStandalone;
+ 
+   //// SAX 1 only
+   handlers.startElement = startElement;
+   handlers.endElement = endElement;
+ 
+   //// Everything is available on the context, so this is useless in our case
+   handlers.setDocumentLocator = setDocumentLocator;
+ #endif  
+ 
+   handlers.cdataBlock = cdataBlock;
+   handlers.characters = characters;
+   handlers.comment = comment;
+   handlers.endDocument = endDocument;
+   handlers.endElementNs = endElementNs;
+   handlers.ignorableWhitespace = ignorableWhitespace;
+   handlers.processingInstruction = processingInstruction;
+   handlers.reference = reference;
+   handlers.startDocument = startDocument;
+   handlers.startElementNs = startElementNs;
+   handlers.error = error;
+   handlers.fatalError = fatalError;
+   handlers.warning = warning;
+ }
+ 
+ extern "C"
+ int 
+ __gg__xml_parse(  const cblc_field_t *input_field,
+                   size_t        input_offset,
+                   size_t        len,
+                   cblc_field_t *encoding,
+                   cblc_field_t *validating,
+                   int           returns_national,
+                   void (*callback)(void) )
+ {
+   initialize_handlers(callback);
+ 
+   const char *input = PTRCAST(char, input_field->data + input_offset);
+ 
+   int erc = xmlSAXUserParseMemory(&handlers, nullptr, input, len);
+ 
+   if( erc ) {
+     const xmlError* msg = xmlCtxtGetLastError(nullptr);
+     fprintf(stderr, "XML PARSE: error: line %d: %s (%d: %d.%d.%d)\n",
+             msg->line, msg->message, erc, msg->domain, msg->level, msg->code);
+   }
+   return erc;
+ }
+ 
+ 
diff -Nrcpad gcc-16-20251019/libgm2/ChangeLog gcc-16-20251026/libgm2/ChangeLog
*** gcc-16-20251019/libgm2/ChangeLog	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgm2/ChangeLog	Sun Oct 26 22:33:05 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122407
+ 	* libm2pim/Makefile.am (M2MODS): Add BinDict.mod.
+ 	(M2DEFS): Add BinDict.def.
+ 	* libm2pim/Makefile.in: Regenerate.
+ 
  2025-10-07  Jonathan Wakely  <jwakely@redhat.com>
  
  	* configure.host: Fix spelling in comment.
diff -Nrcpad gcc-16-20251019/libgm2/libm2pim/Makefile.am gcc-16-20251026/libgm2/libm2pim/Makefile.am
*** gcc-16-20251019/libgm2/libm2pim/Makefile.am	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgm2/libm2pim/Makefile.am	Sun Oct 26 22:33:05 2025
*************** FLAGS_TO_PASS = $(AM_MAKEFLAGS)
*** 96,103 ****
  if BUILD_PIMLIB
  toolexeclib_LTLIBRARIES = libm2pim.la
  
! M2MODS = ASCII.mod IO.mod \
!        Args.mod M2RTS.mod \
         M2Dependent.mod \
         M2Diagnostic.mod \
         M2WIDESET.mod \
--- 96,104 ----
  if BUILD_PIMLIB
  toolexeclib_LTLIBRARIES = libm2pim.la
  
! M2MODS = ASCII.mod \
!        Args.mod BinDict.mod \
!        IO.mod M2RTS.mod \
         M2Dependent.mod \
         M2Diagnostic.mod \
         M2WIDESET.mod \
*************** M2MODS = ASCII.mod IO.mod \
*** 130,136 ****
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  
  M2DEFS = Args.def   ASCII.def \
!          Assertion.def  Break.def \
           Builtins.def  cbuiltin.def \
           CmdArgs.def CFileSysOp.def \
           COROUTINES.def \
--- 131,138 ----
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  
  M2DEFS = Args.def   ASCII.def \
!          Assertion.def  BinDict.def \
!          Break.def \
           Builtins.def  cbuiltin.def \
           CmdArgs.def CFileSysOp.def \
           COROUTINES.def \
diff -Nrcpad gcc-16-20251019/libgm2/libm2pim/Makefile.in gcc-16-20251026/libgm2/libm2pim/Makefile.in
*** gcc-16-20251019/libgm2/libm2pim/Makefile.in	Sun Oct 19 22:32:40 2025
--- gcc-16-20251026/libgm2/libm2pim/Makefile.in	Sun Oct 26 22:33:05 2025
*************** am__uninstall_files_from_dir = { \
*** 159,171 ****
  am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
  LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
  libm2pim_la_LIBADD =
! @BUILD_PIMLIB_TRUE@am__objects_1 = ASCII.lo IO.lo Args.lo M2RTS.lo \
! @BUILD_PIMLIB_TRUE@	M2Dependent.lo M2Diagnostic.lo M2WIDESET.lo \
! @BUILD_PIMLIB_TRUE@	Assertion.lo NumberIO.lo Break.lo SYSTEM.lo \
! @BUILD_PIMLIB_TRUE@	CmdArgs.lo Scan.lo StrCase.lo FIO.lo \
! @BUILD_PIMLIB_TRUE@	StrIO.lo StrLib.lo TimeString.lo \
! @BUILD_PIMLIB_TRUE@	Environment.lo FpuIO.lo Debug.lo \
! @BUILD_PIMLIB_TRUE@	SysStorage.lo Storage.lo StdIO.lo \
  @BUILD_PIMLIB_TRUE@	SEnvironment.lo DynamicStrings.lo SFIO.lo \
  @BUILD_PIMLIB_TRUE@	SArgs.lo SCmdArgs.lo PushBackInput.lo \
  @BUILD_PIMLIB_TRUE@	StringConvert.lo FormatStrings.lo \
--- 159,171 ----
  am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
  LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
  libm2pim_la_LIBADD =
! @BUILD_PIMLIB_TRUE@am__objects_1 = ASCII.lo Args.lo BinDict.lo IO.lo \
! @BUILD_PIMLIB_TRUE@	M2RTS.lo M2Dependent.lo M2Diagnostic.lo \
! @BUILD_PIMLIB_TRUE@	M2WIDESET.lo Assertion.lo NumberIO.lo \
! @BUILD_PIMLIB_TRUE@	Break.lo SYSTEM.lo CmdArgs.lo Scan.lo \
! @BUILD_PIMLIB_TRUE@	StrCase.lo FIO.lo StrIO.lo StrLib.lo \
! @BUILD_PIMLIB_TRUE@	TimeString.lo Environment.lo FpuIO.lo \
! @BUILD_PIMLIB_TRUE@	Debug.lo SysStorage.lo Storage.lo StdIO.lo \
  @BUILD_PIMLIB_TRUE@	SEnvironment.lo DynamicStrings.lo SFIO.lo \
  @BUILD_PIMLIB_TRUE@	SArgs.lo SCmdArgs.lo PushBackInput.lo \
  @BUILD_PIMLIB_TRUE@	StringConvert.lo FormatStrings.lo \
*************** AM_MAKEFLAGS = \
*** 479,486 ****
  # Subdir rules rely on $(FLAGS_TO_PASS)
  FLAGS_TO_PASS = $(AM_MAKEFLAGS)
  @BUILD_PIMLIB_TRUE@toolexeclib_LTLIBRARIES = libm2pim.la
! @BUILD_PIMLIB_TRUE@M2MODS = ASCII.mod IO.mod \
! @BUILD_PIMLIB_TRUE@       Args.mod M2RTS.mod \
  @BUILD_PIMLIB_TRUE@       M2Dependent.mod \
  @BUILD_PIMLIB_TRUE@       M2Diagnostic.mod \
  @BUILD_PIMLIB_TRUE@       M2WIDESET.mod \
--- 479,487 ----
  # Subdir rules rely on $(FLAGS_TO_PASS)
  FLAGS_TO_PASS = $(AM_MAKEFLAGS)
  @BUILD_PIMLIB_TRUE@toolexeclib_LTLIBRARIES = libm2pim.la
! @BUILD_PIMLIB_TRUE@M2MODS = ASCII.mod \
! @BUILD_PIMLIB_TRUE@       Args.mod BinDict.mod \
! @BUILD_PIMLIB_TRUE@       IO.mod M2RTS.mod \
  @BUILD_PIMLIB_TRUE@       M2Dependent.mod \
  @BUILD_PIMLIB_TRUE@       M2Diagnostic.mod \
  @BUILD_PIMLIB_TRUE@       M2WIDESET.mod \
*************** FLAGS_TO_PASS = $(AM_MAKEFLAGS)
*** 513,519 ****
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  @BUILD_PIMLIB_TRUE@M2DEFS = Args.def   ASCII.def \
! @BUILD_PIMLIB_TRUE@         Assertion.def  Break.def \
  @BUILD_PIMLIB_TRUE@         Builtins.def  cbuiltin.def \
  @BUILD_PIMLIB_TRUE@         CmdArgs.def CFileSysOp.def \
  @BUILD_PIMLIB_TRUE@         COROUTINES.def \
--- 514,521 ----
  
  # COROUTINES.mod has been removed as it is implemented in ../libm2iso.
  @BUILD_PIMLIB_TRUE@M2DEFS = Args.def   ASCII.def \
! @BUILD_PIMLIB_TRUE@         Assertion.def  BinDict.def \
! @BUILD_PIMLIB_TRUE@         Break.def \
  @BUILD_PIMLIB_TRUE@         Builtins.def  cbuiltin.def \
  @BUILD_PIMLIB_TRUE@         CmdArgs.def CFileSysOp.def \
  @BUILD_PIMLIB_TRUE@         COROUTINES.def \
diff -Nrcpad gcc-16-20251019/libgomp/ChangeLog gcc-16-20251026/libgomp/ChangeLog
*** gcc-16-20251019/libgomp/ChangeLog	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/ChangeLog	Sun Oct 26 22:33:08 2025
***************
*** 1,3 ****
--- 1,78 ----
+ 2025-10-23  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* Makefile.am (libgomp_la_SOURCES): Add simple-allocator.c.
+ 	* Makefile.in: Regenerate.
+ 	* basic-allocator.c: Mention simple-allocator in the comment.
+ 	* config/linux/allocator.c: Include unistd.h.
+ 	(pin_ctx): New variable.
+ 	(ctxlock): New variable.
+ 	(linux_init_pin_ctx): New function.
+ 	(linux_memspace_alloc): Use simple-allocator for pinned memory.
+ 	(linux_memspace_free): Likewise.
+ 	(linux_memspace_realloc): Likewise.
+ 	* libgomp.h (gomp_simple_alloc_init_context): New prototype.
+ 	(gomp_simple_alloc_register_memory): New prototype.
+ 	(gomp_simple_alloc): New prototype.
+ 	(gomp_simple_free): New prototype.
+ 	(gomp_simple_realloc): New prototype.
+ 	* libgomp.texi: Update pinned memory trait documentation.
+ 	* testsuite/libgomp.c/alloc-pinned-8.c: New test.
+ 	* simple-allocator.c: New file.
+ 
+ 2025-10-23  Andrew Stubbs  <ams@baylibre.com>
+ 	    Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/linux/allocator.c: Include assert.h.
+ 	(using_device_for_page_locked): New variable.
+ 	(linux_memspace_alloc): Add init0 parameter. Support device pinning.
+ 	(linux_memspace_calloc): Set init0 to true.
+ 	(linux_memspace_free): Support device pinning.
+ 	(linux_memspace_realloc): Support device pinning.
+ 	(MEMSPACE_ALLOC): Set init0 to false.
+ 	* libgomp-plugin.h
+ 	(GOMP_OFFLOAD_page_locked_host_alloc): New prototype.
+ 	(GOMP_OFFLOAD_page_locked_host_free): Likewise.
+ 	* libgomp.h (gomp_page_locked_host_alloc): Likewise.
+ 	(gomp_page_locked_host_free): Likewise.
+ 	(struct gomp_device_descr): Add page_locked_host_alloc_func and
+ 	page_locked_host_free_func.
+ 	* libgomp.texi: Adjust the docs for the pinned trait.
+ 	* plugin/plugin-nvptx.c
+ 	(GOMP_OFFLOAD_page_locked_host_alloc): New function.
+ 	(GOMP_OFFLOAD_page_locked_host_free): Likewise.
+ 	* target.c (device_for_page_locked): New variable.
+ 	(get_device_for_page_locked): New function.
+ 	(gomp_page_locked_host_alloc): Likewise.
+ 	(gomp_page_locked_host_free): Likewise.
+ 	(gomp_load_plugin_for_device): Add page_locked_host_alloc and
+ 	page_locked_host_free.
+ 	* testsuite/libgomp.c/alloc-pinned-1.c: Change expectations for NVPTX
+ 	devices.
+ 	* testsuite/libgomp.c/alloc-pinned-2.c: Likewise.
+ 	* testsuite/libgomp.c/alloc-pinned-3.c: Likewise.
+ 	* testsuite/libgomp.c/alloc-pinned-4.c: Likewise.
+ 	* testsuite/libgomp.c/alloc-pinned-5.c: Likewise.
+ 	* testsuite/libgomp.c/alloc-pinned-6.c: Likewise.
+ 
+ 2025-10-20  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* testsuite/libgomp.c/ipcp-cb-spec1.c: Moved from
+ 	gcc/testsuite/gcc.dg/ipa/.
+ 	* testsuite/libgomp.c/ipcp-cb-spec2.c: Likewise.
+ 	* testsuite/libgomp.c/ipcp-cb1.c: Likewise.
+ 
+ 2025-10-20  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR c++/114457
+ 	PR c++/122268
+ 	PR c++/120450
+ 	* testsuite/libgomp.c++/target-flex-101.C: XFAIL GCN, nvptx
+ 	offloading compilation.
+ 	* testsuite/libgomp.c++/target-std__flat_map-concurrent.C:
+ 	Un-XFAIL GCN offloading compilation.
+ 	* testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C:
+ 	Likewise.
+ 
  2025-10-16  Tobias Burnus  <tburnus@baylibre.com>
  
  	* testsuite/libgomp.c/declare-variant-4-gfx10-3-generic.c: Add
diff -Nrcpad gcc-16-20251019/libgomp/Makefile.am gcc-16-20251026/libgomp/Makefile.am
*** gcc-16-20251019/libgomp/Makefile.am	Sun Oct 19 22:33:15 2025
--- gcc-16-20251026/libgomp/Makefile.am	Sun Oct 26 22:33:29 2025
*************** libgomp_la_SOURCES = alloc.c atomic.c ba
*** 69,76 ****
  	mutex.c proc.c sem.c bar.c ptrlock.c time.c fortran.c affinity.c \
  	target.c splay-tree.c libgomp-plugin.c oacc-parallel.c oacc-host.c \
  	oacc-init.c oacc-mem.c oacc-async.c oacc-plugin.c oacc-cuda.c \
! 	priority_queue.c affinity-fmt.c teams.c allocator.c oacc-profiling.c \
! 	oacc-target.c target-indirect.c target-cxa-dso-dtor.c
  
  include $(top_srcdir)/plugin/Makefrag.am
  
--- 69,76 ----
  	mutex.c proc.c sem.c bar.c ptrlock.c time.c fortran.c affinity.c \
  	target.c splay-tree.c libgomp-plugin.c oacc-parallel.c oacc-host.c \
  	oacc-init.c oacc-mem.c oacc-async.c oacc-plugin.c oacc-cuda.c \
! 	priority_queue.c affinity-fmt.c teams.c allocator.c simple-allocator.c \
! 	oacc-profiling.c oacc-target.c target-indirect.c target-cxa-dso-dtor.c
  
  include $(top_srcdir)/plugin/Makefrag.am
  
diff -Nrcpad gcc-16-20251019/libgomp/Makefile.in gcc-16-20251026/libgomp/Makefile.in
*** gcc-16-20251019/libgomp/Makefile.in	Sun Oct 19 22:33:15 2025
--- gcc-16-20251026/libgomp/Makefile.in	Sun Oct 26 22:33:29 2025
*************** am_libgomp_la_OBJECTS = alloc.lo atomic.
*** 220,228 ****
  	affinity.lo target.lo splay-tree.lo libgomp-plugin.lo \
  	oacc-parallel.lo oacc-host.lo oacc-init.lo oacc-mem.lo \
  	oacc-async.lo oacc-plugin.lo oacc-cuda.lo priority_queue.lo \
! 	affinity-fmt.lo teams.lo allocator.lo oacc-profiling.lo \
! 	oacc-target.lo target-indirect.lo target-cxa-dso-dtor.lo \
! 	$(am__objects_1)
  libgomp_la_OBJECTS = $(am_libgomp_la_OBJECTS)
  AM_V_P = $(am__v_P_@AM_V@)
  am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
--- 220,228 ----
  	affinity.lo target.lo splay-tree.lo libgomp-plugin.lo \
  	oacc-parallel.lo oacc-host.lo oacc-init.lo oacc-mem.lo \
  	oacc-async.lo oacc-plugin.lo oacc-cuda.lo priority_queue.lo \
! 	affinity-fmt.lo teams.lo allocator.lo simple-allocator.lo \
! 	oacc-profiling.lo oacc-target.lo target-indirect.lo \
! 	target-cxa-dso-dtor.lo $(am__objects_1)
  libgomp_la_OBJECTS = $(am_libgomp_la_OBJECTS)
  AM_V_P = $(am__v_P_@AM_V@)
  am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
*************** libgomp_la_SOURCES = alloc.c atomic.c ba
*** 555,563 ****
  	fortran.c affinity.c target.c splay-tree.c libgomp-plugin.c \
  	oacc-parallel.c oacc-host.c oacc-init.c oacc-mem.c \
  	oacc-async.c oacc-plugin.c oacc-cuda.c priority_queue.c \
! 	affinity-fmt.c teams.c allocator.c oacc-profiling.c \
! 	oacc-target.c target-indirect.c target-cxa-dso-dtor.c \
! 	$(am__append_3)
  
  # Nvidia PTX OpenACC plugin.
  @PLUGIN_NVPTX_TRUE@libgomp_plugin_nvptx_version_info = -version-info $(libtool_VERSION)
--- 555,563 ----
  	fortran.c affinity.c target.c splay-tree.c libgomp-plugin.c \
  	oacc-parallel.c oacc-host.c oacc-init.c oacc-mem.c \
  	oacc-async.c oacc-plugin.c oacc-cuda.c priority_queue.c \
! 	affinity-fmt.c teams.c allocator.c simple-allocator.c \
! 	oacc-profiling.c oacc-target.c target-indirect.c \
! 	target-cxa-dso-dtor.c $(am__append_3)
  
  # Nvidia PTX OpenACC plugin.
  @PLUGIN_NVPTX_TRUE@libgomp_plugin_nvptx_version_info = -version-info $(libtool_VERSION)
*************** distclean-compile:
*** 783,788 ****
--- 783,789 ----
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scope.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sections.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sem.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-allocator.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/single.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/splay-tree.Plo@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/target-cxa-dso-dtor.Plo@am__quote@
diff -Nrcpad gcc-16-20251019/libgomp/basic-allocator.c gcc-16-20251026/libgomp/basic-allocator.c
*** gcc-16-20251019/libgomp/basic-allocator.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/basic-allocator.c	Sun Oct 26 22:33:08 2025
***************
*** 25,30 ****
--- 25,35 ----
  /* This is a basic "malloc" implementation intended for use with small,
     low-latency memories.
  
+    Compared to the "simple" allocator, this one is designed to keep the
+    metadata and heap together (no slow memory needed), and prioritize
+    space-efficiency over algorithm speed (the memory already being
+    low-latency).
+ 
     To use this template, define BASIC_ALLOC_PREFIX, and then #include the
     source file.  The other configuration macros are optional.
  
diff -Nrcpad gcc-16-20251019/libgomp/config/linux/allocator.c gcc-16-20251026/libgomp/config/linux/allocator.c
*** gcc-16-20251019/libgomp/config/linux/allocator.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/config/linux/allocator.c	Sun Oct 26 22:33:08 2025
***************
*** 36,41 ****
--- 36,46 ----
  
  /* Implement malloc routines that can handle pinned memory on Linux.
     
+    Given that pinned memory is typically used to help host <-> device memory
+    transfers, we attempt to allocate such memory using a device (really:
+    libgomp plugin), but fall back to mmap plus mlock if no suitable device is
+    available.
+ 
     It's possible to use mlock on any heap memory, but using munlock is
     problematic if there are multiple pinned allocations on the same page.
     Tracking all that manually would be possible, but adds overhead. This may
***************
*** 48,97 ****
  
  #define _GNU_SOURCE
  #include <sys/mman.h>
  #include <string.h>
  #include "libgomp.h"
  #ifdef HAVE_INTTYPES_H
  # include <inttypes.h>  /* For PRIu64.  */
  #endif
  
  static void *
! linux_memspace_alloc (omp_memspace_handle_t memspace, size_t size, int pin)
  {
!   (void)memspace;
  
    if (pin)
      {
!       /* Note that mmap always returns zeroed memory and is therefore also a
! 	 suitable implementation of calloc.  */
!       void *addr = mmap (NULL, size, PROT_READ | PROT_WRITE,
! 			 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
!       if (addr == MAP_FAILED)
! 	return NULL;
! 
!       if (mlock (addr, size))
  	{
  #ifdef HAVE_INTTYPES_H
! 	  gomp_debug (0, "libgomp: failed to pin %"PRIu64" bytes of"
! 		      " memory (ulimit too low?)\n", (uint64_t) size);
  #else
! 	  gomp_debug (0, "libgomp: failed to pin %lu bytes of"
! 		      " memory (ulimit too low?)\n", (unsigned long) size);
  #endif
! 	  munmap (addr, size);
! 	  return NULL;
! 	}
  
!       return addr;
      }
    else
!     return malloc (size);
  }
  
  static void *
  linux_memspace_calloc (omp_memspace_handle_t memspace, size_t size, int pin)
  {
    if (pin)
!     return linux_memspace_alloc (memspace, size, pin);
    else
      return calloc (1, size);
  }
--- 53,162 ----
  
  #define _GNU_SOURCE
  #include <sys/mman.h>
+ #include <unistd.h>
  #include <string.h>
+ #include <assert.h>
  #include "libgomp.h"
  #ifdef HAVE_INTTYPES_H
  # include <inttypes.h>  /* For PRIu64.  */
  #endif
  
+ static int using_device_for_page_locked
+   = /* uninitialized */ -1;
+ 
+ 
+ static gomp_simple_alloc_ctx_p pin_ctx = NULL;
+ static pthread_once_t ctxlock = PTHREAD_ONCE_INIT;
+ 
+ static void
+ linux_init_pin_ctx ()
+ {
+   pin_ctx = gomp_simple_alloc_init_context ();
+ }
+ 
  static void *
! linux_memspace_alloc (omp_memspace_handle_t memspace, size_t size, int pin,
! 		      bool init0)
  {
!   void *addr = NULL;
  
    if (pin)
      {
!       int using_device = __atomic_load_n (&using_device_for_page_locked,
! 					  MEMMODEL_RELAXED);
!       if (using_device != 0)
! 	{
! 	  using_device = gomp_page_locked_host_alloc (&addr, size);
! 	  int using_device_old
! 	    = __atomic_exchange_n (&using_device_for_page_locked,
! 				   using_device, MEMMODEL_RELAXED);
! 	  assert (using_device_old == -1
! 		  /* We shouldn't have concurrently changed our mind.  */
! 		  || using_device_old == using_device);
! 	}
!       if (using_device == 0)
  	{
+ 	  static int pagesize = 0;
+ 	  static void *addrhint = NULL;
+ 
+ 	  if (!pagesize)
+ 	    pagesize = sysconf(_SC_PAGE_SIZE);
+ 
+ 	  while (1)
+ 	    {
+ 	      addr = gomp_simple_alloc (pin_ctx, size);
+ 	      if (addr)
+ 		break;
+ 
+ 	      /* Round up to a whole page.  */
+ 	      size_t misalignment = size % pagesize;
+ 	      size_t mmap_size = (misalignment > 0
+ 				  ? size + pagesize - misalignment
+ 				  : size);
+ 	      void *newpage = mmap (addrhint, mmap_size, PROT_READ | PROT_WRITE,
+ 				 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ 	      if (newpage == MAP_FAILED)
+ 		break;
+ 	      else
+ 		{
+ 		  if (mlock (newpage, size))
+ 		    {
  #ifdef HAVE_INTTYPES_H
! 		      gomp_debug (0, "libgomp: failed to pin %"PRIu64" bytes"
! 				  " of memory (ulimit too low?)\n",
! 				  (uint64_t) size);
  #else
! 		      gomp_debug (0, "libgomp: failed to pin %lu bytes of"
! 				  " memory (ulimit too low?)\n",
! 				  (unsigned long) size);
  #endif
! 		      munmap (newpage, size);
! 		      break;
! 		    }
  
! 		  addrhint = newpage + mmap_size;
! 
! 		  pthread_once (&ctxlock, linux_init_pin_ctx);
! 		  gomp_simple_alloc_register_memory (pin_ctx, newpage,
! 						     mmap_size);
! 		}
! 	    }
! 	}
      }
    else
!     addr = malloc (size);
! 
!   if (addr && init0)
!     memset (addr, 0, size);
! 
!   return addr;
  }
  
  static void *
  linux_memspace_calloc (omp_memspace_handle_t memspace, size_t size, int pin)
  {
    if (pin)
!     return linux_memspace_alloc (memspace, size, pin, true);
    else
      return calloc (1, size);
  }
*************** static void
*** 100,109 ****
  linux_memspace_free (omp_memspace_handle_t memspace, void *addr, size_t size,
  		     int pin)
  {
-   (void)memspace;
- 
    if (pin)
!     munmap (addr, size);
    else
      free (addr);
  }
--- 165,183 ----
  linux_memspace_free (omp_memspace_handle_t memspace, void *addr, size_t size,
  		     int pin)
  {
    if (pin)
!     {
!       int using_device
! 	= __atomic_load_n (&using_device_for_page_locked,
! 			   MEMMODEL_RELAXED);
!       if (using_device == 1)
! 	gomp_page_locked_host_free (addr);
!       else
! 	/* The "simple" allocator does not (currently) munmap locked pages
! 	   (meaning that the number of locked pages never decreases), but it
! 	   can reuse the freed memory in subsequent gomp_simple_alloc calls.  */
! 	gomp_simple_free (pin_ctx, addr);
!     }
    else
      free (addr);
  }
*************** linux_memspace_realloc (omp_memspace_han
*** 114,138 ****
  {
    if (oldpin && pin)
      {
!       void *newaddr = mremap (addr, oldsize, size, MREMAP_MAYMOVE);
!       if (newaddr == MAP_FAILED)
! 	return NULL;
! 
!       return newaddr;
!     }
!   else if (oldpin || pin)
!     {
!       void *newaddr = linux_memspace_alloc (memspace, size, pin);
!       if (newaddr)
  	{
! 	  memcpy (newaddr, addr, oldsize < size ? oldsize : size);
! 	  linux_memspace_free (memspace, addr, oldsize, oldpin);
  	}
- 
-       return newaddr;
      }
    else
      return realloc (addr, size);
  }
  
  static int
--- 188,221 ----
  {
    if (oldpin && pin)
      {
!       int using_device
! 	= __atomic_load_n (&using_device_for_page_locked,
! 		       MEMMODEL_RELAXED);
!       /* The device plugin API does not support realloc,
! 	 but the gomp_simple_alloc allocator does.  */
!       if (using_device == 0)
  	{
! 	  /* This can fail if there is insufficient pinned memory free.  */
! 	  void *newaddr = gomp_simple_realloc (pin_ctx, addr, size);
! 	  if (newaddr)
! 	    return newaddr;
  	}
      }
+   else if (oldpin || pin)
+     /* Moving from pinned to unpinned memory cannot be done in-place.  */
+     ;
    else
      return realloc (addr, size);
+ 
+   /* In-place reallocation failed.  Fall back to copy.  */
+   void *newaddr = linux_memspace_alloc (memspace, size, pin, false);
+   if (newaddr)
+     {
+       memcpy (newaddr, addr, oldsize < size ? oldsize : size);
+       linux_memspace_free (memspace, addr, oldsize, oldpin);
+     }
+ 
+   return newaddr;
  }
  
  static int
*************** linux_memspace_validate (omp_memspace_ha
*** 143,149 ****
  }
  
  #define MEMSPACE_ALLOC(MEMSPACE, SIZE, PIN) \
!   linux_memspace_alloc (MEMSPACE, SIZE, PIN)
  #define MEMSPACE_CALLOC(MEMSPACE, SIZE, PIN) \
    linux_memspace_calloc (MEMSPACE, SIZE, PIN)
  #define MEMSPACE_REALLOC(MEMSPACE, ADDR, OLDSIZE, SIZE, OLDPIN, PIN) \
--- 226,232 ----
  }
  
  #define MEMSPACE_ALLOC(MEMSPACE, SIZE, PIN) \
!   linux_memspace_alloc (MEMSPACE, SIZE, PIN, false)
  #define MEMSPACE_CALLOC(MEMSPACE, SIZE, PIN) \
    linux_memspace_calloc (MEMSPACE, SIZE, PIN)
  #define MEMSPACE_REALLOC(MEMSPACE, ADDR, OLDSIZE, SIZE, OLDPIN, PIN) \
diff -Nrcpad gcc-16-20251019/libgomp/libgomp-plugin.h gcc-16-20251026/libgomp/libgomp-plugin.h
*** gcc-16-20251019/libgomp/libgomp-plugin.h	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/libgomp-plugin.h	Sun Oct 26 22:33:08 2025
*************** extern int GOMP_OFFLOAD_load_image (int,
*** 171,176 ****
--- 171,178 ----
  extern bool GOMP_OFFLOAD_unload_image (int, unsigned, const void *);
  extern void *GOMP_OFFLOAD_alloc (int, size_t);
  extern bool GOMP_OFFLOAD_free (int, void *);
+ extern bool GOMP_OFFLOAD_page_locked_host_alloc (void **, size_t);
+ extern bool GOMP_OFFLOAD_page_locked_host_free (void *);
  extern bool GOMP_OFFLOAD_dev2host (int, void *, const void *, size_t);
  extern bool GOMP_OFFLOAD_host2dev (int, void *, const void *, size_t);
  extern bool GOMP_OFFLOAD_dev2dev (int, void *, const void *, size_t);
diff -Nrcpad gcc-16-20251019/libgomp/libgomp.h gcc-16-20251026/libgomp/libgomp.h
*** gcc-16-20251019/libgomp/libgomp.h	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/libgomp.h	Sun Oct 26 22:33:08 2025
*************** extern int gomp_get_num_devices (void);
*** 1135,1140 ****
--- 1135,1142 ----
  extern bool gomp_target_task_fn (void *);
  extern void gomp_target_rev (uint64_t, uint64_t, uint64_t, uint64_t, uint64_t,
  			     int, struct goacc_asyncqueue *);
+ extern bool gomp_page_locked_host_alloc (void **, size_t);
+ extern void gomp_page_locked_host_free (void *);
  
  /* Splay tree definitions.  */
  typedef struct splay_tree_node_s *splay_tree_node;
*************** struct gomp_device_descr
*** 1419,1424 ****
--- 1421,1428 ----
    __typeof (GOMP_OFFLOAD_unload_image) *unload_image_func;
    __typeof (GOMP_OFFLOAD_alloc) *alloc_func;
    __typeof (GOMP_OFFLOAD_free) *free_func;
+   __typeof (GOMP_OFFLOAD_page_locked_host_alloc) *page_locked_host_alloc_func;
+   __typeof (GOMP_OFFLOAD_page_locked_host_free) *page_locked_host_free_func;
    __typeof (GOMP_OFFLOAD_dev2host) *dev2host_func;
    __typeof (GOMP_OFFLOAD_host2dev) *host2dev_func;
    __typeof (GOMP_OFFLOAD_dev2dev) *dev2dev_func;
*************** gomp_thread_to_pthread_t (struct gomp_th
*** 1668,1671 ****
--- 1672,1687 ----
  }
  #endif
  
+ /* simple-allocator.c  */
+ 
+ typedef struct gomp_simple_alloc_context *gomp_simple_alloc_ctx_p;
+ 
+ gomp_simple_alloc_ctx_p gomp_simple_alloc_init_context ();
+ void gomp_simple_alloc_register_memory (gomp_simple_alloc_ctx_p ctx,
+ 				        char *base, size_t size);
+ void *gomp_simple_alloc (gomp_simple_alloc_ctx_p ctx, size_t size);
+ void gomp_simple_free (gomp_simple_alloc_ctx_p ctx, void *addr);
+ void *gomp_simple_realloc (gomp_simple_alloc_ctx_p ctx, void *addr,
+ 			   size_t newsize);
+ 
  #endif /* LIBGOMP_H */
diff -Nrcpad gcc-16-20251019/libgomp/libgomp.texi gcc-16-20251026/libgomp/libgomp.texi
*** gcc-16-20251019/libgomp/libgomp.texi	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/libgomp.texi	Sun Oct 26 22:33:08 2025
*************** a @code{nearest} allocation.
*** 7013,7023 ****
  
  Additional notes regarding the traits:
  @itemize
! @item The @code{pinned} trait is supported on Linux hosts, but is subject to
!       the OS @code{ulimit}/@code{rlimit} locked memory settings.  It currently
!       uses @code{mmap} and is therefore optimized for few allocations, including
!       large data.  If the conditions for numa or memkind allocations are
!       fulfilled, those allocators are used instead.
  @item The default for the @code{pool_size} trait is no pool and for every
        (re)allocation the associated library routine is called, which might
        internally use a memory pool.  Currently, the same applies when a
--- 7013,7024 ----
  
  Additional notes regarding the traits:
  @itemize
! @item The @code{pinned} trait is supported on Linux hosts, but is usually
!       subject to the OS @code{ulimit}/@code{rlimit} locked memory settings (see
!       @ref{Offload-Target Specifics} for exceptions).  The implementation
!       uses a custom allocator to try to use as few memory pages as possible.
!       At present, freed pinned memory is not returned to the OS (although it
!       may be reused by subsequent pinned allocations).
  @item The default for the @code{pool_size} trait is no pool and for every
        (re)allocation the associated library routine is called, which might
        internally use a memory pool.  Currently, the same applies when a
*************** The implementation remark:
*** 7128,7133 ****
--- 7129,7140 ----
        @code{omp_thread_mem_alloc}, all use low-latency memory as first
        preference, and fall back to main graphics memory when the low-latency
        pool is exhausted.
+ @item Pinned memory allocated using @code{omp_alloc} with the
+       @code{ompx_gnu_pinned_mem_alloc} allocator or the @code{pinned} trait is
+       obtained via the CUDA API when an NVPTX device is present.  This provides
+       a performance boost for NVPTX offload code and also allows unlimited use
+       of pinned memory regardless of the OS @code{ulimit}/@code{rlimit}
+       settings.
  @item The OpenMP routines @code{omp_target_memcpy_rect} and
        @code{omp_target_memcpy_rect_async} and the @code{target update}
        directive for non-contiguous list items use the 3D memory-copy function
diff -Nrcpad gcc-16-20251019/libgomp/plugin/plugin-nvptx.c gcc-16-20251026/libgomp/plugin/plugin-nvptx.c
*** gcc-16-20251019/libgomp/plugin/plugin-nvptx.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/plugin/plugin-nvptx.c	Sun Oct 26 22:33:08 2025
*************** GOMP_OFFLOAD_free (int ord, void *ptr)
*** 1886,1891 ****
--- 1886,1924 ----
  	  && nvptx_free (ptr, ptx_devices[ord]));
  }
  
+ bool
+ GOMP_OFFLOAD_page_locked_host_alloc (void **ptr, size_t size)
+ {
+   if (size == 0)
+     {
+       /* Special case to ensure omp_alloc specification compliance.  */
+       *ptr = NULL;
+       return true;
+     }
+ 
+   CUresult r;
+ 
+   unsigned int flags = 0;
+   /* Given 'CU_DEVICE_ATTRIBUTE_UNIFIED_ADDRESSING', we don't need
+      'flags |= CU_MEMHOSTALLOC_PORTABLE;' here.  */
+   r = CUDA_CALL_NOCHECK (cuMemHostAlloc, ptr, size, flags);
+   if (r == CUDA_ERROR_OUT_OF_MEMORY)
+     *ptr = NULL;
+   else if (r != CUDA_SUCCESS)
+     {
+       GOMP_PLUGIN_error ("cuMemHostAlloc error: %s", cuda_error (r));
+       return false;
+     }
+   return true;
+ }
+ 
+ bool
+ GOMP_OFFLOAD_page_locked_host_free (void *ptr)
+ {
+   CUDA_CALL (cuMemFreeHost, ptr);
+   return true;
+ }
+ 
  void
  GOMP_OFFLOAD_openacc_exec (void (*fn) (void *),
  			   size_t mapnum  __attribute__((unused)),
diff -Nrcpad gcc-16-20251019/libgomp/simple-allocator.c gcc-16-20251026/libgomp/simple-allocator.c
*** gcc-16-20251019/libgomp/simple-allocator.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgomp/simple-allocator.c	Sun Oct 26 22:33:08 2025
***************
*** 0 ****
--- 1,315 ----
+ /* Copyright (C) 2025 Free Software Foundation, Inc.
+ 
+    This file is part of the GNU Offloading and Multi Processing Library
+    (libgomp).
+ 
+    Libgomp 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.
+ 
+    Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+    more details.
+ 
+    Under Section 7 of GPL version 3, you are granted additional
+    permissions described in the GCC Runtime Library Exception, version
+    3.1, as published by the Free Software Foundation.
+ 
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ /* This is a simple "malloc" implementation intended for use with device
+    Managed Memory and Pinned Memory.  It allocates memory from a pool allocated
+    and configured by the device plugin, or the OS-specific allocator
+    (for pinned).
+  
+    Unlike the "basic" allocator, this implementation keeps the allocated/free
+    chain in a side-table (splay tree) to ensure that the allocation routine
+    does not have the side-effect of migrating all the managed memory pages back
+    into host memory.  Keeping the meta-data elsewhere is also useful for pinned
+    memory, which is typically an extremely limited resource.  */
+ 
+ #include <string.h>
+ #include "libgomp.h"
+ 
+ /* Use a splay tree to track allocations.  */
+ 
+ typedef struct simple_alloc_splay_tree_node_s *simple_alloc_splay_tree_node;
+ typedef struct simple_alloc_splay_tree_s *simple_alloc_splay_tree;
+ typedef struct simple_alloc_splay_tree_key_s *simple_alloc_splay_tree_key;
+ 
+ struct simple_alloc_splay_tree_key_s {
+   void *base;
+   size_t size;
+ };
+ 
+ static inline int
+ simple_alloc_splay_compare (simple_alloc_splay_tree_key x,
+ 			    simple_alloc_splay_tree_key y)
+ {
+   return (x->base == y->base ? 0
+ 	  : x->base > y->base ? 1
+ 	  : -1);
+ }
+ 
+ #define splay_tree_prefix simple_alloc
+ #include "splay-tree.h"
+ 
+ /* 128-byte granularity means GPU cache-line aligned.  */
+ #define ALIGN(VAR) (((VAR) + 127) & ~127)
+ 
+ /* The context data prevents the need for global state.  */
+ struct gomp_simple_alloc_context {
+   struct simple_alloc_splay_tree_s allocations;
+   struct simple_alloc_splay_tree_s free_space;
+   gomp_mutex_t lock;
+ };
+ 
+ gomp_simple_alloc_ctx_p
+ gomp_simple_alloc_init_context ()
+ {
+   return calloc (1, sizeof (struct gomp_simple_alloc_context));
+ }
+ 
+ /* Coalesce contiguous free space into one entry.  This considers the entries
+    either side of the root node only, so it should be called each time a new
+    entry in inserted into the root.  */
+ 
+ static void
+ simple_alloc_coalesce_free_space (gomp_simple_alloc_ctx_p ctx)
+ {
+   simple_alloc_splay_tree_node prev, next, node = ctx->free_space.root;
+ 
+   for (prev = node->left; prev && prev->right; prev = prev->right)
+     ;
+   for (next = node->right; next && next->left; next = next->left)
+     ;
+ 
+   /* Coalesce adjacent free chunks.  */
+   if (next
+       && node->key.base + node->key.size == next->key.base)
+     {
+       /* Free chunk follows.  */
+       node->key.size += next->key.size;
+       simple_alloc_splay_tree_remove (&ctx->free_space, &next->key);
+       free (next);
+     }
+   if (prev
+       && prev->key.base + prev->key.size == node->key.base)
+     {
+       /* Free chunk precedes.  */
+       prev->key.size += node->key.size;
+       simple_alloc_splay_tree_remove (&ctx->free_space, &node->key);
+       free (node);
+     }
+ }
+ 
+ /* Add a new memory region into the free chain.  This is how our heap is
+    initialized and extended (using memory acquired by an external caller).  If
+    the new region is contiguous with an existing region then any free space
+    will be coalesced.  */
+ 
+ void
+ gomp_simple_alloc_register_memory (gomp_simple_alloc_ctx_p ctx, char *base,
+ 				   size_t size)
+ {
+   if (base == NULL || ctx == NULL)
+     return;
+ 
+   gomp_mutex_lock (&ctx->lock);
+ 
+   simple_alloc_splay_tree_node node;
+   node = malloc (sizeof (struct simple_alloc_splay_tree_node_s));
+   node->key.base = base;
+   node->key.size = size;
+   node->left = NULL;
+   node->right = NULL;
+   simple_alloc_splay_tree_insert (&ctx->free_space, node);
+   simple_alloc_coalesce_free_space (ctx);
+ 
+   gomp_mutex_unlock (&ctx->lock);
+ }
+ 
+ /* This splay_tree_foreach callback selects the first free space large enough
+    to hold the allocation needed.  Since the splay_tree walk may start in the
+    middle the "first" isn't necessarily the "leftmost" entry.  */
+ 
+ struct simple_alloc_callback_data {
+   size_t size;
+   simple_alloc_splay_tree_node found;
+ };
+ 
+ static int
+ simple_alloc_callback (simple_alloc_splay_tree_key key, void *data)
+ {
+   struct simple_alloc_callback_data *cbd
+     = (struct simple_alloc_callback_data *)data;
+ 
+   if (key->size >= cbd->size)
+     {
+       cbd->found = (simple_alloc_splay_tree_node)key;
+       return 1;
+     }
+ 
+   return 0;
+ }
+ 
+ /* Simple "malloc".  Selects and moves and address range from ctx->free_space to
+    ctx->allocations, while leaving any excess in ctx->free_space.  */
+ 
+ void *
+ gomp_simple_alloc (gomp_simple_alloc_ctx_p ctx, size_t size)
+ {
+   if (ctx == NULL)
+     return NULL;
+ 
+   /* Memory is allocated in N-byte granularity.  */
+   size = ALIGN (size);
+ 
+   gomp_mutex_lock (&ctx->lock);
+ 
+   if (!ctx->free_space.root)
+     {
+       /* No memory registered, or no free space.  */
+       gomp_mutex_unlock (&ctx->lock);
+       return NULL;
+     }
+ 
+   /* Find a suitable free block.  */
+   struct simple_alloc_callback_data cbd = {size, NULL};
+   simple_alloc_splay_tree_foreach_lazy (&ctx->free_space,
+ 					simple_alloc_callback, &cbd);
+   simple_alloc_splay_tree_node freenode = cbd.found;
+ 
+   void *result = NULL;
+   if (freenode)
+     {
+       /* Allocation successful.  */
+       result = freenode->key.base;
+       simple_alloc_splay_tree_node allocnode = malloc (sizeof (*allocnode));
+       allocnode->key.base = result;
+       allocnode->key.size = size;
+       allocnode->left = NULL;
+       allocnode->right = NULL;
+       simple_alloc_splay_tree_insert (&ctx->allocations, allocnode);
+ 
+       /* Update the free chain.  */
+       size_t stillfree_size = freenode->key.size - size;
+       if (stillfree_size > 0)
+ 	{
+ 	  freenode->key.base = freenode->key.base + size;
+ 	  freenode->key.size = stillfree_size;
+ 	}
+       else
+ 	{
+ 	  simple_alloc_splay_tree_remove (&ctx->free_space, &freenode->key);
+ 	  free (freenode);
+ 	}
+     }
+ 
+   gomp_mutex_unlock (&ctx->lock);
+ 
+   return result;
+ }
+ 
+ /* Simple "free".  Moves an address range from ctx->allocations to
+    ctx->free_space and merges that record with any contiguous free memory.  */
+ 
+ void
+ gomp_simple_free (gomp_simple_alloc_ctx_p ctx, void *addr)
+ {
+   if (ctx == NULL)
+     return;
+ 
+   gomp_mutex_lock (&ctx->lock);
+ 
+   /* Convert the memory map to free.  */
+   struct simple_alloc_splay_tree_key_s key = {addr};
+   simple_alloc_splay_tree_key found
+     = simple_alloc_splay_tree_lookup (&ctx->allocations, &key);
+   if (!found)
+     GOMP_PLUGIN_fatal ("invalid free");
+   simple_alloc_splay_tree_remove (&ctx->allocations, &key);
+   simple_alloc_splay_tree_insert (&ctx->free_space,
+ 				  (simple_alloc_splay_tree_node)found);
+   simple_alloc_coalesce_free_space (ctx);
+ 
+   gomp_mutex_unlock (&ctx->lock);
+ }
+ 
+ /* Simple "realloc".  Works in-place, if possible; reallocates otherwise.  */
+ 
+ void *
+ gomp_simple_realloc (gomp_simple_alloc_ctx_p ctx, void *addr, size_t newsize)
+ {
+   if (ctx == NULL)
+     return NULL;
+ 
+   newsize = ALIGN (newsize);
+ 
+   gomp_mutex_lock (&ctx->lock);
+ 
+   /* Convert the memory map to free.  */
+   struct simple_alloc_splay_tree_key_s key = {addr};
+   simple_alloc_splay_tree_key found
+     = simple_alloc_splay_tree_lookup (&ctx->allocations, &key);
+   if (!found)
+     GOMP_PLUGIN_fatal ("invalid realloc");
+ 
+   if (newsize == found->size)
+     ; /* Nothing to do.  */
+   else if (newsize < found->size)
+     {
+       /* We're reducing the allocation size.  */
+       simple_alloc_splay_tree_node newfree = malloc (sizeof (*newfree));
+       newfree->key.base = found->base + newsize;
+       newfree->key.size = found->size - newsize;
+       newfree->left = NULL;
+       newfree->right = NULL;
+       simple_alloc_splay_tree_insert (&ctx->free_space, newfree);
+       simple_alloc_coalesce_free_space (ctx);
+     }
+   else
+     {
+       /* We're extending the allocation.  */
+       struct simple_alloc_splay_tree_key_s freekey = {addr + found->size};
+       simple_alloc_splay_tree_key foundfree;
+       foundfree = simple_alloc_splay_tree_lookup (&ctx->free_space, &freekey);
+       if (foundfree && foundfree->size >= newsize - found->size)
+ 	{
+ 	  /* Allocation can be expanded in place.  */
+ 	  foundfree->base += found->size;
+ 	  foundfree->size -= newsize - found->size;
+ 	  found->size = newsize;
+ 
+ 	  if (foundfree->size == 0)
+ 	    simple_alloc_splay_tree_remove (&ctx->free_space, &freekey);
+ 	}
+       else
+ 	{
+ 	  /* Allocation must be relocated.
+ 	     Release the lock and use alloc/free.  */
+ 	  gomp_mutex_unlock (&ctx->lock);
+ 
+ 	  void *newaddr = gomp_simple_alloc (ctx, newsize);
+ 	  if (!newaddr)
+ 	    return NULL;
+ 
+ 	  memcpy (newaddr, addr, found->size);
+ 	  gomp_simple_free (ctx, addr);
+ 	  return newaddr;
+ 	}
+     }
+ 
+   gomp_mutex_unlock (&ctx->lock);
+   return addr;
+ }
+ 
+ /* Include the splay tree code inline, with the prefixes added.  */
+ #define splay_tree_prefix simple_alloc
+ #define splay_tree_c
+ #include "splay-tree.h"
diff -Nrcpad gcc-16-20251019/libgomp/target.c gcc-16-20251026/libgomp/target.c
*** gcc-16-20251019/libgomp/target.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/target.c	Sun Oct 26 22:33:08 2025
*************** omp_target_free (void *device_ptr, int d
*** 4697,4702 ****
--- 4697,4813 ----
    gomp_mutex_unlock (&devicep->lock);
  }
  
+ /* Device (really: libgomp plugin) to use for paged-locked memory.  We
+    assume there is either none or exactly one such device for the lifetime of
+    the process.  */
+ 
+ static struct gomp_device_descr *device_for_page_locked
+   = /* uninitialized */ (void *) -1;
+ 
+ static struct gomp_device_descr *
+ get_device_for_page_locked (void)
+ {
+   struct gomp_device_descr *device;
+ #ifdef HAVE_SYNC_BUILTINS
+   device
+     = __atomic_load_n (&device_for_page_locked, MEMMODEL_RELAXED);
+   if (device == (void *) -1)
+     {
+       gomp_init_targets_once ();
+ 
+       device = NULL;
+       for (int i = 0; i < num_devices; ++i)
+ 	{
+ 	  /* We consider only the first device of potentially several of the
+ 	     same type as this functionality is not specific to an individual
+ 	     offloading device, but instead relates to the host-side
+ 	     implementation of the respective offloading implementation.  */
+ 	  if (devices[i].target_id != 0)
+ 	    continue;
+ 
+ 	  if (!devices[i].page_locked_host_alloc_func)
+ 	    continue;
+ 
+ 	  if (device)
+ 	    gomp_fatal ("Unclear how %s and %s libgomp plugins may"
+ 			" simultaneously provide functionality"
+ 			" for page-locked memory",
+ 			device->name, devices[i].name);
+ 
+ 	  device = &devices[i];
+ 	  gomp_debug (0, "Using device %s for page-locked memory\n",
+ 		      device->name);
+ 	}
+ 
+       struct gomp_device_descr *device_old
+ 	= __atomic_exchange_n (&device_for_page_locked, device,
+ 			       MEMMODEL_RELAXED);
+       assert (device_old == (void *) -1
+ 	      /* We shouldn't have concurrently found a different or no
+ 		 device.  */
+ 	      || device_old == device);
+     }
+ #else /* !HAVE_SYNC_BUILTINS */
+   (void) &device_for_page_locked;
+   device = NULL;
+ #endif /* HAVE_SYNC_BUILTINS */
+ 
+   return device;
+ }
+ 
+ /* Allocate page-locked host memory.
+    Returns whether we have a device capable of that.  */
+ 
+ attribute_hidden bool
+ gomp_page_locked_host_alloc (void **ptr, size_t size)
+ {
+   struct gomp_device_descr *device = get_device_for_page_locked ();
+   if (device)
+     {
+       gomp_mutex_lock (&device->lock);
+       if (device->state == GOMP_DEVICE_UNINITIALIZED)
+ 	gomp_init_device (device);
+       else if (device->state == GOMP_DEVICE_FINALIZED)
+ 	{
+ 	  gomp_mutex_unlock (&device->lock);
+ 	  gomp_fatal ("Device %s used for page-locked memory is finalized",
+ 		      device->name);
+ 	}
+       gomp_mutex_unlock (&device->lock);
+ 
+       if (!device->page_locked_host_alloc_func (ptr, size))
+ 	gomp_fatal ("Failed to allocate page-locked host memory"
+ 		    " via %s libgomp plugin",
+ 		    device->name);
+     }
+   return device != NULL;
+ }
+ 
+ /* Free page-locked host memory.
+    This must only be called if 'gomp_page_locked_host_alloc' returned
+    'true'.  */
+ 
+ attribute_hidden void
+ gomp_page_locked_host_free (void *ptr)
+ {
+   struct gomp_device_descr *device = get_device_for_page_locked ();
+   assert (device);
+ 
+   gomp_mutex_lock (&device->lock);
+   assert (device->state != GOMP_DEVICE_UNINITIALIZED);
+   if (device->state == GOMP_DEVICE_FINALIZED)
+     {
+       gomp_mutex_unlock (&device->lock);
+       return;
+     }
+   gomp_mutex_unlock (&device->lock);
+ 
+   if (!device->page_locked_host_free_func (ptr))
+     gomp_fatal ("Failed to free page-locked host memory"
+ 		" via %s libgomp plugin",
+ 		device->name);
+ }
+ 
  int
  omp_target_is_present (const void *ptr, int device_num)
  {
*************** gomp_load_plugin_for_device (struct gomp
*** 5818,5823 ****
--- 5929,5936 ----
    DLSYM (unload_image);
    DLSYM (alloc);
    DLSYM (free);
+   DLSYM_OPT (page_locked_host_alloc, page_locked_host_alloc);
+   DLSYM_OPT (page_locked_host_free, page_locked_host_free);
    DLSYM (dev2host);
    DLSYM (host2dev);
    DLSYM_OPT (memcpy2d, memcpy2d);
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-1.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-1.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-1.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-1.c	Sun Oct 26 22:33:09 2025
***************
*** 2,7 ****
--- 2,9 ----
  
  /* { dg-skip-if "Pinning not implemented on this host" { ! *-*-linux-gnu* } } */
  
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
  /* Test that pinned memory works.  */
  
  #include <stdio.h>
*************** verify0 (char *p, size_t s)
*** 63,72 ****
--- 65,80 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* Allocate at least a page each time, allowing space for overhead,
       but stay within the ulimit.  */
    const int SIZE = PAGE_SIZE - 128;
    CHECK_SIZE (SIZE * 5);  // This is intended to help diagnose failures
+ #endif
  
    const omp_alloctrait_t traits[] = {
        { omp_atk_pinned, 1 }
*************** main ()
*** 88,108 ****
--- 96,134 ----
      abort ();
  
    int amount = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount != 0)
+     abort ();
+ #else
    if (amount == 0)
      abort ();
+ #endif
  
    p = omp_realloc (p, SIZE * 2, allocator, allocator);
  
    int amount2 = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount2 != 0)
+     abort ();
+ #else
    if (amount2 <= amount)
      abort ();
+ #endif
  
    /* SIZE*2 ensures that it doesn't slot into the space possibly
       vacated by realloc.  */
    p = omp_calloc (1, SIZE * 2, allocator);
  
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (get_pinned_mem () != 0)
+     abort ();
+ #else
    if (get_pinned_mem () <= amount2)
      abort ();
+ #endif
  
    verify0 (p, SIZE * 2);
  
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-2.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-2.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-2.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-2.c	Sun Oct 26 22:33:09 2025
***************
*** 2,7 ****
--- 2,9 ----
  
  /* { dg-skip-if "Pinning not implemented on this host" { ! *-*-linux-gnu* } } */
  
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
  /* Test that pinned memory works (pool_size code path).  */
  
  #include <stdio.h>
*************** verify0 (char *p, size_t s)
*** 63,72 ****
--- 65,80 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* Allocate at least a page each time, allowing space for overhead,
       but stay within the ulimit.  */
    const int SIZE = PAGE_SIZE - 128;
    CHECK_SIZE (SIZE * 5);  // This is intended to help diagnose failures
+ #endif
  
    const omp_alloctrait_t traits[] = {
        { omp_atk_pinned, 1 },
*************** main ()
*** 89,104 ****
--- 97,124 ----
      abort ();
  
    int amount = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount != 0)
+     abort ();
+ #else
    if (amount == 0)
      abort ();
+ #endif
  
    p = omp_realloc (p, SIZE * 2, allocator, allocator);
    if (!p)
      abort ();
  
    int amount2 = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount2 != 0)
+     abort ();
+ #else
    if (amount2 <= amount)
      abort ();
+ #endif
  
    /* SIZE*2 ensures that it doesn't slot into the space possibly
       vacated by realloc.  */
*************** main ()
*** 106,113 ****
--- 126,139 ----
    if (!p)
      abort ();
  
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (get_pinned_mem () != 0)
+     abort ();
+ #else
    if (get_pinned_mem () <= amount2)
      abort ();
+ #endif
  
    verify0 (p, SIZE * 2);
  
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-3.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-3.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-3.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-3.c	Sun Oct 26 22:33:09 2025
***************
*** 1,5 ****
--- 1,7 ----
  /* { dg-do run } */
  
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
  /* Test that pinned memory fails correctly.  */
  
  #include <stdio.h>
*************** verify0 (char *p, size_t s)
*** 75,82 ****
--- 77,91 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* This needs to be large enough to cover multiple pages.  */
    const int SIZE = PAGE_SIZE * 4;
+ #endif
+   const int PIN_LIMIT = PAGE_SIZE * 2;
  
    /* Pinned memory, no fallback.  */
    const omp_alloctrait_t traits1[] = {
*************** main ()
*** 101,123 ****
  #endif
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (SIZE / 2);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
-   // Should fail
    void *p1 = omp_alloc (SIZE, allocator1);
    if (p1)
      abort ();
  
-   // Should fail
    void *p2 = omp_calloc (1, SIZE, allocator1);
    if (p2)
      abort ();
  
-   // Should fall back
    void *p3 = omp_alloc (SIZE, allocator2);
    if (!p3)
      abort ();
--- 110,143 ----
  #endif
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (PIN_LIMIT);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
    void *p1 = omp_alloc (SIZE, allocator1);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p1)
+     abort ();
+ #else
+   // Should fail
    if (p1)
      abort ();
+ #endif
  
    void *p2 = omp_calloc (1, SIZE, allocator1);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p2)
+     abort ();
+ #else
+   // Should fail
    if (p2)
      abort ();
+ #endif
  
    void *p3 = omp_alloc (SIZE, allocator2);
    if (!p3)
      abort ();
*************** main ()
*** 128,143 ****
      abort ();
    verify0 (p4, SIZE);
  
-   // Should fail to realloc
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    void *p5 = omp_realloc (notpinned, SIZE, allocator1, omp_default_mem_alloc);
    if (!notpinned || p5)
      abort ();
  
!   // Should fall back to no realloc needed
    void *p6 = omp_realloc (notpinned, SIZE, allocator2, omp_default_mem_alloc);
    if (p6 != notpinned)
      abort ();
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
--- 148,176 ----
      abort ();
    verify0 (p4, SIZE);
  
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    void *p5 = omp_realloc (notpinned, SIZE, allocator1, omp_default_mem_alloc);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'; does reallocate.
+   if (!notpinned || !p5 || p5 == notpinned)
+     abort ();
+ #else
+   // Should fail to realloc
    if (!notpinned || p5)
      abort ();
+ #endif
  
! #ifdef OFFLOAD_DEVICE_NVPTX
!   void *p6 = omp_realloc (p5, SIZE, allocator2, allocator1);
!   // Does reallocate.
!   if (p5 == p6)
!     abort ();
! #else
    void *p6 = omp_realloc (notpinned, SIZE, allocator2, omp_default_mem_alloc);
+   // Should fall back to no realloc needed
    if (p6 != notpinned)
      abort ();
+ #endif
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-4.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-4.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-4.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-4.c	Sun Oct 26 22:33:09 2025
***************
*** 1,5 ****
--- 1,7 ----
  /* { dg-do run } */
  
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
  /* Test that pinned memory fails correctly, pool_size code path.  */
  
  #include <stdio.h>
*************** verify0 (char *p, size_t s)
*** 75,82 ****
--- 77,91 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* This needs to be large enough to cover multiple pages.  */
    const int SIZE = PAGE_SIZE * 4;
+ #endif
+   const int PIN_LIMIT = PAGE_SIZE * 2;
  
    /* Pinned memory, no fallback.  */
    const omp_alloctrait_t traits1[] = {
*************** main ()
*** 103,123 ****
  #endif
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (SIZE / 2);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
-   // Should fail
    void *p = omp_alloc (SIZE, allocator1);
    if (p)
      abort ();
  
-   // Should fail
    p = omp_calloc (1, SIZE, allocator1);
    if (p)
      abort ();
  
    // Should fall back
    p = omp_alloc (SIZE, allocator2);
--- 112,144 ----
  #endif
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (PIN_LIMIT);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
    void *p = omp_alloc (SIZE, allocator1);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p)
+     abort ();
+ #else
+   // Should fail
    if (p)
      abort ();
+ #endif
  
    p = omp_calloc (1, SIZE, allocator1);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p)
+     abort ();
+ #else
+   // Should fail
    if (p)
      abort ();
+ #endif
  
    // Should fall back
    p = omp_alloc (SIZE, allocator2);
*************** main ()
*** 130,145 ****
      abort ();
    verify0 (p, SIZE);
  
-   // Should fail to realloc
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    p = omp_realloc (notpinned, SIZE, allocator1, omp_default_mem_alloc);
    if (!notpinned || p)
      abort ();
  
!   // Should fall back to no realloc needed
    p = omp_realloc (notpinned, SIZE, allocator2, omp_default_mem_alloc);
    if (p != notpinned)
      abort ();
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
--- 151,179 ----
      abort ();
    verify0 (p, SIZE);
  
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    p = omp_realloc (notpinned, SIZE, allocator1, omp_default_mem_alloc);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'; does reallocate.
+   if (!notpinned || !p || p == notpinned)
+     abort ();
+ #else
+   // Should fail to realloc
    if (!notpinned || p)
      abort ();
+ #endif
  
! #ifdef OFFLOAD_DEVICE_NVPTX
!   void *p_ = omp_realloc (p, SIZE, allocator2, allocator1);
!   // Does reallocate.
!   if (p_ == p)
!     abort ();
! #else
    p = omp_realloc (notpinned, SIZE, allocator2, omp_default_mem_alloc);
+   // Should fall back to no realloc needed
    if (p != notpinned)
      abort ();
+ #endif
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-5.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-5.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-5.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-5.c	Sun Oct 26 22:33:09 2025
***************
*** 2,7 ****
--- 2,9 ----
  
  /* { dg-skip-if "Pinning not implemented on this host" { ! *-*-linux-gnu* } } */
  
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
  /* Test that ompx_gnu_pinned_mem_alloc works.  */
  
  #include <stdio.h>
*************** verify0 (char *p, size_t s)
*** 63,72 ****
--- 65,80 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* Allocate at least a page each time, allowing space for overhead,
       but stay within the ulimit.  */
    const int SIZE = PAGE_SIZE - 128;
    CHECK_SIZE (SIZE * 5);
+ #endif
  
    // Sanity check
    if (get_pinned_mem () != 0)
*************** main ()
*** 77,98 ****
--- 85,124 ----
      abort ();
  
    int amount = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount != 0)
+     abort ();
+ #else
    if (amount == 0)
      abort ();
+ #endif
  
    p = omp_realloc (p, SIZE * 2, ompx_gnu_pinned_mem_alloc,
  		   ompx_gnu_pinned_mem_alloc);
  
    int amount2 = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount2 != 0)
+     abort ();
+ #else
    if (amount2 <= amount)
      abort ();
+ #endif
  
    /* SIZE*2 ensures that it doesn't slot into the space possibly
       vacated by realloc.  */
    p = omp_calloc (1, SIZE * 2, ompx_gnu_pinned_mem_alloc);
  
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (get_pinned_mem () != 0)
+     abort ();
+ #else
    if (get_pinned_mem () <= amount2)
      abort ();
+ #endif
  
    verify0 (p, SIZE * 2);
  
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-6.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-6.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-6.c	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-6.c	Sun Oct 26 22:33:09 2025
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run } */
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
  
  /* Test that ompx_gnu_pinned_mem_alloc fails correctly.  */
  
*************** set_pin_limit (int size)
*** 66,97 ****
  int
  main ()
  {
    /* Allocate at least a page each time, but stay within the ulimit.  */
    const int SIZE = PAGE_SIZE * 4;
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (SIZE / 2);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
-   // Should fail
    void *p = omp_alloc (SIZE, ompx_gnu_pinned_mem_alloc);
    if (p)
      abort ();
  
-   // Should fail
    p = omp_calloc (1, SIZE, ompx_gnu_pinned_mem_alloc);
    if (p)
      abort ();
  
-   // Should fail to realloc
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    p = omp_realloc (notpinned, SIZE, ompx_gnu_pinned_mem_alloc,
  		   omp_default_mem_alloc);
    if (!notpinned || p)
      abort ();
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
--- 67,123 ----
  int
  main ()
  {
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* Go big or go home.
+      The OS ulimit does not affect memory locked via CUDA for NVPTX devices. */
+   const int SIZE = 40 * 1024 * 1024;
+ #else
    /* Allocate at least a page each time, but stay within the ulimit.  */
    const int SIZE = PAGE_SIZE * 4;
+ #endif
+   const int PIN_LIMIT = PAGE_SIZE*2;
  
    /* Ensure that the limit is smaller than the allocation.  */
!   set_pin_limit (PIN_LIMIT);
  
    // Sanity check
    if (get_pinned_mem () != 0)
      abort ();
  
    void *p = omp_alloc (SIZE, ompx_gnu_pinned_mem_alloc);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p)
+     abort ();
+ #else
+   // Should fail
    if (p)
      abort ();
+ #endif
  
    p = omp_calloc (1, SIZE, ompx_gnu_pinned_mem_alloc);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'.
+   if (!p)
+     abort ();
+ #else
+   // Should fail
    if (p)
      abort ();
+ #endif
  
    void *notpinned = omp_alloc (SIZE, omp_default_mem_alloc);
    p = omp_realloc (notpinned, SIZE, ompx_gnu_pinned_mem_alloc,
  		   omp_default_mem_alloc);
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   // Doesn't care about 'set_pin_limit'; does reallocate.
+   if (!notpinned || !p || p == notpinned)
+     abort ();
+ #else
+   // Should fail to realloc
    if (!notpinned || p)
      abort ();
+ #endif
  
    // No memory should have been pinned
    int amount = get_pinned_mem ();
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-8.c gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-8.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/alloc-pinned-8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/alloc-pinned-8.c	Sun Oct 26 22:33:09 2025
***************
*** 0 ****
--- 1,122 ----
+ /* { dg-do run } */
+ 
+ /* { dg-skip-if "Pinning not implemented on this host" { ! *-*-linux-gnu* } } */
+ 
+ /* { dg-additional-options -DOFFLOAD_DEVICE_NVPTX { target offload_device_nvptx } } */
+ 
+ /* Test that pinned memory works for small allocations.  */
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ #ifdef __linux__
+ #include <sys/types.h>
+ #include <unistd.h>
+ 
+ #include <sys/mman.h>
+ #include <sys/resource.h>
+ 
+ #define PAGE_SIZE sysconf(_SC_PAGESIZE)
+ #define CHECK_SIZE(SIZE) { \
+   struct rlimit limit; \
+   if (getrlimit (RLIMIT_MEMLOCK, &limit) \
+       || limit.rlim_cur <= SIZE) \
+     fprintf (stderr, "insufficient lockable memory; please increase ulimit\n"); \
+   }
+ 
+ int
+ get_pinned_mem ()
+ {
+   int pid = getpid ();
+   char buf[100];
+   sprintf (buf, "/proc/%d/status", pid);
+ 
+   FILE *proc = fopen (buf, "r");
+   if (!proc)
+     abort ();
+   while (fgets (buf, 100, proc))
+     {
+       int val;
+       if (sscanf (buf, "VmLck: %d", &val))
+ 	{
+ 	  fclose (proc);
+ 	  return val;
+ 	}
+     }
+   abort ();
+ }
+ #else
+ #error "OS unsupported"
+ #endif
+ 
+ static void
+ verify0 (char *p, size_t s)
+ {
+   for (size_t i = 0; i < s; ++i)
+     if (p[i] != 0)
+       abort ();
+ }
+ 
+ #include <omp.h>
+ 
+ int
+ main ()
+ {
+   /* Choose a small size where all our allocations fit on one page.  */
+   const int SIZE = 10;
+ #ifndef OFFLOAD_DEVICE_NVPTX
+   CHECK_SIZE (SIZE*4);
+ #endif
+ 
+   const omp_alloctrait_t traits[] = {
+       { omp_atk_pinned, 1 }
+   };
+   omp_allocator_handle_t allocator = omp_init_allocator (omp_default_mem_space, 1, traits);
+ 
+   // Sanity check
+   if (get_pinned_mem () != 0)
+     abort ();
+ 
+   void *p = omp_alloc (SIZE, allocator);
+   if (!p)
+     abort ();
+ 
+   int amount = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount != 0)
+     abort ();
+ #else
+   if (amount == 0)
+     abort ();
+ #endif
+ 
+   p = omp_realloc (p, SIZE * 2, allocator, allocator);
+ 
+   int amount2 = get_pinned_mem ();
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (amount2 != 0)
+     abort ();
+ #else
+   /* A small allocation should not allocate another page.  */
+   if (amount2 != amount)
+     abort ();
+ #endif
+ 
+   p = omp_calloc (1, SIZE, allocator);
+ 
+ #ifdef OFFLOAD_DEVICE_NVPTX
+   /* This doesn't show up as process 'VmLck'ed memory.  */
+   if (get_pinned_mem () != 0)
+     abort ();
+ #else
+   /* A small allocation should not allocate another page.  */
+   if (get_pinned_mem () != amount2)
+     abort ();
+ #endif
+ 
+   verify0 (p, SIZE);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c	Sun Oct 26 22:33:09 2025
***************
*** 0 ****
--- 1,19 ----
+ /* Test that GOMP_task is special cased when cpyfn is NULL.  */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
+ /* { dg-require-effective-target fopenmp } */
+ /* { dg-require-effective-target lto } */
+ 
+ void test(int c) {
+   for (int i = 0; i < c; i++)
+     if (!__builtin_constant_p(c))
+       __builtin_abort();
+ }
+ int main() {
+ #pragma omp task
+   test(7);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-wpa-ipa-dump "Creating a specialized node of main._omp_fn" "cp" } } */
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c	Sun Oct 26 22:33:09 2025
***************
*** 0 ****
--- 1,21 ----
+ /* Check that GOMP_task doesn't produce callback edges when cpyfn is not
+    NULL.  */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
+ /* { dg-require-effective-target fopenmp } */
+ /* { dg-require-effective-target lto } */
+ 
+ void test(int *a) {
+   for (int i = 0; i < 100; i++) {
+     a[i] = i;
+   }
+ }
+ int main() {
+   int a[100];
+   __builtin_memset (a, 0, sizeof (a));
+   #pragma omp task
+   test (a);
+ }
+ 
+ /* { dg-final { scan-ipa-dump-not "Created callback edge" "cp" } } */
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb1.c gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb1.c
*** gcc-16-20251019/libgomp/testsuite/libgomp.c/ipcp-cb1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libgomp/testsuite/libgomp.c/ipcp-cb1.c	Sun Oct 26 22:33:09 2025
***************
*** 0 ****
--- 1,25 ----
+ /* Test that we can propagate constants into outlined OpenMP kernels.
+    This tests the underlying callback attribute and its related edges.  */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-O3 -fopenmp -flto -std=gnu99 -fdump-ipa-cp-details" } */
+ /* { dg-require-effective-target fopenmp } */
+ /* { dg-require-effective-target lto } */
+ 
+ int a[100];
+ void test(int c) {
+ #pragma omp parallel for
+   for (int i = 0; i < c; i++) {
+     if (!__builtin_constant_p(c)) {
+       __builtin_abort();
+     }
+     a[i] = i;
+   }
+ }
+ int main() {
+   test(100);
+   return a[5] - 5;
+ }
+ 
+ /* { dg-final { scan-wpa-ipa-dump "Creating a specialized node of test._omp_fn" "cp" } } */
+ /* { dg-final { scan-wpa-ipa-dump "Aggregate replacements: 0\\\[0]=100\\(by_ref\\)" "cp" } } */
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-flex-101.C gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-flex-101.C
*** gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-flex-101.C	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-flex-101.C	Sun Oct 26 22:33:09 2025
***************
*** 1,5 ****
--- 1,8 ----
  /* { dg-additional-options -std=c++23 } */
  
+ /* { dg-ice {TODO PR122268} { offload_target_amdgcn || offload_target_nvptx } }
+    { dg-excess-errors {'mkoffload' failure etc.} { xfail { offload_target_amdgcn || offload_target_nvptx } } } */
+ 
  /* C++23 container adaptors in target region.
     Severely needs additional tests.  */
  
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
*** gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C	Sun Oct 26 22:33:09 2025
***************
*** 2,11 ****
  // { dg-additional-options "-std=c++23" }
  // { dg-additional-options -DMEM_SHARED { target offload_device_shared_as } }
  
- /* { dg-ice {TODO PR120450} { offload_target_amdgcn && { ! offload_device_shared_as } } }
-    { dg-excess-errors {'mkoffload' failure etc.} { xfail { offload_target_amdgcn && { ! offload_device_shared_as } } } }
-    (For effective-target 'offload_device_shared_as', we've got '-DMEM_SHARED', and therefore don't invoke the constructor with placement new.)  */
- 
  #include <stdlib.h>
  #include <time.h>
  #include <set>
--- 2,7 ----
diff -Nrcpad gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
*** gcc-16-20251019/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C	Sun Oct 19 22:32:43 2025
--- gcc-16-20251026/libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C	Sun Oct 26 22:33:09 2025
***************
*** 2,11 ****
  // { dg-additional-options "-std=c++23" }
  // { dg-additional-options -DMEM_SHARED { target offload_device_shared_as } }
  
- /* { dg-ice {TODO PR120450} { offload_target_amdgcn && { ! offload_device_shared_as } } }
-    { dg-excess-errors {'mkoffload' failure etc.} { xfail { offload_target_amdgcn && { ! offload_device_shared_as } } } }
-    (For effective-target 'offload_device_shared_as', we've got '-DMEM_SHARED', and therefore don't invoke the constructor with placement new.)  */
- 
  #include <stdlib.h>
  #include <time.h>
  #include <flat_map>
--- 2,7 ----
diff -Nrcpad gcc-16-20251019/libstdc++-v3/ChangeLog gcc-16-20251026/libstdc++-v3/ChangeLog
*** gcc-16-20251019/libstdc++-v3/ChangeLog	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/ChangeLog	Sun Oct 26 22:33:11 2025
***************
*** 1,3 ****
--- 1,110 ----
+ 2025-10-24  Eric Pimentel Aguiar  <eric.pimentela@gmail.com>
+ 
+ 	* src/c++23/std.cc.in (std::strided_slice, std::full_extent_t)
+ 	(std::full_extent, std::submdspan_mapping_result): Add std
+ 	qualification.
+ 
+ 2025-10-24  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/122022
+ 	* include/std/functional (_Bind_fn_t): Use forwarding reference as
+ 	paremeter.
+ 	(std::not_fn<f>): Use forwarding reference as lambda parameter.
+ 	* testsuite/20_util/function_objects/bind_back/nttp.cc: Rework tests.
+ 	* testsuite/20_util/function_objects/bind_front/nttp.cc: Likewise.
+ 	* testsuite/20_util/function_objects/not_fn/nttp.cc: Add test for
+ 	argument forwarding.
+ 
+ 2025-10-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122224
+ 	* include/bits/stl_iterator_base_funcs.h (prev): Compare
+ 	distance as n > 0 instead of n != 0.
+ 	* testsuite/24_iterators/range_operations/122224.cc: New test.
+ 
+ 2025-10-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/ranges (indices::operator()): Constrain using
+ 	__can_iota_view concept.
+ 	* testsuite/std/ranges/indices/1.cc: Check SFINAE-friendliness
+ 	required by expression equivalence. Replace unused <vector>
+ 	header with <stddef.h> needed for size_t.
+ 
+ 2025-10-22  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+ 	    Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/121748
+ 	* include/bits/version.def: Bump value for optional,
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/optional (std::__is_valid_contained_type_for_optional):
+ 	Define.
+ 	(std::optional<T>): Use __is_valid_contained_type_for_optional.
+ 	(optional<T>(const optional<_Up>&), optional<T>(optional<_Up>&&))
+ 	(optional<T>::operator=(const optional<_Up>&))
+ 	(optional<T>::operator=(optional<_Up>&&)): Replacex._M_get() with
+ 	x._M_fwd(), and std::move(x._M_get()) with std::move(x)._M_fwd().
+ 	(optional<T>::and_then): Remove uncessary remove_cvref_t.
+ 	(optional<T>::_M_fwd): Define.
+ 	(std::optional<T&>): Define new partial specialization.
+ 	(std::swap(std::optional<T&>, std::optional<T&>)): Define.
+ 	(std::make_optional(_Tp&&)): Add non-type template parameter.
+ 	(std::make_optional): Use parenthesis to constructor optional.
+ 	(std::hash<optional<T>>): Add comment.
+ 	* testsuite/20_util/optional/make_optional-2.cc: Guarded not longer
+ 	working example.
+ 	* testsuite/20_util/optional/relops/constrained.cc: Expand test to
+ 	cover optionals of reference.
+ 	* testsuite/20_util/optional/requirements.cc: Ammend for
+ 	optional<T&>.
+ 	* testsuite/20_util/optional/requirements_neg.cc: Likewise.
+ 	* testsuite/20_util/optional/version.cc: Test new value of
+ 	__cpp_lib_optional.
+ 	* testsuite/20_util/optional/make_optional_neg.cc: New test.
+ 	* testsuite/20_util/optional/monadic/ref_neg.cc: New test.
+ 	* testsuite/20_util/optional/ref/access.cc: New test.
+ 	* testsuite/20_util/optional/ref/assign.cc: New test.
+ 	* testsuite/20_util/optional/ref/cons.cc: New test.
+ 	* testsuite/20_util/optional/ref/internal_traits.cc: New test.
+ 	* testsuite/20_util/optional/ref/make_optional/1.cc: New test.
+ 	* testsuite/20_util/optional/ref/make_optional/from_args_neg.cc:
+ 	New test.
+ 	* testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc:
+ 	New test.
+ 	* testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc:
+ 	New test.
+ 	* testsuite/20_util/optional/ref/monadic.cc: New test.
+ 	* testsuite/20_util/optional/ref/relops.cc: New test.
+ 
+ 2025-10-22  Osama Abdelkader  <osama.abdelkader@gmail.com>
+ 
+ 	PR libstdc++/119721
+ 	* include/std/tuple (tuple<>::operator==, tuple<>::operator<=>):
+ 	Define.
+ 	* testsuite/23_containers/tuple/comparison_operators/119721.cc:
+ 	New test.
+ 
+ 2025-10-20  Yuao Ma  <c8ef@outlook.com>
+ 
+ 	* include/bits/version.def: Add ranges_indices FTM.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/ranges: Implement views::indices.
+ 	* testsuite/std/ranges/indices/1.cc: New test.
+ 
+ 2025-10-20  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/funcwrap.h (__polyfunc::__deduce_funcref):
+ 	Adjust signature produced for member object pointers.
+ 	* testsuite/20_util/function_ref/deduction.cc: Update tests.
+ 
+ 2025-10-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122322
+ 	* configure.ac (with_newlib) <*-rtems*>: Remove
+ 	HAVE_SYS_IOCT4YL_H, _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK,
+ 	_GLIBCXX_USE_SYMLINK, _GLIBCXX_USE_TRUNCATE, and
+ 	_GLIBCXX_USE_FDOPENDIR. Remove duplicates.
+ 	* configure: Regenerate.
+ 
  2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>
  
  	PR c++/119060
diff -Nrcpad gcc-16-20251019/libstdc++-v3/configure gcc-16-20251026/libstdc++-v3/configure
*** gcc-16-20251019/libstdc++-v3/configure	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/configure	Sun Oct 26 22:33:29 2025
*************** rm -f core conftest.err conftest.$ac_obj
*** 28744,28757 ****
  
          $as_echo "#define HAVE_LINK 1" >>confdefs.h
  
-         $as_echo "#define HAVE_SYS_IOCT4YL_H 1" >>confdefs.h
- 
          $as_echo "#define HAVE_SYS_STAT_H 1" >>confdefs.h
  
          $as_echo "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
  
-         $as_echo "#define HAVE_S_ISREG 1" >>confdefs.h
- 
          $as_echo "#define HAVE_QUICK_EXIT 1" >>confdefs.h
  
          $as_echo "#define HAVE_READLINK 1" >>confdefs.h
--- 28744,28753 ----
*************** rm -f core conftest.err conftest.$ac_obj
*** 28766,28777 ****
  
          $as_echo "#define HAVE_SYMLINK 1" >>confdefs.h
  
-         $as_echo "#define HAVE_SYS_IOCT4YL_H 1" >>confdefs.h
- 
-         $as_echo "#define HAVE_SYS_STAT_H 1" >>confdefs.h
- 
-         $as_echo "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
- 
          $as_echo "#define HAVE_S_ISREG 1" >>confdefs.h
  
          $as_echo "#define HAVE_TRUNCATE 1" >>confdefs.h
--- 28762,28767 ----
*************** rm -f core conftest.err conftest.$ac_obj
*** 28792,28807 ****
  
          $as_echo "#define _GLIBCXX_USE_UTIME 1" >>confdefs.h
  
-         $as_echo "#define _GLIBCXX_USE_LINK 1" >>confdefs.h
- 
-         $as_echo "#define _GLIBCXX_USE_READLINK 1" >>confdefs.h
- 
-         $as_echo "#define _GLIBCXX_USE_SYMLINK 1" >>confdefs.h
- 
-         $as_echo "#define _GLIBCXX_USE_TRUNCATE 1" >>confdefs.h
- 
-         $as_echo "#define _GLIBCXX_USE_FDOPENDIR 1" >>confdefs.h
- 
          $as_echo "#define HAVE_USLEEP 1" >>confdefs.h
  
  
--- 28782,28787 ----
*************** $as_echo "$glibcxx_cv_libbacktrace_atomi
*** 53961,53967 ****
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 53964 "configure"
  #include <stddef.h>
  int main()
  {
--- 53941,53947 ----
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 53944 "configure"
  #include <stddef.h>
  int main()
  {
diff -Nrcpad gcc-16-20251019/libstdc++-v3/configure.ac gcc-16-20251026/libstdc++-v3/configure.ac
*** gcc-16-20251019/libstdc++-v3/configure.ac	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/configure.ac	Sun Oct 26 22:33:12 2025
*************** dnl # rather than hardcoding that inform
*** 399,408 ****
          AC_DEFINE(HAVE_ALIGNED_ALLOC)
          AC_DEFINE(HAVE_AT_QUICK_EXIT)
          AC_DEFINE(HAVE_LINK)
-         AC_DEFINE(HAVE_SYS_IOCT4YL_H)
          AC_DEFINE(HAVE_SYS_STAT_H)
          AC_DEFINE(HAVE_SYS_TYPES_H)
-         AC_DEFINE(HAVE_S_ISREG)
          AC_DEFINE(HAVE_QUICK_EXIT)
          AC_DEFINE(HAVE_READLINK)
          AC_DEFINE(HAVE_SETENV)
--- 399,406 ----
*************** dnl # rather than hardcoding that inform
*** 410,418 ****
          AC_DEFINE(HAVE_SOCKATMARK)
          AC_DEFINE(HAVE_STRERROR_L)
          AC_DEFINE(HAVE_SYMLINK)
-         AC_DEFINE(HAVE_SYS_IOCT4YL_H)
-         AC_DEFINE(HAVE_SYS_STAT_H)
-         AC_DEFINE(HAVE_SYS_TYPES_H)
          AC_DEFINE(HAVE_S_ISREG)
          AC_DEFINE(HAVE_TRUNCATE)
          AC_DEFINE(HAVE_UNISTD_H)
--- 408,413 ----
*************** dnl # rather than hardcoding that inform
*** 423,433 ****
          AC_DEFINE(_GLIBCXX_USE_CHDIR)
          AC_DEFINE(_GLIBCXX_USE_GETCWD)
          AC_DEFINE(_GLIBCXX_USE_UTIME)
-         AC_DEFINE(_GLIBCXX_USE_LINK)
-         AC_DEFINE(_GLIBCXX_USE_READLINK)
-         AC_DEFINE(_GLIBCXX_USE_SYMLINK)
-         AC_DEFINE(_GLIBCXX_USE_TRUNCATE)
-         AC_DEFINE(_GLIBCXX_USE_FDOPENDIR)
          AC_DEFINE(HAVE_USLEEP)
  
          # These functions are defined in librtemscpu.  We don't use
--- 418,423 ----
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/bits/funcwrap.h gcc-16-20251026/libstdc++-v3/include/bits/funcwrap.h
*** gcc-16-20251019/libstdc++-v3/include/bits/funcwrap.h	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/include/bits/funcwrap.h	Sun Oct 26 22:33:12 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 546,553 ****
  	if constexpr (is_member_object_pointer_v<_Fn>)
  	  {
  	    if constexpr (is_invocable_v<_Fn, _Tr>)
! 	      // TODO Consider reporting issue to make this noexcept
! 	      return static_cast<invoke_result_t<_Fn, _Tr>(*)()>(nullptr);
  	  }
  	else if constexpr (requires { typename __skip_first_arg<_Fn>::type; })
  	  return static_cast<__skip_first_arg<_Fn>::type*>(nullptr);
--- 546,555 ----
  	if constexpr (is_member_object_pointer_v<_Fn>)
  	  {
  	    if constexpr (is_invocable_v<_Fn, _Tr>)
! 	      // _GLIBCXX_RESOLVE_LIB_DEFECTS
! 	      // 4425. CTAD function_ref from data member pointer should produce
! 	      //       noexcept signature
! 	      return static_cast<invoke_result_t<_Fn, _Tr>(*)() noexcept>(nullptr);
  	  }
  	else if constexpr (requires { typename __skip_first_arg<_Fn>::type; })
  	  return static_cast<__skip_first_arg<_Fn>::type*>(nullptr);
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/bits/stl_iterator_base_funcs.h gcc-16-20251026/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
*** gcc-16-20251019/libstdc++-v3/include/bits/stl_iterator_base_funcs.h	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/include/bits/stl_iterator_base_funcs.h	Sun Oct 26 22:33:12 2025
*************** namespace __detail
*** 201,207 ****
        // concept requirements
        __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
        __glibcxx_assert(__n >= 0);
!       while (__n--)
  	++__i;
      }
  
--- 201,207 ----
        // concept requirements
        __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
        __glibcxx_assert(__n >= 0);
!       while (__n-- > 0)
  	++__i;
      }
  
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/bits/version.def gcc-16-20251026/libstdc++-v3/include/bits/version.def
*** gcc-16-20251019/libstdc++-v3/include/bits/version.def	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/include/bits/version.def	Sun Oct 26 22:33:12 2025
*************** ftms = {
*** 878,889 ****
  // Moved down here (after concepts) by topological sort.
  ftms = {
    name = optional;
!   values = {
      v = 202110;
      cxxmin = 23;
      extra_cond = "__glibcxx_concepts";
    };
!   values = {
      v = 202106;
      cxxmin = 20;
    };
--- 878,894 ----
  // Moved down here (after concepts) by topological sort.
  ftms = {
    name = optional;
!   values = { // optional<T&>
!     v = 202506;
!     cxxmin = 26;
!     extra_cond = "__glibcxx_concepts";
!   };
!   values = { // monadic operations
      v = 202110;
      cxxmin = 23;
      extra_cond = "__glibcxx_concepts";
    };
!   values = { // full constexpr support
      v = 202106;
      cxxmin = 20;
    };
*************** ftms = {
*** 1754,1759 ****
--- 1759,1772 ----
    };
  };
  
+ ftms = {
+   name = ranges_indices;
+   values = {
+     v = 202506;
+     cxxmin = 26;
+   };
+ };
+ 
  ftms = {
    name = constexpr_bitset;
    values = {
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/bits/version.h gcc-16-20251026/libstdc++-v3/include/bits/version.h
*** gcc-16-20251019/libstdc++-v3/include/bits/version.h	Sun Oct 19 22:32:45 2025
--- gcc-16-20251026/libstdc++-v3/include/bits/version.h	Sun Oct 26 22:33:12 2025
***************
*** 985,991 ****
  #undef __glibcxx_want_concepts
  
  #if !defined(__cpp_lib_optional)
! # if (__cplusplus >= 202100L) && (__glibcxx_concepts)
  #  define __glibcxx_optional 202110L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
  #   define __cpp_lib_optional 202110L
--- 985,996 ----
  #undef __glibcxx_want_concepts
  
  #if !defined(__cpp_lib_optional)
! # if (__cplusplus >  202302L) && (__glibcxx_concepts)
! #  define __glibcxx_optional 202506L
! #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
! #   define __cpp_lib_optional 202506L
! #  endif
! # elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
  #  define __glibcxx_optional 202110L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
  #   define __cpp_lib_optional 202110L
***************
*** 1956,1961 ****
--- 1961,1976 ----
  #endif /* !defined(__cpp_lib_ranges_starts_ends_with) */
  #undef __glibcxx_want_ranges_starts_ends_with
  
+ #if !defined(__cpp_lib_ranges_indices)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_ranges_indices 202506L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_indices)
+ #   define __cpp_lib_ranges_indices 202506L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_ranges_indices) */
+ #undef __glibcxx_want_ranges_indices
+ 
  #if !defined(__cpp_lib_constexpr_bitset)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
  #  define __glibcxx_constexpr_bitset 202202L
***************
*** 2188,2194 ****
  #   define __cpp_lib_observable_checkpoint 202506L
  #  endif
  # endif
! #endif /* !defined(__cpp_lib_observable_checkpoint) && defined(__glibcxx_want_observable_checkpoint) */
  #undef __glibcxx_want_observable_checkpoint
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
--- 2203,2209 ----
  #   define __cpp_lib_observable_checkpoint 202506L
  #  endif
  # endif
! #endif /* !defined(__cpp_lib_observable_checkpoint) */
  #undef __glibcxx_want_observable_checkpoint
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/std/functional gcc-16-20251026/libstdc++-v3/include/std/functional
*** gcc-16-20251019/libstdc++-v3/include/std/functional	Sun Oct 19 22:32:46 2025
--- gcc-16-20251026/libstdc++-v3/include/std/functional	Sun Oct 26 22:33:12 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 928,937 ****
      {
        using _Fn = const decltype(__fn)&;
        template <typename... _Args>
  	constexpr static decltype(auto)
! 	operator()(_Args... __args)
! 	  noexcept(is_nothrow_invocable_v<_Fn, _Args...>)
! 	  requires is_invocable_v<_Fn, _Args...>
  	{ return std::invoke(__fn, std::forward<_Args>(__args)...); }
      };
  #endif
--- 928,937 ----
      {
        using _Fn = const decltype(__fn)&;
        template <typename... _Args>
+ 	requires is_invocable_v<_Fn, _Args...>
  	constexpr static decltype(auto)
! 	operator()(_Args&&... __args)
! 	noexcept(is_nothrow_invocable_v<_Fn, _Args...>)
  	{ return std::invoke(__fn, std::forward<_Args>(__args)...); }
      };
  #endif
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1188,1194 ****
        using _Fn = decltype(__fn);
        if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	static_assert(__fn != nullptr);
!       return []<typename... _Args>(_Args... __args) static
  	  noexcept(noexcept(
  	    !std::invoke(__fn, std::forward<_Args>(__args)...) ))
  	  -> decltype(auto)
--- 1188,1194 ----
        using _Fn = decltype(__fn);
        if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	static_assert(__fn != nullptr);
!       return []<typename... _Args>(_Args&&... __args) static
  	  noexcept(noexcept(
  	    !std::invoke(__fn, std::forward<_Args>(__args)...) ))
  	  -> decltype(auto)
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/std/optional gcc-16-20251026/libstdc++-v3/include/std/optional
*** gcc-16-20251019/libstdc++-v3/include/std/optional	Sun Oct 19 22:32:46 2025
--- gcc-16-20251026/libstdc++-v3/include/std/optional	Sun Oct 26 22:33:12 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 777,782 ****
--- 777,793 ----
  # define _GLIBCXX_USE_CONSTRAINTS_FOR_OPTIONAL 1
  #endif
  
+   template<typename _Tp>
+     inline constexpr bool __is_valid_contained_type_for_optional =
+       (
+ #if __cpp_lib_optional >= 202506L
+ 	is_lvalue_reference_v<_Tp> ||
+ #endif
+ 	(is_object_v<_Tp> && is_destructible_v<_Tp> && !is_array_v<_Tp>)
+       )
+       && !is_same_v<remove_cv_t<remove_reference_t<_Tp>>, nullopt_t>
+       && !is_same_v<remove_cv_t<remove_reference_t<_Tp>>, in_place_t>;
+ 
    /**
      * @brief Class template for optional values.
      */
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 795,803 ****
  	// Unique tag type.
  	optional<_Tp>>
      {
!       static_assert(!is_same_v<remove_cv_t<_Tp>, nullopt_t>);
!       static_assert(!is_same_v<remove_cv_t<_Tp>, in_place_t>);
!       static_assert(is_object_v<_Tp> && !is_array_v<_Tp>);
  
      private:
        using _Base = _Optional_base<_Tp>;
--- 806,812 ----
  	// Unique tag type.
  	optional<_Tp>>
      {
!       static_assert(__is_valid_contained_type_for_optional<_Tp>);
  
      private:
        using _Base = _Optional_base<_Tp>;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 894,900 ****
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_get());
  	}
  
        template<typename _Up>
--- 903,909 ----
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_fwd());
  	}
  
        template<typename _Up>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 906,912 ****
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t._M_get()));
  	}
  
        template<typename... _Args>
--- 915,921 ----
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t)._M_fwd());
  	}
  
        template<typename... _Args>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 956,962 ****
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_get());
  	}
  
        template<typename _Up,
--- 965,971 ----
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_fwd());
  	}
  
        template<typename _Up,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 969,975 ****
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_get());
  	}
  
        template<typename _Up,
--- 978,984 ----
  	noexcept(is_nothrow_constructible_v<_Tp, const _Up&>)
  	{
  	  if (__t)
! 	    emplace(__t._M_fwd());
  	}
  
        template<typename _Up,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 982,988 ****
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t._M_get()));
  	}
  
        template<typename _Up,
--- 991,997 ----
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t)._M_fwd());
  	}
  
        template<typename _Up,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 995,1001 ****
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t._M_get()));
  	}
  
        template<typename... _Args,
--- 1004,1010 ----
  	noexcept(is_nothrow_constructible_v<_Tp, _Up>)
  	{
  	  if (__t)
! 	    emplace(std::move(__t)._M_fwd());
  	}
  
        template<typename... _Args,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1074,1082 ****
  	  if (__u)
  	    {
  	      if (this->_M_is_engaged())
! 		this->_M_get() = __u._M_get();
  	      else
! 		this->_M_construct(__u._M_get());
  	    }
  	  else
  	    {
--- 1083,1091 ----
  	  if (__u)
  	    {
  	      if (this->_M_is_engaged())
! 		this->_M_get() = __u._M_fwd();
  	      else
! 		this->_M_construct(__u._M_fwd());
  	    }
  	  else
  	    {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1108,1116 ****
  	  if (__u)
  	    {
  	      if (this->_M_is_engaged())
! 		this->_M_get() = std::move(__u._M_get());
  	      else
! 		this->_M_construct(std::move(__u._M_get()));
  	    }
  	  else
  	    {
--- 1117,1125 ----
  	  if (__u)
  	    {
  	      if (this->_M_is_engaged())
! 		this->_M_get() = std::move(__u)._M_fwd();
  	      else
! 		this->_M_construct(std::move(__u)._M_fwd());
  	    }
  	  else
  	    {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1310,1316 ****
  	and_then(_Fn&& __f) &
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, _Tp&>>;
! 	  static_assert(__is_optional_v<remove_cvref_t<_Up>>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
--- 1319,1325 ----
  	and_then(_Fn&& __f) &
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, _Tp&>>;
! 	  static_assert(__is_optional_v<_Up>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1338,1344 ****
  	and_then(_Fn&& __f) &&
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, _Tp>>;
! 	  static_assert(__is_optional_v<remove_cvref_t<_Up>>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
--- 1347,1353 ----
  	and_then(_Fn&& __f) &&
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, _Tp>>;
! 	  static_assert(__is_optional_v<_Up>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1352,1358 ****
  	and_then(_Fn&& __f) const &&
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, const _Tp>>;
! 	  static_assert(__is_optional_v<remove_cvref_t<_Up>>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
--- 1361,1367 ----
  	and_then(_Fn&& __f) const &&
  	{
  	  using _Up = remove_cvref_t<invoke_result_t<_Fn, const _Tp>>;
! 	  static_assert(__is_optional_v<_Up>,
  			"the function passed to std::optional<T>::and_then "
  			"must return a std::optional");
  	  if (has_value())
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1441,1446 ****
--- 1450,1475 ----
      private:
        using _Base::_M_get;
  
+       [[__gnu__::__always_inline__]]
+       constexpr _Tp&
+       _M_fwd() & noexcept
+       { return _M_get(); }
+ 
+       [[__gnu__::__always_inline__]]
+       constexpr _Tp&&
+       _M_fwd() && noexcept
+       { return std::move(_M_get()); }
+ 
+       [[__gnu__::__always_inline__]]
+       constexpr const _Tp&
+       _M_fwd() const& noexcept
+       { return _M_get(); }
+ 
+       [[__gnu__::__always_inline__]]
+       constexpr const _Tp&&
+       _M_fwd() const&& noexcept
+       { return std::move(_M_get()); }
+ 
        template<typename _Up> friend class optional;
  
  #if __cpp_lib_optional >= 202110L // C++23
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1453,1458 ****
--- 1482,1791 ----
  #endif
      };
  
+ #if __cpp_lib_optional >= 202506L // C++26
+   template<typename _Tp>
+     class optional<_Tp&>
+     {
+       static_assert(__is_valid_contained_type_for_optional<_Tp&>);
+ 
+     public:
+       using value_type = _Tp;
+       using iterator = __gnu_cxx::__normal_iterator<_Tp*, optional>;
+ 
+       // Constructors.
+       constexpr optional() noexcept = default;
+       constexpr optional(nullopt_t) noexcept : optional() {}
+       constexpr optional(const optional&) noexcept = default;
+ 
+       template<typename _Arg>
+ 	requires is_constructible_v<_Tp&, _Arg>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Arg>)
+ 	explicit constexpr
+ 	optional(in_place_t, _Arg&& __arg)
+ 	{
+ 	  __convert_ref_init_val(std::forward<_Arg>(__arg));
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cvref_t<_Up>, optional>)
+ 	  && (!is_same_v<remove_cvref_t<_Up>, in_place_t>)
+ 	  && is_constructible_v<_Tp&, _Up>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Up>)
+ 	explicit(!is_convertible_v<_Up, _Tp&>)
+ 	constexpr
+ 	optional(_Up&& __u)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, _Up>)
+ 	{
+ 	  __convert_ref_init_val(std::forward<_Up>(__u));
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cvref_t<_Up>, optional>)
+ 	  && (!is_same_v<remove_cvref_t<_Up>, in_place_t>)
+ 	  && is_constructible_v<_Tp&, _Up>
+ 	  && reference_constructs_from_temporary_v<_Tp&, _Up>
+ 	explicit(!is_convertible_v<_Up, _Tp&>)
+ 	constexpr
+ 	optional(_Up&& __u) = delete;
+ 
+       // optional<U> &
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, _Up&>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Up&>)
+ 	explicit(!is_convertible_v<_Up&, _Tp&>)
+ 	constexpr
+ 	optional(optional<_Up>& __rhs)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, _Up&>)
+ 	{
+ 	  if (__rhs)
+ 	    __convert_ref_init_val(__rhs._M_fwd());
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, _Up&>
+ 	  && reference_constructs_from_temporary_v<_Tp&, _Up&>
+ 	explicit(!is_convertible_v<_Up&, _Tp&>)
+ 	constexpr
+ 	optional(optional<_Up>& __rhs) = delete;
+ 
+       // const optional<U>&
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, const _Up&>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, const _Up&>)
+ 	explicit(!is_convertible_v<const _Up&, _Tp&>)
+ 	constexpr
+ 	optional(const optional<_Up>& __rhs)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, _Up&>)
+ 	{
+ 	  if (__rhs)
+ 	    __convert_ref_init_val(__rhs._M_fwd());
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, const _Up&>
+ 	  && reference_constructs_from_temporary_v<_Tp&, const _Up&>
+ 	explicit(!is_convertible_v<const _Up&, _Tp&>)
+ 	constexpr
+ 	optional(const optional<_Up>& __rhs) = delete;
+ 
+       // optional<U>&&
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, _Up>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Up>)
+ 	explicit(!is_convertible_v<_Up, _Tp&>)
+ 	constexpr
+ 	optional(optional<_Up>&& __rhs)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, _Up>)
+ 	{
+ 	  if (__rhs)
+ 	    __convert_ref_init_val(std::move(__rhs)._M_fwd());
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, _Up>
+ 	  && reference_constructs_from_temporary_v<_Tp&, _Up>
+ 	explicit(!is_convertible_v<_Up, _Tp&>)
+ 	constexpr
+ 	optional(optional<_Up>&& __rhs) = delete;
+ 
+       // const optional<U>&&
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, const _Up>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Up>)
+ 	explicit(!is_convertible_v<const _Up, _Tp&>)
+ 	constexpr
+ 	optional(const optional<_Up>&& __rhs)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, const _Up>)
+ 	{
+ 	  if (__rhs)
+ 	    __convert_ref_init_val(std::move(__rhs)._M_fwd());
+ 	}
+ 
+       template<typename _Up>
+ 	requires (!is_same_v<remove_cv_t<_Tp>, optional<_Up>>)
+ 	  && (!is_same_v<_Tp&, _Up>)
+ 	  && is_constructible_v<_Tp&, const _Up>
+ 	  && reference_constructs_from_temporary_v<_Tp&, const _Up>
+ 	explicit(!is_convertible_v<const _Up, _Tp&>)
+ 	constexpr
+ 	optional(const optional<_Up>&& __rhs) = delete;
+ 
+       constexpr ~optional() = default;
+ 
+       // Assignment.
+       constexpr optional& operator=(nullopt_t) noexcept
+       {
+ 	_M_val = nullptr;
+ 	return *this;
+       }
+ 
+       constexpr optional& operator=(const optional&) noexcept = default;
+ 
+       template<typename _Up>
+ 	requires is_constructible_v<_Tp&, _Up>
+ 	  && (!reference_constructs_from_temporary_v<_Tp&, _Up>)
+ 	constexpr _Tp&
+ 	emplace(_Up&& __u)
+ 	noexcept(is_nothrow_constructible_v<_Tp&, _Up>)
+ 	{
+ 	  __convert_ref_init_val(std::forward<_Up>(__u));
+ 	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	  // 4300. Missing Returns: element in optional<T&>::emplace
+ 	  return *_M_val;
+ 	}
+ 
+       // Swap.
+       constexpr void swap(optional& __rhs) noexcept
+       { std::swap(_M_val, __rhs._M_val); }
+ 
+       // Iterator support.
+       constexpr iterator begin() const noexcept
+       {
+ 	return iterator(_M_val);
+       }
+ 
+       constexpr iterator end() const noexcept
+       {
+ 	return begin() + has_value();
+       }
+ 
+       // Observers.
+       constexpr _Tp* operator->() const noexcept
+       {
+ 	__glibcxx_assert(_M_val); // hardened precondition
+ 	return _M_val;
+       }
+ 
+       constexpr _Tp& operator*() const noexcept
+       {
+ 	__glibcxx_assert(_M_val); // hardened precondition
+ 	return *_M_val;
+       }
+ 
+       constexpr explicit operator bool() const noexcept
+       {
+ 	return _M_val;
+       }
+ 
+       constexpr bool has_value() const noexcept
+       {
+ 	return _M_val;
+       }
+ 
+       constexpr _Tp& value() const
+       {
+ 	if (_M_val)
+ 	  return *_M_val;
+ 	__throw_bad_optional_access();
+       }
+ 
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // 4304. std::optional<NonReturnable&> is ill-formed due to value_or
+       template<typename _Up = remove_cv_t<_Tp>>
+ 	requires is_object_v<_Tp> && (!is_array_v<_Tp>)
+ 	constexpr decay_t<_Tp>
+ 	value_or(_Up&& __u) const
+ 	{
+ 	  using _Xp = remove_cv_t<_Tp>;
+ 	  static_assert(is_constructible_v<_Xp, _Tp&>);
+ 	  static_assert(is_convertible_v<_Up, _Xp>);
+ 	  return _M_val ? *_M_val : static_cast<_Xp>(std::forward<_Up>(__u));
+ 	}
+ 
+       // Monadic operations.
+       template<typename _Fn>
+ 	constexpr auto
+ 	and_then(_Fn&& __f) const
+ 	{
+ 	  using _Up = remove_cvref_t<invoke_result_t<_Fn, _Tp&>>;
+ 	  static_assert(__is_optional_v<_Up>,
+ 			"the function passed to std::optional<T&>::and_then "
+ 			"must return a std::optional");
+ 	  if (has_value())
+ 	    return std::__invoke(std::forward<_Fn>(__f), *_M_val);
+ 	  else
+ 	    return _Up();
+ 	}
+ 
+       template<typename _Fn>
+ 	constexpr
+ 	optional<remove_cv_t<invoke_result_t<_Fn, _Tp&>>>
+ 	transform(_Fn&& __f) const
+ 	{
+ 	  using _Up = remove_cv_t<invoke_result_t<_Fn, _Tp&>>;
+ 	  if (has_value())
+ 	    return optional<_Up>(_Optional_func<_Fn>{__f}, *_M_val);
+ 	  else
+ 	    return optional<_Up>();
+ 	}
+ 
+       template<typename _Fn>
+ 	requires invocable<_Fn>
+ 	constexpr
+ 	optional
+ 	or_else(_Fn&& __f) const
+ 	{
+ 	  static_assert(is_same_v<remove_cvref_t<invoke_result_t<_Fn>>, optional>,
+ 			"the function passed to std::optional<T&>::or_else "
+ 			"must return a std::optional<T&>");
+ 	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	  // 4367. Improve optional<T&>::or_else
+ 	  if (has_value())
+ 	    return *this;
+ 	  else
+ 	    return std::forward<_Fn>(__f)();
+ 	}
+ 
+       // Modifiers.
+       constexpr void reset() noexcept
+       {
+ 	_M_val = nullptr;
+       }
+ 
+     private:
+       _Tp *_M_val = nullptr;
+ 
+       [[__gnu__::__always_inline__]]
+       constexpr _Tp&
+       _M_fwd() const noexcept
+       { return *_M_val; }
+ 
+       template<typename _Up> friend class optional;
+ 
+       template<typename _Up>
+ 	constexpr
+ 	void
+ 	__convert_ref_init_val(_Up&& __u)
+ 	noexcept
+ 	{
+ 	  _Tp& __r(std::forward<_Up>(__u));
+ 	  _M_val = std::addressof(__r);
+ 	}
+ 
+       template<typename _Fn, typename _Value>
+ 	explicit constexpr
+ 	optional(_Optional_func<_Fn> __f, _Value&& __v)
+ 	{
+ 	  _Tp& __r = std::__invoke(std::forward<_Fn>(__f._M_f), std::forward<_Value>(__v));
+ 	  _M_val = std::addressof(__r);
+ 	}
+     };
+ #endif // __cpp_lib_optional >= 202506L
+ 
    template<typename _Tp>
      using __optional_relop_t =
        enable_if_t<is_convertible_v<_Tp, bool>, bool>;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1740,1758 ****
      noexcept(noexcept(__lhs.swap(__rhs)))
      { __lhs.swap(__rhs); }
  
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2766. Swapping non-swappable types
    template<typename _Tp>
      enable_if_t<!(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)>
      swap(optional<_Tp>&, optional<_Tp>&) = delete;
  
    template<typename _Tp>
      constexpr
      enable_if_t<is_constructible_v<decay_t<_Tp>, _Tp>,
  		optional<decay_t<_Tp>>>
      make_optional(_Tp&& __t)
      noexcept(is_nothrow_constructible_v<optional<decay_t<_Tp>>, _Tp>)
!     { return optional<decay_t<_Tp>>{ std::forward<_Tp>(__t) }; }
  
    template<typename _Tp, typename... _Args>
      constexpr
--- 2073,2104 ----
      noexcept(noexcept(__lhs.swap(__rhs)))
      { __lhs.swap(__rhs); }
  
+ #if __cpp_lib_optional >= 202506L
+   // We deviate from standard, that do not declared separate swap overload
+   // from optional<T&>.
+   template<typename _Tp>
+     constexpr void
+     swap(optional<_Tp&>& __lhs, optional<_Tp&>& __rhs) noexcept
+     { __lhs.swap(__rhs); }
+ #endif
+ 
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2766. Swapping non-swappable types
    template<typename _Tp>
      enable_if_t<!(is_move_constructible_v<_Tp> && is_swappable_v<_Tp>)>
      swap(optional<_Tp>&, optional<_Tp>&) = delete;
  
+ #if __cpp_lib_optional >= 202506L
+   template<int = 0, typename _Tp>
+ #else
    template<typename _Tp>
+ #endif
      constexpr
      enable_if_t<is_constructible_v<decay_t<_Tp>, _Tp>,
  		optional<decay_t<_Tp>>>
      make_optional(_Tp&& __t)
      noexcept(is_nothrow_constructible_v<optional<decay_t<_Tp>>, _Tp>)
!     { return optional<decay_t<_Tp>>( std::forward<_Tp>(__t) ); }
  
    template<typename _Tp, typename... _Args>
      constexpr
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1760,1766 ****
  		optional<_Tp>>
      make_optional(_Args&&... __args)
      noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
!     { return optional<_Tp>{ in_place, std::forward<_Args>(__args)... }; }
  
    template<typename _Tp, typename _Up, typename... _Args>
      constexpr
--- 2106,2112 ----
  		optional<_Tp>>
      make_optional(_Args&&... __args)
      noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
!     { return optional<_Tp>( in_place, std::forward<_Args>(__args)... ); }
  
    template<typename _Tp, typename _Up, typename... _Args>
      constexpr
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1768,1774 ****
  		optional<_Tp>>
      make_optional(initializer_list<_Up> __il, _Args&&... __args)
      noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>)
!     { return optional<_Tp>{ in_place, __il, std::forward<_Args>(__args)... }; }
  
    // Hash.
  
--- 2114,2120 ----
  		optional<_Tp>>
      make_optional(initializer_list<_Up> __il, _Args&&... __args)
      noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>)
!     { return optional<_Tp>( in_place, __il, std::forward<_Args>(__args)... ); }
  
    // Hash.
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1796,1801 ****
--- 2142,2148 ----
  
    template<typename _Tp>
      struct hash<optional<_Tp>>
+     // hash for optional<T&> is disabled because is_hash_enabled_for<T&> is false
      : public __conditional_t<__is_hash_enabled_for<remove_const_t<_Tp>>,
  			     __optional_hash<_Tp>,
  			     __hash_not_enabled<_Tp>>
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/std/ranges gcc-16-20251026/libstdc++-v3/include/std/ranges
*** gcc-16-20251019/libstdc++-v3/include/std/ranges	Sun Oct 19 22:32:46 2025
--- gcc-16-20251026/libstdc++-v3/include/std/ranges	Sun Oct 26 22:33:12 2025
***************
*** 65,70 ****
--- 65,71 ----
  #define __glibcxx_want_ranges_chunk
  #define __glibcxx_want_ranges_chunk_by
  #define __glibcxx_want_ranges_enumerate
+ #define __glibcxx_want_ranges_indices
  #define __glibcxx_want_ranges_join_with
  #define __glibcxx_want_ranges_repeat
  #define __glibcxx_want_ranges_slide
*************** namespace views
*** 785,790 ****
--- 786,804 ----
    };
  
    inline constexpr _Iota iota{};
+ 
+ #ifdef __cpp_lib_ranges_indices // C++ >= 26
+   struct _Indices
+   {
+     template<ranges::__detail::__is_integer_like _Tp>
+       requires __detail::__can_iota_view<_Tp>
+       [[nodiscard]] constexpr auto
+       operator() (_Tp __e) const noexcept
+       { return iota(_Tp{}, __e); }
+   };
+ 
+   inline constexpr _Indices indices{};
+ #endif // __cpp_lib_ranges_indices
  } // namespace views
  
  #if _GLIBCXX_HOSTED
diff -Nrcpad gcc-16-20251019/libstdc++-v3/include/std/tuple gcc-16-20251026/libstdc++-v3/include/std/tuple
*** gcc-16-20251019/libstdc++-v3/include/std/tuple	Sun Oct 19 22:32:46 2025
--- gcc-16-20251026/libstdc++-v3/include/std/tuple	Sun Oct 26 22:33:12 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1999,2004 ****
--- 1999,2020 ----
        template<typename _Alloc>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t, const _Alloc&, const tuple&) noexcept { }
+ 
+ #if __cpp_lib_tuple_like // >= C++23
+       // Comparison operators for tuple<> with other empty tuple-like types
+       template<__tuple_like _UTuple>
+ 	requires (!__is_tuple_v<_UTuple> && tuple_size_v<_UTuple> == 0)
+       [[nodiscard]]
+       friend constexpr bool
+       operator==(const tuple&, const _UTuple&) noexcept
+       { return true; }
+ 
+       template<__tuple_like _UTuple>
+ 	requires (!__is_tuple_v<_UTuple> && tuple_size_v<_UTuple> == 0)
+       friend constexpr strong_ordering
+       operator<=>(const tuple&, const _UTuple&) noexcept
+       { return strong_ordering::equal; }
+ #endif // C++23
      };
  
  #if !(__cpp_concepts && __cpp_consteval && __cpp_conditional_explicit) // !C++20
diff -Nrcpad gcc-16-20251019/libstdc++-v3/src/c++23/std.cc.in gcc-16-20251026/libstdc++-v3/src/c++23/std.cc.in
*** gcc-16-20251019/libstdc++-v3/src/c++23/std.cc.in	Sun Oct 19 22:32:46 2025
--- gcc-16-20251026/libstdc++-v3/src/c++23/std.cc.in	Sun Oct 26 22:33:12 2025
*************** export namespace std
*** 1872,1881 ****
  #if __glibcxx_padded_layouts
    using std::layout_left_padded;
    using std::layout_right_padded;
!   using strided_slice;
!   using full_extent_t;
!   using full_extent;
!   using submdspan_mapping_result;
  #endif
    // FIXME submdspan_extents, mdsubspan
  }
--- 1872,1881 ----
  #if __glibcxx_padded_layouts
    using std::layout_left_padded;
    using std::layout_right_padded;
!   using std::strided_slice;
!   using std::full_extent_t;
!   using std::full_extent;
!   using std::submdspan_mapping_result;
  #endif
    // FIXME submdspan_extents, mdsubspan
  }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc	Sun Oct 26 22:33:13 2025
*************** test01()
*** 39,139 ****
        >);
  }
  
  void
! test02()
  {
!   struct quals
    {
!     bool as_const;
!     bool as_lvalue;
    };
  
    struct F
    {
!     quals operator()(int, int) & { return { false, true }; }
!     quals operator()(int, int) const & { return { true, true }; }
!     quals operator()(int, int) && { return { false, false }; }
!     quals operator()(int, int) const && { return { true, false }; }
    };
  
!   // Constness and value category forwarded to the target object?
!   { // no bound args
!     constexpr F f;
!     auto g = bind_back<f>();
!     const auto& cg = g;
!     quals q;
  
!     q = g(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!   }
!   { // one bound arg
!     constexpr F f;
!     auto g = bind_back<f>(0);
!     const auto& cg = g;
!     quals q;
  
!     q = g(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)(0);
!     VERIFY( q.as_const && q.as_lvalue );
!   }
!   { // two bound args, the general case
!     constexpr F f;
!     auto g = bind_back<f>(0,0);
!     const auto& cg = g;
!     quals q;
  
!     q = g();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)();
!     VERIFY( q.as_const && q.as_lvalue );
!   }
  }
  
  void
! test02a()
  {
-   struct quals
-   {
-     bool as_const;
-     bool as_lvalue;
-   };
    struct F
    {
!     quals operator()(int, int&) const { return { false, true }; }
!     quals operator()(int, int const&) const { return { true, true }; }
!     quals operator()(int, int&&) const { return { false, false }; }
!     quals operator()(int, int const&&) const  { return { true, false }; }
    };
-   constexpr F f{};
  
!   // verify propagation
!   auto h = bind_back<f>(10);
!   auto const& ch = h;
    quals q;
  
!   q = h(0);
!   VERIFY( !q.as_const && q.as_lvalue );
!   q = ch(0);
    VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(h)(0);
!   VERIFY( !q.as_const && !q.as_lvalue );
!   q = std::move(ch)(0);
!   VERIFY( q.as_const && !q.as_lvalue );
  }
  
  void
--- 39,183 ----
        >);
  }
  
+ struct quals
+ {
+   bool as_const;
+   bool as_lvalue;
+ };
+ 
+ template<typename... Args>
  void
! testTarget(Args... args)
  {
!   struct F
    {
!     quals operator()(Args...) & { return { false, true }; }
!     quals operator()(Args...) const & { return { true, true }; }
!     quals operator()(Args...) && { return { false, false }; }
!     quals operator()(Args...) const && { return { true, false }; }
    };
  
+   constexpr F f;
+   auto g = bind_back<f>(args...);
+   const auto& cg = g;
+   quals q;
+ 
+   // template parameter object is always constant lvalue
+   q = g();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = std::move(g)();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = cg();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = std::move(cg)();
+   VERIFY( q.as_const && q.as_lvalue );
+ }
+ 
+ template<typename... Args>
+ void
+ testBoundArgs(Args... args)
+ {
    struct F
    {
!     quals operator()(Args..., int&) const { return { false, true }; }
!     quals operator()(Args..., int const&) const { return { true, true }; }
!     quals operator()(Args..., int&&) const { return { false, false }; }
!     quals operator()(Args..., int const&&) const { return { true, false }; }
    };
  
!   constexpr F f;
!   auto g = bind_back<f>(args..., 10);
!   const auto& cg = g;
!   quals q;
  
!   // constness and value category should be forwarded to the bound objects:
!   q = g();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(g)();
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = cg();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(cg)();
!   VERIFY( q.as_const && ! q.as_lvalue );
  
!   int i = 0;
!   auto gr = bind_back<f>(args..., std::ref(i));
!   const auto& cgr = gr;
  
!   // bound object is reference wrapper, converts to same type of reference
!   q = gr();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(gr)();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = cgr();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(cgr)();
!   VERIFY( ! q.as_const && q.as_lvalue );
! 
!   auto gcr = bind_back<f>(args..., std::cref(i));
!   const auto& cgcr = gcr;
! 
!   q = gcr();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(gcr)();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = cgcr();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(cgcr)();
!   VERIFY( q.as_const && q.as_lvalue );
  }
  
+ template<typename... Args>
  void
! testCallArgs(Args... args)
  {
    struct F
    {
!     quals operator()(int&, Args...) const { return { false, true }; }
!     quals operator()(int const&, Args...) const { return { true, true }; }
!     quals operator()(int&&, Args...) const { return { false, false }; }
!     quals operator()(int const&&, Args...) const { return { true, false }; }
    };
  
!   constexpr F f;
!   auto g = bind_back<f>(args...);
!   const auto& cg = g;
    quals q;
+   int i = 10;
+   const int ci = i;
  
!   q = g(i);
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = g(std::move(i));
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = g(ci);
    VERIFY( q.as_const && q.as_lvalue );
!   q = g(std::move(ci));
!   VERIFY( q.as_const && ! q.as_lvalue );
! 
!   q = cg(i);
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = cg(std::move(i));
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = cg(ci);
!   VERIFY( q.as_const && q.as_lvalue );
!   q = cg(std::move(ci));
!   VERIFY( q.as_const && ! q.as_lvalue );
! 
!   struct S
!   {
!     int operator()(long, long, Args...) const { return 1; }
!     int operator()(int, void*, Args...) const { return 2; }
!   };
! 
!   constexpr S s;
!   // literal zero can be converted to any pointer, so (int, void*)
!   // is best candidate
!   VERIFY( s(0, 0, args...) == 2 );
!   // both arguments are bound to int&&, and no longer can be
!   // converted to pointer, (long, long) is only candidate
!   VERIFY( bind_back<s>()(0, 0, args...) == 1 );
!   VERIFY( bind_back<s>(args...)(0, 0) == 1 );
  }
  
  void
*************** test04()
*** 233,258 ****
    return true;
  }
  
! struct C { int i = 0; };
! struct D : C { D(){} D(D&&) { ++i; } };
! int f5(D const& d1, D const& d2, D const& d3)
! { return d1.i + d2.i + d3.i; }
  
! void test05()
  {
!   // Must move arguments into capture object, not construct in place
!   // like normal arguments.
!   VERIFY( bind_back<f5>(D{}, D{})(D{}) == 2 );
  }
  
  int
  main()
  {
    test01();
-   test02();
-   test02a();
    test03();
    test03a();
    static_assert(test04());
!   test05();
  }
--- 277,328 ----
    return true;
  }
  
! struct CountedArg
! {
!   CountedArg() = default;
!   CountedArg(CountedArg&& f) noexcept : counter(f.counter) { ++counter; }
!   CountedArg& operator=(CountedArg&&) = delete;
  
!   int counter = 0;
! };
! CountedArg const c;
! 
! void
! testMaterialization()
  {
!   struct F
!   {
!     int operator()(CountedArg arg, int) const
!     { return arg.counter; };
!   };
! 
!   // CountedArg is bound to rvalue-reference thus moved
!   auto f0 = std::bind_back<F{}>();
!   VERIFY( f0(CountedArg(), 10) == 1 );
! 
!   auto f1 = std::bind_back<F{}>(10);
!   VERIFY( f1(CountedArg()) == 1 );
  }
  
  int
  main()
  {
    test01();
    test03();
    test03a();
    static_assert(test04());
! 
!   testTarget();
!   testTarget(10);
!   testTarget(10, 20, 30);
! 
!   testBoundArgs();
!   testBoundArgs(10);
!   testBoundArgs(10, 20, 30);
! 
!   testCallArgs();
!   testCallArgs(10);
!   testCallArgs(10, 20, 30);
! 
!   testMaterialization();
  }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc	Sun Oct 26 22:33:13 2025
*************** test01()
*** 39,142 ****
        >);
  }
  
  void
! test02()
  {
!   struct quals
    {
!     bool as_const;
!     bool as_lvalue;
    };
  
    struct F
    {
!     quals operator()(int, int) & { return { false, true }; }
!     quals operator()(int, int) const & { return { true, true }; }
!     quals operator()(int, int) && { return { false, false }; }
!     quals operator()(int, int) const && { return { true, false }; }
    };
  
!   // Constness and value category forwarded to the target object?
!   { // no bound args
!     constexpr F f;
!     auto g = bind_front<f>();
!     const auto& cg = g;
!     quals q;
  
!     // Constness and value category forwarded to the target object?
!     q = g(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)(0,0);
!     VERIFY( q.as_const && q.as_lvalue );
!   }
!   { // one bound arg (for when we implement that as a separate case)
!     constexpr F f;
!     auto g = bind_front<f>(0);
!     const auto& cg = g;
!     quals q;
  
!     // Constness and value category forwarded to the target object?
!     q = g(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg(0);
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)(0);
!     VERIFY( q.as_const && q.as_lvalue );
!   }
!   { // two bound args, the general case
!     constexpr F f;
!     auto g = bind_front<f>(0,0);
!     const auto& cg = g;
!     quals q;
  
!     q = g();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(g)();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = cg();
!     VERIFY( q.as_const && q.as_lvalue );
!     q = std::move(cg)();
!     VERIFY( q.as_const && q.as_lvalue );
!   }
  }
  
  void
! test02a()
  {
-   struct quals
-   {
-     bool as_const;
-     bool as_lvalue;
-   };
- 
    struct F
    {
!     quals operator()(int&, int) const { return { false, true }; }
!     quals operator()(int const&, int) const { return { true, true }; }
!     quals operator()(int&&, int) const { return { false, false }; }
!     quals operator()(int const&&, int) const  { return { true, false }; }
    };
-   constexpr F f{};
  
!   // verify propagation
!   auto h = bind_front<f>(10);
!   auto const& ch = h;
    quals q;
  
!   q = h(0);
!   VERIFY( !q.as_const && q.as_lvalue );
!   q = ch(0);
    VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(h)(0);
!   VERIFY( !q.as_const && !q.as_lvalue );
!   q = std::move(ch)(0);
!   VERIFY( q.as_const && !q.as_lvalue );
  }
  
  void
--- 39,183 ----
        >);
  }
  
+ struct quals
+ {
+   bool as_const;
+   bool as_lvalue;
+ };
+ 
+ template<typename... Args>
  void
! testTarget(Args... args)
  {
!   struct F
    {
!     quals operator()(Args...) & { return { false, true }; }
!     quals operator()(Args...) const & { return { true, true }; }
!     quals operator()(Args...) && { return { false, false }; }
!     quals operator()(Args...) const && { return { true, false }; }
    };
  
+   constexpr F f;
+   auto g = bind_front<f>(args...);
+   const auto& cg = g;
+   quals q;
+ 
+   // template parameter object is always constant lvalue
+   q = g();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = std::move(g)();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = cg();
+   VERIFY( q.as_const && q.as_lvalue );
+   q = std::move(cg)();
+   VERIFY( q.as_const && q.as_lvalue );
+ }
+ 
+ template<typename... Args>
+ void
+ testBoundArgs(Args... args)
+ {
    struct F
    {
!     quals operator()(Args..., int&) const { return { false, true }; }
!     quals operator()(Args..., int const&) const { return { true, true }; }
!     quals operator()(Args..., int&&) const { return { false, false }; }
!     quals operator()(Args..., int const&&) const { return { true, false }; }
    };
  
!   constexpr F f;
!   auto g = bind_front<f>(args..., 10);
!   const auto& cg = g;
!   quals q;
  
!   // constness and value category should be forwarded to the bound objects:
!   q = g();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(g)();
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = cg();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(cg)();
!   VERIFY( q.as_const && ! q.as_lvalue );
  
!   int i = 0;
!   auto gr = bind_front<f>(args..., std::ref(i));
!   const auto& cgr = gr;
  
!   // bound object is reference wrapper, converts to same type of reference
!   q = gr();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(gr)();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = cgr();
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = std::move(cgr)();
!   VERIFY( ! q.as_const && q.as_lvalue );
! 
!   auto gcr = bind_front<f>(args..., std::cref(i));
!   const auto& cgcr = gcr;
! 
!   q = gcr();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(gcr)();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = cgcr();
!   VERIFY( q.as_const && q.as_lvalue );
!   q = std::move(cgcr)();
!   VERIFY( q.as_const && q.as_lvalue );
  }
  
+ template<typename... Args>
  void
! testCallArgs(Args... args)
  {
    struct F
    {
!     quals operator()(Args..., int&) const { return { false, true }; }
!     quals operator()(Args..., int const&) const { return { true, true }; }
!     quals operator()(Args..., int&&) const { return { false, false }; }
!     quals operator()(Args..., int const&&) const { return { true, false }; }
    };
  
!   constexpr F f;
!   auto g = bind_front<f>(args...);
!   const auto& cg = g;
    quals q;
+   int i = 10;
+   const int ci = i;
  
!   q = g(i);
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = g(std::move(i));
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = g(ci);
    VERIFY( q.as_const && q.as_lvalue );
!   q = g(std::move(ci));
!   VERIFY( q.as_const && ! q.as_lvalue );
! 
!   q = cg(i);
!   VERIFY( ! q.as_const && q.as_lvalue );
!   q = cg(std::move(i));
!   VERIFY( ! q.as_const && ! q.as_lvalue );
!   q = cg(ci);
!   VERIFY( q.as_const && q.as_lvalue );
!   q = cg(std::move(ci));
!   VERIFY( q.as_const && ! q.as_lvalue );
! 
!   struct S
!   {
!     int operator()(Args..., long, long) const { return 1; }
!     int operator()(Args..., int, void*) const { return 2; }
!   };
! 
!   constexpr S s;
!   // literal zero can be converted to any pointer, so (int, void*)
!   // is best candidate
!   VERIFY( s(args..., 0, 0) == 2 );
!   // both arguments are bound to int&&, and no longer can be
!   // converted to pointer, (long, long) is only candidate
!   VERIFY( bind_front<s>()(args..., 0, 0) == 1 );
!   VERIFY( bind_front<s>(args...)(0, 0) == 1 );
  }
  
  void
*************** test04()
*** 235,260 ****
    return true;
  }
  
! struct C { int i = 0; };
! struct D : C { D(){} D(D&&) { ++i; } };
! int f5(D const& d1, D const& d2, D const& d3)
! { return d1.i + d2.i + d3.i; }
  
! void test05()
  {
!   // Must move arguments into capture object, not construct in place
!   // like normal arguments.
!   VERIFY( bind_front<f5>(D{}, D{})(D{}) == 2 );
  }
  
  int
  main()
  {
    test01();
-   test02();
-   test02a();
    test03();
    test03a();
    static_assert(test04());
!   test05();
  }
--- 276,328 ----
    return true;
  }
  
! struct CountedArg
! {
!   CountedArg() = default;
!   CountedArg(CountedArg&& f) noexcept : counter(f.counter) { ++counter; }
!   CountedArg& operator=(CountedArg&&) = delete;
  
!   int counter = 0;
! };
! CountedArg const c;
! 
! void
! testMaterialization()
  {
!   struct F
!   {
!     int operator()(int, CountedArg arg) const
!     { return arg.counter; };
!   };
! 
!   // CountedArg is bound to rvalue-reference thus moved
!   auto f0 = std::bind_front<F{}>();
!   VERIFY( f0(10, CountedArg()) == 1 );
! 
!   auto f1 = std::bind_front<F{}>(10);
!   VERIFY( f1(CountedArg()) == 1 );
  }
  
  int
  main()
  {
    test01();
    test03();
    test03a();
    static_assert(test04());
! 
!   testTarget();
!   testTarget(10);
!   testTarget(10, 20, 30);
! 
!   testBoundArgs();
!   testBoundArgs(10);
!   testBoundArgs(10, 20, 30);
! 
!   testCallArgs();
!   testCallArgs(10);
!   testCallArgs(10, 20, 30);
! 
!   testMaterialization();
!  
  }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc	Sun Oct 26 22:33:13 2025
*************** test07()
*** 81,86 ****
--- 81,132 ----
    static_assert( !std::is_invocable<NotF>::value, "cannot negate" );
  }
  
+ void
+ test08()
+ {
+   struct quals
+   {
+     bool as_const;
+     bool as_lvalue;
+ 
+     quals operator!() const
+     { return *this; };
+   };
+ 
+   struct F
+   {
+     quals operator()(int&) const { return { false, true }; }
+     quals operator()(int const&) const { return { true, true }; }
+     quals operator()(int&&) const { return { false, false }; }
+     quals operator()(int const&&) const { return { true, false }; }
+   };
+ 
+   constexpr F f;
+   auto g = not_fn<f>();
+   const auto& cg = g;
+   quals q;
+   int i = 10;
+   const int ci = i;
+ 
+   q = g(i);
+   VERIFY( ! q.as_const && q.as_lvalue );
+   q = g(std::move(i));
+   VERIFY( ! q.as_const && ! q.as_lvalue );
+   q = g(ci);
+   VERIFY( q.as_const && q.as_lvalue );
+   q = g(std::move(ci));
+   VERIFY( q.as_const && ! q.as_lvalue );
+ 
+   q = cg(i);
+   VERIFY( ! q.as_const && q.as_lvalue );
+   q = cg(std::move(i));
+   VERIFY( ! q.as_const && ! q.as_lvalue );
+   q = cg(ci);
+   VERIFY( q.as_const && q.as_lvalue );
+   q = cg(std::move(ci));
+   VERIFY( q.as_const && ! q.as_lvalue );
+ }
+ 
  int
  main()
  {
*************** main()
*** 89,94 ****
--- 135,141 ----
    test05();
    test06();
    test07();
+   test08();
    constexpr auto f = []{ return false; };
    static_assert(std::not_fn<f>()());
  }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc	Sun Oct 26 22:33:13 2025
*************** S s{};
*** 89,101 ****
  const S cs{};
  
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, s)),
! 			 function_ref<int&()>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, cs)),
! 			 function_ref<const int&()>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &s)),
! 			 function_ref<int&()>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &cs)),
! 			 function_ref<const int&()>> );
  static_assert( !deductible<&S::mem, int> );
  
  static_assert( is_same_v<decltype(function_ref(nontype<&S::f>, s)),
--- 89,101 ----
  const S cs{};
  
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, s)),
! 			 function_ref<int&() noexcept>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, cs)),
! 			 function_ref<const int&() noexcept>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &s)),
! 			 function_ref<int&() noexcept>> );
  static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &cs)),
! 			 function_ref<const int&() noexcept>> );
  static_assert( !deductible<&S::mem, int> );
  
  static_assert( is_same_v<decltype(function_ref(nontype<&S::f>, s)),
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc	Sun Oct 26 22:33:13 2025
*************** static_assert( can_make_optional2<int, i
*** 70,76 ****
--- 70,78 ----
  static_assert( noexcept(std::make_optional(i)) );
  static_assert( ! can_make_optional2<void, void>::value );
  static_assert( can_make_optional2<Cont, Cont>::value );
+ #if __cplusplus <= 202302
  static_assert( noexcept(std::make_optional<Cont>({})) );
+ #endif
  static_assert( can_make_optional2<Cont, const Cont&>::value );
  static_assert( ! noexcept(std::make_optional(c)) );
  static_assert( can_make_optional2<Cont, int>::value );
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,20 ----
+ // { dg-do compile { target c++17 }  }
+ 
+ #include <initializer_list>
+ #include <optional>
+ 
+ struct S { int x; int* p; };
+ int v;
+ 
+ auto os1 = std::make_optional<S>({1, &v}); // { dg-error "no matching function for" "" { target c++26 } }
+ 
+ struct Cont
+ {
+   Cont();
+   Cont(std::initializer_list<int>, int);
+ };
+ 
+ auto oc1 = std::make_optional<Cont>({}); // { dg-error "no matching function for" "" { target c++26 } }
+ 
+ // { dg-prune-output "no type named 'type' in 'struct std::enable_if" }
+ // { dg-prune-output "type/value mismatch at argument 1 in template parameter list" }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,20 ----
+ // { dg-do compile { target c++23 } }
+ 
+ #include <optional>
+ 
+ struct S { int x; int y; };
+ 
+ void test()
+ {
+   std::optional<S> o;
+   const std::optional<S>& co = o;
+ 
+   o.transform(&S::x);  // { dg-error "from here" "optional<int&>" { target c++23_down } }
+   co.transform(&S::x); // { dg-error "from here" "optional<const int&>" { target c++23_down } }
+   std::move(o).transform(&S::x);  // { dg-error "from here" "optional<int&&>" }
+   std::move(co).transform(&S::x); // { dg-error "from here" "optional<const int&&>" }
+ }
+ 
+ // { dg-prune-output "in a union may not have reference type" }
+ // { dg-prune-output "static assertion failed" }
+ // { dg-prune-output "forming pointer to reference type" }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/access.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/access.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/access.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/access.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,119 ----
+ // { dg-do run { target c++26 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ #include <testsuite_hooks.h>
+ 
+ struct NonMovable
+ {
+   constexpr NonMovable() {}
+   NonMovable(NonMovable&&) = delete;
+ };
+ 
+ template<typename T>
+ constexpr
+ void test_value(T& t)
+ {
+   std::optional<T&> o1(t);
+   const std::optional<T&> co1(t);
+ 
+   static_assert( std::is_same_v<decltype(o1.value()), T&> );
+   VERIFY( &o1.value() == &t );
+ 
+   static_assert( std::is_same_v<decltype(co1.value()), T&> );
+   VERIFY( &co1.value() == &t );
+ 
+   static_assert( std::is_same_v<decltype(std::move(o1).value()), T&> );
+   VERIFY( &std::move(o1).value() == &t );
+ 
+   static_assert( std::is_same_v<decltype(std::move(co1).value()), T&> );
+   VERIFY( &std::move(co1).value() == &t );
+ 
+   std::optional<const T&> o2(t);
+   static_assert( std::is_same_v<decltype(o2.value()), const T&> );
+   VERIFY( &o2.value() == &t );
+ }
+ 
+ struct Tracker
+ {
+   int copy = 0;
+   int move = 0;
+ 
+   constexpr Tracker(int v) : copy(v), move(v) {}
+ 
+   constexpr Tracker(Tracker const& o)
+   : copy(o.copy+1), move(o.move)
+   {}
+ 
+   constexpr Tracker(Tracker&& o)
+   : copy(o.copy), move(o.move+1)
+   {}
+ 
+   Tracker& operator=(Tracker) = delete;
+ };
+ 
+ constexpr
+ void test_value_or()
+ {
+   Tracker t(100), u(200);
+   std::optional<Tracker&> o(t);
+ 
+   Tracker r1 = o.value_or(u);
+   VERIFY( r1.copy == 101 );
+   VERIFY( r1.move == 100 );
+   Tracker r2 = o.value_or(std::move(u));
+   VERIFY( r2.copy == 101 );
+   VERIFY( r2.move == 100 );
+   Tracker r3 = std::move(o).value_or(u);
+   VERIFY( r3.copy == 101 );
+   VERIFY( r3.move == 100 );
+   Tracker r4 = std::move(o).value_or(std::move(u));
+   VERIFY( r4.copy == 101 );
+   VERIFY( r4.move == 100 );
+ 
+   o.reset();
+   Tracker r5 = o.value_or(u);
+   VERIFY( r5.copy == 201 );
+   VERIFY( r5.move == 200 );
+   Tracker r6 = o.value_or(std::move(u));
+   VERIFY( r6.copy == 200 );
+   VERIFY( r6.move == 201 );
+   Tracker r7 = std::move(o).value_or(u);
+   VERIFY( r7.copy == 201 );
+   VERIFY( r7.move == 200 );
+   Tracker r8 = std::move(o).value_or(std::move(u));
+   VERIFY( r8.copy == 200 );
+   VERIFY( r8.move == 201 );
+ }
+ 
+ template<typename T>
+ concept has_value_or_for = requires(std::optional<T&> t, T& u)
+ { t.value_or(u); };
+ 
+ static_assert(  has_value_or_for<int> );
+ static_assert(  has_value_or_for<NonMovable> );
+ static_assert( !has_value_or_for<int[2]> );
+ static_assert(  has_value_or_for<int(*)[2]> );
+ static_assert( !has_value_or_for<int()> );
+ static_assert(  has_value_or_for<int(*)()> );
+ 
+ int i;
+ NonMovable nm;
+ int arr[2];
+ int foo();
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test_value<int>(i);
+     test_value<NonMovable>(nm);
+     test_value<int[2]>(arr);
+     test_value<int()>(foo);
+ 
+     test_value_or();
+     return true;
+   };
+ 
+   test_all();
+   static_assert(test_all());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/assign.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/assign.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/assign.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/assign.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,430 ----
+ // { dg-do run { target c++26 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ #include <testsuite_hooks.h>
+ 
+ struct NonTrivial
+ {
+   constexpr NonTrivial() {}
+   constexpr NonTrivial(NonTrivial const&) {};
+   constexpr ~NonTrivial() {};
+ };
+ 
+ struct NonMovable
+ {
+   NonMovable() = default;
+   NonMovable(NonMovable&&) = delete;
+ };
+ 
+ template<typename T>
+ struct Conv
+ {
+   T t;
+ 
+   constexpr operator T() const noexcept
+   { return t; }
+ };
+ 
+ struct Tracker
+ {
+   struct Counter
+   {
+     int copy;
+     int move;
+   };
+ 
+   Counter ctor{0,0};
+   Counter assign{0,0};
+ 
+   Tracker() = default;
+ 
+   constexpr Tracker(Tracker const& o)
+   : ctor(o.ctor), assign(o.assign)
+   {
+     ctor.copy += 1;
+   }
+ 
+   constexpr Tracker(Tracker&& o)
+   : ctor(o.ctor), assign(o.assign)
+   {
+     ctor.move += 1;
+   }
+ 
+   constexpr Tracker& operator=(const Tracker& o)
+   {
+     assign.copy += 1;
+     return *this;
+   }
+ 
+   constexpr Tracker& operator=(Tracker&& o)
+   {
+     assign.move += 1;
+     return *this;
+   }
+ 
+ };
+ 
+ template<typename T>
+ void
+ test_trivial()
+ {
+   static_assert(std::is_copy_assignable_v<std::optional<T&>>);
+   static_assert(std::is_move_assignable_v<std::optional<T&>>);
+ }
+ 
+ constexpr void
+ test_trivial_all()
+ {
+   test_trivial<int>();
+   test_trivial<NonTrivial>();
+   test_trivial<std::optional<int&>>();
+ }
+ 
+ constexpr void
+ test_copy()
+ {
+   Tracker t, u;
+   std::optional<Tracker&> e;
+   std::optional<Tracker&> o1(t);
+   std::optional<Tracker&> o2(u);
+ 
+   o2 = o1;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &t );
+   VERIFY( t.ctor.copy == 0 );
+   VERIFY( t.ctor.move == 0 );
+   VERIFY( t.assign.copy == 0 );
+   VERIFY( t.assign.move == 0 );
+ 
+   o2 = e;
+   VERIFY( !o2.has_value() );
+ 
+   o2 = std::move(o1);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &t );
+   VERIFY( t.ctor.copy == 0 );
+   VERIFY( t.ctor.move == 0 );
+   VERIFY( t.assign.copy == 0 );
+   VERIFY( t.assign.move == 0 );
+ 
+   o2 = std::move(e);
+   VERIFY( !o2.has_value() );
+ }
+ 
+ template<typename T, typename U>
+ concept can_emplace = requires (T t, U&& u)
+ { t.emplace(std::forward<U>(u)); };
+ 
+ constexpr void
+ test_from_value()
+ {
+   NonTrivial v, u;
+   const NonTrivial& cv = v;
+   const std::optional<NonTrivial&> s(u);
+   std::optional<NonTrivial&> o1;
+   std::optional<const NonTrivial&> co1;
+ 
+   o1 = s;
+   o1 = v;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+ 
+   o1.reset();
+   VERIFY( !o1.has_value() );
+ 
+   o1 = v;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const NonTrivial&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       NonTrivial> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const NonTrivial> );
+ 
+   o1 = s;
+   o1.emplace(v);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+ 
+   o1 = std::nullopt;
+   VERIFY( !o1.has_value() );
+ 
+   o1.emplace(v);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+ 
+   static_assert( !can_emplace<std::optional<NonTrivial&>, const NonTrivial&> );
+   static_assert( !can_emplace<std::optional<NonTrivial&>, NonTrivial> );
+   static_assert( !can_emplace<std::optional<NonTrivial&>, const NonTrivial> );
+ 
+   co1 = s;
+   co1 = v;
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v );
+ 
+   co1 = std::nullopt;
+   co1 = cv;
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v );
+   // No binding to rvalue
+   static_assert( !std::is_assignable_v<std::optional<const NonTrivial&>,
+ 				       NonTrivial> );
+   static_assert( !std::is_assignable_v<std::optional<const NonTrivial&>,
+ 				       const NonTrivial> );
+ 
+   co1 = std::nullopt;
+   co1.emplace(v);
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v );
+ 
+   co1 = s;
+   co1.emplace(cv);
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v );
+   // No binding to rvalue
+   static_assert( !can_emplace<std::optional<const NonTrivial&>, const NonTrivial> );
+   static_assert( !can_emplace<std::optional<const NonTrivial&>, NonTrivial> );
+ 
+ 
+   // Conversion create a pr-value that would bind to temporary
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       Conv<NonTrivial>&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const Conv<NonTrivial>&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       Conv<NonTrivial>> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const Conv<NonTrivial>> );
+ 
+   static_assert( !can_emplace<std::optional<NonTrivial&>, Conv<NonTrivial>&> );
+   static_assert( !can_emplace<std::optional<NonTrivial&>, const Conv<NonTrivial>&> );
+   static_assert( !can_emplace<std::optional<NonTrivial&>, Conv<NonTrivial>> );
+   static_assert( !can_emplace<std::optional<NonTrivial&>, const Conv<NonTrivial>> );
+ 
+   Conv<NonTrivial&> rw(v);
+   const Conv<NonTrivial&> crw(v);
+ 
+   o1 = std::nullopt;
+   o1 = rw;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = s;
+   o1 = crw;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = s;
+   o1 = std::move(rw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = std::nullopt;
+   o1 = std::move(crw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+ 
+   o1 = s;
+   o1.emplace(rw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = std::nullopt;
+   o1.emplace(crw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = std::nullopt;
+   o1.emplace(std::move(rw));
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   o1 = s;
+   o1.emplace(std::move(crw));
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+ }
+ 
+ constexpr void
+ test_from_opt_value()
+ {
+   NonTrivial u;
+   std::optional<NonTrivial> v(std::in_place);
+   const std::optional<NonTrivial>& cv = v;
+ 
+   const std::optional<NonTrivial&> s(u);
+   std::optional<NonTrivial&> o1;
+   std::optional<const NonTrivial&> co1;
+ 
+   o1 = s;
+   o1 = v;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   o1 = std::nullopt;
+   o1 = v;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const std::optional<NonTrivial>&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       std::optional<NonTrivial>> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const std::optional<NonTrivial>> );
+ 
+   co1 = s;
+   co1 = v;
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v.value() );
+   co1 = std::nullopt;
+   co1 = cv;
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v.value() );
+   // No binding to rvalue
+   static_assert( !std::is_assignable_v<std::optional<const NonTrivial&>,
+ 				       std::optional<NonTrivial>> );
+   static_assert( !std::is_assignable_v<std::optional<const NonTrivial&>,
+ 				       const std::optional<NonTrivial>> );
+ 
+   // Conversion create a pr-value that would bind to temporary
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       std::optional<Conv<NonTrivial>>&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const std::optional<Conv<NonTrivial>>&> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       std::optional<Conv<NonTrivial>>> );
+   static_assert( !std::is_assignable_v<std::optional<NonTrivial&>,
+ 				       const std::optional<Conv<NonTrivial>>> );
+ 
+   std::optional<Conv<NonTrivial&>> rw(*v);
+   std::optional<const Conv<NonTrivial&>> crw(*v);
+ 
+   o1 = std::nullopt;
+   o1 = rw;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   o1 = s;
+   o1 = crw;
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   o1 = s;
+   o1 = std::move(rw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   o1 = std::nullopt;
+   o1 = std::move(crw);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+ }
+ 
+ constexpr void
+ test_to_opt_value()
+ {
+   Tracker t;
+   std::optional<Tracker&> er;
+   std::optional<Tracker&> r(t);
+   const std::optional<Tracker&> cr(t);
+ 
+   std::optional<Tracker> o1;
+   o1 = r;
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 0 );
+   VERIFY( o1->assign.move == 0 );
+ 
+   o1 = r;
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 1 );
+   VERIFY( o1->assign.move == 0 );
+ 
+   o1 = er;
+   VERIFY( !o1.has_value() );
+ 
+   o1 = cr;
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 0 );
+   VERIFY( o1->assign.move == 0 );
+ 
+   o1 = cr;
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 1 );
+   VERIFY( o1->assign.move == 0 );
+ 
+   o1 = std::move(er);
+ 
+   o1 = std::move(r);
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 0 );
+   VERIFY( o1->assign.move == 0 );
+ 
+   o1 = std::move(cr);
+   VERIFY( o1.has_value() );
+   VERIFY( o1->ctor.copy == 1 );
+   VERIFY( o1->ctor.move == 0 );
+   VERIFY( o1->assign.copy == 1 );
+   VERIFY( o1->assign.move == 0 );
+ }
+ 
+ constexpr void
+ test_swap()
+ {
+   NonMovable a, b;
+   std::optional<NonMovable&> oa(a), ob(b);
+ 
+   oa.swap(ob);
+   static_assert(noexcept(oa.swap(ob)));
+   VERIFY( oa.has_value() );
+   VERIFY( &oa.value() == &b );
+   VERIFY( ob.has_value() );
+   VERIFY( &ob.value() == &a );
+ 
+   swap(oa, ob);
+   static_assert(std::is_nothrow_swappable_v<std::optional<NonMovable&>>);
+   VERIFY( oa.has_value() );
+   VERIFY( &oa.value() == &a );
+   VERIFY( ob.has_value() );
+   VERIFY( &ob.value() == &b );
+ 
+   ob.reset();
+   oa.swap(ob);
+   VERIFY( !oa.has_value() );
+   VERIFY( ob.has_value() );
+   VERIFY( &ob.value() == &a );
+ 
+   ob.reset();
+   std::swap(oa, ob);
+   VERIFY( !oa.has_value() );
+   VERIFY( !ob.has_value() );
+ 
+   std::optional<const NonMovable&> ca(a), cb(b);
+   swap(ca, cb);
+   VERIFY( ca.has_value() );
+   VERIFY( &ca.value() == &b );
+   VERIFY( cb.has_value() );
+   VERIFY( &cb.value() == &a );
+ 
+   static_assert(!std::is_swappable_with_v<std::optional<int>&, std::optional<int&>&>);
+ }
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test_copy();
+     test_from_value();
+     test_from_opt_value();
+     test_to_opt_value();
+     test_swap();
+     return true;
+   };
+ 
+   test_all();
+   static_assert(test_all());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/cons.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/cons.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/cons.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/cons.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,356 ----
+ // { dg-do run { target c++26 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ #include <testsuite_hooks.h>
+ 
+ struct NonTrivial
+ {
+   constexpr NonTrivial() {}
+   constexpr NonTrivial(NonTrivial const&) {};
+   constexpr ~NonTrivial() {};
+ };
+ 
+ struct NonMovable
+ {
+   constexpr NonMovable() {}
+   NonMovable(NonMovable&&) = delete;
+ };
+ 
+ template<typename T>
+ struct Conv
+ {
+   T t;
+ 
+   constexpr operator T() const noexcept
+   { return t; }
+ };
+ 
+ struct Tracker
+ {
+   int copy = 0;
+   int move = 0;
+ 
+   Tracker() = default;
+ 
+   constexpr Tracker(Tracker const& o)
+   : copy(o.copy+1), move(o.move)
+   {}
+ 
+   constexpr Tracker(Tracker&& o)
+   : copy(o.copy), move(o.move+1)
+   {}
+ 
+   Tracker& operator=(Tracker) = delete;
+ };
+ 
+ template<typename T>
+ void
+ test_trivial()
+ {
+   static_assert(std::is_trivially_copyable_v<std::optional<T&>>);
+   static_assert(std::is_copy_constructible_v<std::optional<T&>>);
+   static_assert(std::is_move_constructible_v<std::optional<T&>>);
+   static_assert(std::is_destructible_v<std::optional<T&>>);
+ }
+ 
+ constexpr void
+ test_trivial_all()
+ {
+   test_trivial<int>();
+   test_trivial<NonTrivial>();
+   test_trivial<NonMovable>();
+   test_trivial<std::optional<int&>>();
+ }
+ 
+ constexpr void
+ test_copy()
+ {
+   Tracker t;
+   std::optional<Tracker&> o1(t);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+   VERIFY( t.copy == 0 );
+   VERIFY( t.move == 0 );
+ 
+   std::optional<Tracker&> o2(o1);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &t );
+   VERIFY( t.copy == 0 );
+   VERIFY( t.move == 0 );
+ 
+   std::optional<Tracker&> o3(std::move(o1));
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+   VERIFY( o3.has_value() );
+   VERIFY( &o3.value() == &t );
+   VERIFY( t.copy == 0 );
+   VERIFY( t.move == 0 );
+ 
+   std::optional<Tracker&> e;
+   VERIFY( !e.has_value() );
+ 
+   std::optional<Tracker&> o4(e);
+   VERIFY( !e.has_value() );
+   VERIFY( !o4.has_value() );
+ 
+   std::optional<Tracker&> o5(std::move(e));
+   VERIFY( !e.has_value() );
+   VERIFY( !o5.has_value() );
+ }
+ 
+ 
+ constexpr void
+ test_from_value()
+ {
+   NonTrivial v;
+   const NonTrivial& cv = v;
+ 
+   std::optional<NonTrivial&> o1(v);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const NonTrivial&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  NonTrivial> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const NonTrivial> );
+ 
+   std::optional<NonTrivial&> o2(std::in_place, v);
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &v );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, const NonTrivial&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, NonTrivial> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, const NonTrivial> );
+ 
+   std::optional<const NonTrivial&> co1(v);
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v );
+   std::optional<const NonTrivial&> co2(cv);
+   VERIFY( co2.has_value() );
+   VERIFY( &co2.value() == &v );
+   // No binding to rvalue
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  NonTrivial> );
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  const NonTrivial> );
+ 
+   std::optional<const NonTrivial&> co3(std::in_place, v);
+   VERIFY( co3.has_value() );
+   VERIFY( &co3.value() == &v );
+   std::optional<const NonTrivial&> co4(std::in_place, cv);
+   VERIFY( co4.has_value() );
+   VERIFY( &co4.value() == &v );
+   // No binding to rvalue
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  std::in_place_t, NonTrivial> );
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  std::in_place_t, const NonTrivial> );
+ 
+   // Conversion create a pr-value that would bind to temporary
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  Conv<NonTrivial>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const Conv<NonTrivial>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  Conv<NonTrivial>> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const Conv<NonTrivial>> );
+ 
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, Conv<NonTrivial>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, const Conv<NonTrivial>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, Conv<NonTrivial>> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::in_place_t, const Conv<NonTrivial>> );
+ 
+   Conv<NonTrivial&> rw(v);
+   const Conv<NonTrivial&> crw(v);
+ 
+   std::optional<NonTrivial&> ro1(rw);
+   VERIFY( ro1.has_value() );
+   VERIFY( &ro1.value() == &v );
+   std::optional<NonTrivial&> ro2(crw);
+   VERIFY( ro2.has_value() );
+   VERIFY( &ro2.value() == &v );
+   std::optional<NonTrivial&> ro3(std::move(rw));
+   VERIFY( ro3.has_value() );
+   VERIFY( &ro3.value() == &v );
+   std::optional<NonTrivial&> ro4(std::move(crw));
+   VERIFY( ro4.has_value() );
+   VERIFY( &ro4.value() == &v );
+ 
+   std::optional<NonTrivial&> ro5(std::in_place, rw);
+   VERIFY( ro5.has_value() );
+   VERIFY( &ro5.value() == &v );
+   std::optional<NonTrivial&> ro6(std::in_place, crw);
+   VERIFY( ro6.has_value() );
+   VERIFY( &ro6.value() == &v );
+   std::optional<NonTrivial&> ro7(std::in_place, std::move(rw));
+   VERIFY( ro7.has_value() );
+   VERIFY( &ro7.value() == &v );
+   std::optional<NonTrivial&> ro8(std::in_place, std::move(crw));
+   VERIFY( ro8.has_value() );
+   VERIFY( &ro8.value() == &v );
+ }
+ 
+ constexpr void
+ test_from_opt_value()
+ {
+   std::optional<NonTrivial> v(std::in_place);
+   const std::optional<NonTrivial>& cv = v;
+ 
+   std::optional<NonTrivial&> o1(v);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &v.value() );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const std::optional<NonTrivial>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::optional<NonTrivial>> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const std::optional<NonTrivial>> );
+ 
+   std::optional<const NonTrivial&> co1(v);
+   VERIFY( co1.has_value() );
+   VERIFY( &co1.value() == &v.value() );
+   std::optional<const NonTrivial&> co2(cv);
+   VERIFY( co2.has_value() );
+   VERIFY( &co2.value() == &v.value() );
+   // No binding to rvalue
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  std::optional<NonTrivial>> );
+   static_assert( !std::is_constructible_v<std::optional<const NonTrivial&>,
+ 					  const std::optional<NonTrivial>> );
+ 
+   // Conversion create a pr-value that would bind to temporary
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::optional<Conv<NonTrivial>>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const std::optional<Conv<NonTrivial>>&> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  std::optional<Conv<NonTrivial>>> );
+   static_assert( !std::is_constructible_v<std::optional<NonTrivial&>,
+ 					  const std::optional<Conv<NonTrivial>>> );
+ 
+   std::optional<Conv<NonTrivial&>> rw(*v);
+   std::optional<const Conv<NonTrivial&>> crw(*v);
+ 
+   std::optional<NonTrivial&> ro1(rw);
+   VERIFY( ro1.has_value() );
+   VERIFY( &ro1.value() == &v.value() );
+   std::optional<NonTrivial&> ro2(crw);
+   VERIFY( ro2.has_value() );
+   VERIFY( &ro2.value() == &v.value() );
+   std::optional<NonTrivial&> ro3(std::move(rw));
+   VERIFY( ro3.has_value() );
+   VERIFY( &ro3.value() == &v.value() );
+   std::optional<NonTrivial&> ro4(std::move(crw));
+   VERIFY( ro4.has_value() );
+   VERIFY( &ro4.value() == &v.value() );
+ }
+ 
+ constexpr void
+ test_to_opt_value()
+ {
+   Tracker t;
+   std::optional<Tracker&> r(t);
+   const std::optional<Tracker&> cr(t);
+ 
+   std::optional<Tracker> o1(r);
+   VERIFY( o1.has_value() );
+   VERIFY( o1->copy == 1 );
+   VERIFY( o1->move == 0 );
+ 
+   std::optional<Tracker> o2(cr);
+   VERIFY( o2.has_value() );
+   VERIFY( o2->copy == 1 );
+   VERIFY( o2->move == 0 );
+ 
+   std::optional<Tracker> o3(std::move(r));
+   VERIFY( o3.has_value() );
+   VERIFY( o3->copy == 1 );
+   VERIFY( o3->move == 0 );
+ 
+   std::optional<Tracker> o4(std::move(cr));
+   VERIFY( o4.has_value() );
+   VERIFY( o4->copy == 1 );
+   VERIFY( o4->move == 0 );
+ 
+   std::optional<Tracker&> er;
+   const std::optional<Tracker&> cer;
+ 
+   std::optional<Tracker> e1(er);
+   VERIFY( !e1.has_value() );
+ 
+   std::optional<Tracker> e2(cer);
+   VERIFY( !e2.has_value() );
+ 
+   std::optional<Tracker> e3(std::move(er));
+   VERIFY( !e3.has_value() );
+ 
+   std::optional<Tracker> e4(std::move(cer));
+   VERIFY( !e4.has_value() );
+ }
+ 
+ constexpr void
+ test_opt_opt()
+ {
+   std::optional<int> s(43);
+ 
+   std::optional<std::optional<int>&> o1(s);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &s );
+ 
+   std::optional<std::optional<int>&> o2(std::in_place, s);
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &s );
+ 
+   std::optional<std::optional<int>> o3(o1);
+   VERIFY( o2.has_value() );
+   VERIFY( o2.value().has_value() );
+   VERIFY( o2.value() == 43 );
+ 
+   s.reset();
+   std::optional<std::optional<int>&> o4(s);
+   VERIFY( o4.has_value() );
+   VERIFY( &o4.value() == &s );
+ 
+   std::optional<std::optional<int>&> o5(std::in_place, s);
+   VERIFY( o5.has_value() );
+   VERIFY( &o5.value() == &s );
+ 
+   std::optional<std::optional<int>> o6(o1);
+   VERIFY( o6.has_value() );
+   VERIFY( !o6.value().has_value() );
+ 
+   std::optional<std::optional<int>> s2(std::in_place);
+   std::optional<std::optional<int>&> oo1(s2);
+   VERIFY( oo1.has_value() );
+   VERIFY( &oo1.value() == &s2.value() );
+ 
+   s2.reset();
+   std::optional<std::optional<int>&> oo2(s2);
+   VERIFY( !oo2.has_value() );
+ }
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test_copy();
+     test_from_value();
+     test_from_opt_value();
+     test_to_opt_value();
+     test_opt_opt();
+     return true;
+   };
+ 
+   test_all();
+   static_assert(test_all());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,11 ----
+ // { dg-do compile { target c++26 }  }
+ 
+ #include <optional>
+ #include <variant>
+ 
+ template<typename T>
+ constexpr bool _Never_valueless
+  = std::__detail::__variant::_Never_valueless_alt<T>::value;
+ 
+ static_assert( _Never_valueless<std::optional<int&>> );
+ static_assert( _Never_valueless<std::optional<const int&>> );
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do run { target c++20 }  }
+ 
+ #include <optional>
+ #include <utility>
+ #include <testsuite_hooks.h>
+ 
+ struct NonTrivial
+ {
+   constexpr NonTrivial() {}
+   constexpr NonTrivial(NonTrivial const&) {};
+   constexpr ~NonTrivial() {};
+ };
+ 
+ template<typename T>
+ struct Conv
+ {
+   T t;
+ 
+   constexpr operator T() const noexcept
+   { return t; }
+ };
+ 
+ constexpr bool test()
+ {
+   NonTrivial t;
+   const NonTrivial& ct = t;
+ 
+ #if __cplusplus > 202302
+   auto o1 = std::make_optional<NonTrivial&>(t);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() == &t );
+ 
+   auto o2 = std::make_optional<const NonTrivial&>(t);
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() == &t );
+ 
+   auto o3 = std::make_optional<const NonTrivial&>(ct);
+   VERIFY( o3.has_value() );
+   VERIFY( &o3.value() == &t );
+ 
+   Conv<NonTrivial&> rw(t);
+   auto o4 = std::make_optional<NonTrivial&>(rw);
+   VERIFY( o4.has_value() );
+   VERIFY( &o4.value() == &t );
+ 
+   auto o5 = std::make_optional<NonTrivial&>(std::as_const(rw));
+   VERIFY( o5.has_value() );
+   VERIFY( &o5.value() == &t );
+ 
+   auto o6 = std::make_optional<NonTrivial&>(Conv<NonTrivial&>(t));
+   VERIFY( o6.has_value() );
+   VERIFY( &o6.value() == &t );
+ #else
+   auto o1 = std::make_optional<NonTrivial&>(t);
+   VERIFY( o1.has_value() );
+   VERIFY( &o1.value() != &t );
+ 
+   auto o3 = std::make_optional<const NonTrivial&>(ct);
+   VERIFY( o3.has_value() );
+   VERIFY( &o3.value() != &t );
+ 
+   auto o2 = std::make_optional<NonTrivial&&>(std::move(t));
+   VERIFY( o2.has_value() );
+   VERIFY( &o2.value() != &t );
+ #endif
+ 
+   return true;
+ }
+ 
+ int main()
+ {
+   test();
+   static_assert(test());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,43 ----
+ // { dg-do compile { target c++17 }  }
+ 
+ #include <optional>
+ 
+ struct C {
+   C();
+   C(int);
+ };
+ C s(10);
+ const C cs(1);
+ 
+ template<typename T>
+ using decay_pre26 =
+ #if __cplusplus > 202302
+   T;
+ #else
+   std::decay_t<T>;
+ #endif
+ 
+ auto z1 = std::make_optional<C&>();        // { dg-error "no matching function for call" }
+ auto z2 = std::make_optional<const C&>();  // { dg-error "no matching function for call" }
+ auto z3 = std::make_optional<C&&>();       // { dg-error "no matching function for call" }
+ auto z4 = std::make_optional<const C&&>(); // { dg-error "no matching function for call" }
+ 
+ auto o1 = std::make_optional<C&>(10);        // { dg-error "no matching function for call" }
+ auto o2 = std::make_optional<const C&>(10);  // { dg-error "from here" }
+ auto o3 = std::make_optional<C&&>(10);       // { dg-error "from here" }
+ auto o4 = std::make_optional<const C&&>(10); // { dg-error "from here" }
+ 
+ auto t1 = std::make_optional<C&>(10, 20);        // { dg-error "no matching function for call" }
+ auto t2 = std::make_optional<const C&>(10, 20);  // { dg-error "no matching function for call" }
+ auto t3 = std::make_optional<C&&>(10, 20);       // { dg-error "no matching function for call" }
+ auto t3 = std::make_optional<const C&&>(10, 20); // { dg-error "no matching function for call" }
+ 
+ // { dg-prune-output "no type named 'type' in 'struct std::enable_if" }
+ // { dg-prune-output "type/value mismatch at argument 1 in template parameter list" }
+ // { dg-prune-output "in a union may not have reference type" }
+ // { dg-prune-output "static assertion failed" }
+ // { dg-prune-output "forming pointer to reference type" }
+ // { dg-prune-output "cannot bind .* reference of type" }
+ // { dg-prune-output "binding reference of type" }
+ // { dg-prune-output "no matching function for call to 'std::optional" }
+ 
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,40 ----
+ // { dg-do compile { target c++17 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ 
+ struct C {
+   C();
+   C(int);
+ };
+ C s(10);
+ const C cs(1);
+ 
+ template<typename T>
+ using decay_pre26 =
+ #if __cplusplus > 202302
+   T;
+ #else
+   std::decay_t<T>;
+ #endif
+ 
+ auto lr1 = std::make_optional<C&>(s);        // changed meaning
+ static_assert( std::is_same_v< decltype(lr1), std::optional<decay_pre26<C&>>> );
+ auto lr2 = std::make_optional<const C&>(s);  // { dg-error "here" "" { target c++23_down } }
+ auto lr3 = std::make_optional<C&&>(s);       // { dg-error "no matching function for call" }
+ auto lr4 = std::make_optional<const C&&>(s); // { dg-error "no matching function for call" }
+ 
+ auto clr1 = std::make_optional<C&>(cs);        // { dg-error "no matching function for call" }
+ auto clr2 = std::make_optional<const C&>(cs);  // changed meaning
+ static_assert( std::is_same_v< decltype(clr2), std::optional<decay_pre26<const C&>>> );
+ auto clr3 = std::make_optional<C&&>(cs);       // { dg-error "no matching function for call" }
+ auto clr3 = std::make_optional<const C&&>(cs); // { dg-error "no matching function for call" }
+ 
+ // { dg-prune-output "no type named 'type' in 'struct std::enable_if" }
+ // { dg-prune-output "type/value mismatch at argument 1 in template parameter list" }
+ // { dg-prune-output "in a union may not have reference type" }
+ // { dg-prune-output "static assertion failed" }
+ // { dg-prune-output "forming pointer to reference type" }
+ // { dg-prune-output "cannot bind .* reference of type" }
+ // { dg-prune-output "binding reference of type" }
+ // { dg-prune-output "no matching function for call to `std::optional" }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,38 ----
+ // { dg-do compile { target c++17 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ 
+ struct C {
+   C();
+   C(int);
+ };
+ C s(10);
+ const C cs(1);
+ 
+ template<typename T>
+ using decay_pre26 =
+ #if __cplusplus > 202302
+   T;
+ #else
+   std::decay_t<T>;
+ #endif
+ 
+ auto p1 = std::make_optional<C&>(C(10));        // { dg-error "no matching function for call" }
+ auto p2 = std::make_optional<const C&>(C(10));  // { dg-error "from here" }
+ auto p3 = std::make_optional<C&&>(C(10));       // { dg-error "from here" "" { target c++26 } }
+ auto p4 = std::make_optional<const C&&>(C(10)); // { dg-error "from here" }
+ 
+ auto b1 = std::make_optional<C&>({10});        // { dg-error "no matching function for call" }
+ auto b2 = std::make_optional<const C&>({10});  // { dg-error "no matching function for call" "" { target c++26 } }
+ auto b3 = std::make_optional<C&&>({10});       // { dg-error "no matching function for call" "" { target c++26 } }
+ auto b4 = std::make_optional<const C&&>({10}); // { dg-error "no matching function for call" "" { target c++26 } }
+ 
+ // { dg-prune-output "no type named 'type' in 'struct std::enable_if" }
+ // { dg-prune-output "type/value mismatch at argument 1 in template parameter list" }
+ // { dg-prune-output "in a union may not have reference type" }
+ // { dg-prune-output "static assertion failed" }
+ // { dg-prune-output "forming pointer to reference type" }
+ // { dg-prune-output "cannot bind .* reference of type" }
+ // { dg-prune-output "binding reference of type" }
+ // { dg-prune-output "no matching function for call to 'std::optional" }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,192 ----
+ // { dg-do run { target c++26 }  }
+ 
+ #include <optional>
+ #include <type_traits>
+ #include <testsuite_hooks.h>
+ #include <utility>
+ 
+ struct NonMovable
+ {
+   constexpr NonMovable() {}
+   NonMovable(NonMovable&&) = delete;
+ };
+ 
+ struct Tracker
+ {
+   int copy = 0;
+   int move = 0;
+ 
+   Tracker() = default;
+ 
+   constexpr Tracker(Tracker const& o)
+   : copy(o.copy+1), move(o.move)
+   {}
+ 
+   constexpr Tracker(Tracker&& o)
+   : copy(o.copy), move(o.move+1)
+   {}
+ 
+   Tracker& operator=(Tracker) = delete;
+ 
+   void reset() {
+     copy = move = 0;
+   }
+ };
+ 
+ template<typename T>
+ auto identity_of = []<typename U>(U&& t) -> std::optional<T>
+ {
+   static_assert( std::is_same_v<T, U&&> );
+   VERIFY( t.copy == 0 );
+   VERIFY( t.move == 0 );
+   return std::optional<T>(t);
+ };
+ 
+ constexpr void
+ test_and_then()
+ {
+   std::optional<Tracker> t(std::in_place);
+   std::optional<Tracker&> rt(t);
+   std::optional<const Tracker&> rct(t);
+ 
+   auto r1 = t.and_then(identity_of<Tracker&>);
+   VERIFY( r1.has_value() );
+   VERIFY( &r1.value() == &t.value() );
+ 
+   auto r2 = rt.and_then(identity_of<Tracker&>);
+   VERIFY( r2.has_value() );
+   VERIFY( &r2.value() == &t.value() );
+ 
+   std::as_const(rt).and_then(identity_of<Tracker&>);
+   std::move(rt).and_then(identity_of<Tracker&>);
+ 
+   auto r4 = rct.and_then(identity_of<const Tracker&>);
+   VERIFY( r4.has_value() );
+   VERIFY( &r4.value() == &t.value() );
+ 
+   std::as_const(rct).and_then(identity_of<const Tracker&>);
+   std::move(rct).and_then(identity_of<const Tracker&>);
+ 
+   auto r5 = rt.and_then([](Tracker&) { return std::optional<int>(42); });
+   static_assert( std::is_same_v<decltype(r5), std::optional<int>> );
+   VERIFY( r5.has_value() );
+   VERIFY( r5.value() == 42 );
+ 
+   auto r6 = rct.and_then([](const Tracker&) { return std::optional<int>(); });
+   static_assert( std::is_same_v<decltype(r6), std::optional<int>> );
+   VERIFY( !r6.has_value() );
+ 
+   rct.reset();
+   auto r7 = rct.and_then([](const Tracker&) { VERIFY(false); return std::optional<int>(42); });
+   static_assert( std::is_same_v<decltype(r7), std::optional<int>> );
+   VERIFY( !r7.has_value() );
+ 
+   rt.reset();
+   auto r8 = rt.and_then([](Tracker&) { VERIFY(false); return std::optional<int>(); });
+   static_assert( std::is_same_v<decltype(r8), std::optional<int>> );
+   VERIFY( !r8.has_value() );
+ }
+ 
+ template<typename T>
+ constexpr void
+ test_or_else()
+ {
+   T t, u;
+ 
+   std::optional<T&> ot(t);
+   auto r1 = ot.or_else([&] { VERIFY(false); return std::optional<T&>(u); });
+   VERIFY( &ot.value() == &t );
+   VERIFY( r1.has_value() );
+   VERIFY( &r1.value() == &t );
+   auto r2 = std::move(ot).or_else([&] { VERIFY(false); return std::optional<T&>(); });
+   VERIFY( &ot.value() == &t );
+   VERIFY( r2.has_value() );
+   VERIFY( &r2.value() == &t );
+ 
+   ot.reset();
+   auto r3 = ot.or_else([&] { return std::optional<T&>(u); });
+   VERIFY( !ot.has_value() );
+   VERIFY( r3.has_value() );
+   VERIFY( &r3.value() == &u );
+   auto r4 = std::move(ot).or_else([] { return std::optional<T&>(); });
+   VERIFY( !ot.has_value() );
+   VERIFY( !r4.has_value() );
+ }
+ 
+ constexpr void
+ test_transform()
+ {
+   std::optional<Tracker> t(std::in_place);
+ 
+   auto r1 = t.transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r1), std::optional<int&>> );
+   VERIFY( r1.has_value() );
+   VERIFY( &r1.value() == &t->copy );
+   auto r2 = std::as_const(t).transform(&Tracker::move);
+   static_assert( std::is_same_v<decltype(r2), std::optional<const int&>> );
+   VERIFY( r2.has_value() );
+   VERIFY( &r2.value() == &t->move );
+ 
+   std::optional<Tracker&> rt(t);
+   auto r3 = rt.transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r3), std::optional<int&>> );
+   VERIFY( r3.has_value() );
+   VERIFY( &r3.value() == &t->copy );
+   auto r4 = std::as_const(rt).transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r4), std::optional<int&>> );
+   VERIFY( r4.has_value() );
+   VERIFY( &r4.value() == &t->copy );
+   auto r5 = std::move(rt).transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r5), std::optional<int&>> );
+   VERIFY( r5.has_value() );
+   VERIFY( &r5.value() == &t->copy );
+ 
+   auto r6 = rt.transform([] (Tracker& t) { return 10; });
+   static_assert( std::is_same_v<decltype(r6), std::optional<int>> );
+   VERIFY( r6.has_value() );
+   VERIFY( &r6.value() != &t->copy );
+   VERIFY( r6.value() == 10 );
+ 
+   auto r7 = rt.transform([] (Tracker& t) { return NonMovable(); });
+   static_assert( std::is_same_v<decltype(r7), std::optional<NonMovable>> );
+   VERIFY( r7.has_value() );
+ 
+   rt.reset();
+   auto r8 = rt.transform([] (Tracker& t) { VERIFY(false); return 42; });
+   static_assert( std::is_same_v<decltype(r8), std::optional<int>> );
+   VERIFY( !r8.has_value() );
+ 
+   std::optional<const Tracker&> crt(t);
+   auto r9 = crt.transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r9), std::optional<const int&>> );
+   VERIFY( r9.has_value() );
+   VERIFY( &r9.value() == &t->copy );
+   auto r10 = std::as_const(crt).transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r10), std::optional<const int&>> );
+   VERIFY( r10.has_value() );
+   VERIFY( &r10.value() == &t->copy );
+   auto r11 = std::move(crt).transform(&Tracker::copy);
+   static_assert( std::is_same_v<decltype(r11), std::optional<const int&>> );
+   VERIFY( r11.has_value() );
+   VERIFY( &r11.value() == &t->copy );
+ 
+   crt.reset();
+   auto r12 = rt.transform([] (Tracker& t) { VERIFY(false); return 42; });
+   static_assert( std::is_same_v<decltype(r12), std::optional<int>> );
+   VERIFY( !r12.has_value() );
+ }
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test_and_then();
+     test_transform();
+     test_or_else<Tracker>();
+     test_or_else<const Tracker>();
+     test_or_else<NonMovable>();
+     return true;
+   };
+ 
+   test_all();
+   static_assert(test_all());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/relops.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/relops.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/ref/relops.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/ref/relops.cc	Sun Oct 26 22:33:13 2025
***************
*** 0 ****
--- 1,229 ----
+ // { dg-do run { target c++26 }  }
+ 
+ #include <optional>
+ #include <functional>
+ #include <testsuite_hooks.h>
+ #include <type_traits>
+ 
+ template<typename T, typename H = std::hash<T>>
+ constexpr bool has_disabled_hash
+  = !std::is_default_constructible_v<H>
+  && !std::is_copy_constructible_v<H>
+  && !std::is_move_constructible_v<H>
+  && !std::is_copy_assignable_v<H>
+  && !std::is_move_assignable_v<H>;
+ 
+ static_assert(has_disabled_hash<std::optional<int&>>);
+ static_assert(has_disabled_hash<std::optional<const int&>>);
+ 
+ template<typename T, typename V>
+ constexpr void
+ test_compare_val(V& l, V& h)
+ {
+   std::optional<T> t;
+ 
+   VERIFY( !(t == l) );
+   VERIFY(  (t != l) );
+   VERIFY(  (t <  l) );
+   VERIFY(  (t <= l) );
+   VERIFY( !(t >  l) );
+   VERIFY( !(t >= l) );
+   VERIFY( (t <=> l) < 0 );
+ 
+   VERIFY( !(l == t) );
+   VERIFY(  (l != t) );
+   VERIFY( !(l <  t) );
+   VERIFY( !(l <= t) );
+   VERIFY(  (l >  t) );
+   VERIFY(  (l >= t) );
+   VERIFY( (l <=> t) > 0 );
+ 
+   t.emplace(l);
+   VERIFY(  (t == l) );
+   VERIFY( !(t != l) );
+   VERIFY( !(t <  l) );
+   VERIFY(  (t <= l) );
+   VERIFY( !(t >  l) );
+   VERIFY(  (t >= l) );
+   VERIFY( (t <=> l) == 0 );
+ 
+   VERIFY(  (l == t) );
+   VERIFY( !(l != t) );
+   VERIFY( !(l <  t) );
+   VERIFY(  (l <= t) );
+   VERIFY( !(l >  t) );
+   VERIFY(  (l >= t) );
+   VERIFY( (t <=> l) == 0 );
+ 
+   t.emplace(h);
+   VERIFY( !(t == l) );
+   VERIFY(  (t != l) );
+   VERIFY( !(t <  l) );
+   VERIFY( !(t <= l) );
+   VERIFY(  (t >  l) );
+   VERIFY(  (t >= l) );
+   VERIFY( (t <=> l) > 0 );
+ 
+   VERIFY( !(l == t) );
+   VERIFY(  (l != t) );
+   VERIFY(  (l <  t) );
+   VERIFY(  (l <= t) );
+   VERIFY( !(l >  t) );
+   VERIFY( !(l >= t) );
+   VERIFY( (l <=> t) < 0 );
+ }
+ 
+ template<typename T, typename U, typename V>
+ constexpr void
+ test_compare_opts(V& l, V& h)
+ {
+   std::optional<T> t;
+   std::optional<U> u;
+ 
+   VERIFY(  (t == u) );
+   VERIFY( !(t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY(  (t >= u) );
+   VERIFY( (t <=> u) == 0 );
+ 
+   t.emplace(l);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY( !(t <= u) );
+   VERIFY(  (t >  u) );
+   VERIFY(  (t >= u) );
+   VERIFY( (t <=> u) > 0 );
+ 
+   u.emplace(l);
+   VERIFY(  (t == u) );
+   VERIFY( !(t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( (t <=> u) == 0 );
+ 
+   u.emplace(h);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY(  (t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY( !(t >= u) );
+   VERIFY( (t <=> u) < 0 );
+ 
+   t.reset();
+   u.emplace(l);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY(  (t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY( !(t >= u) );
+   VERIFY( (t <=> u) < 0 );
+ 
+   t.emplace(h);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY( !(t <= u) );
+   VERIFY(  (t >  u) );
+   VERIFY(  (t >= u) );
+   VERIFY( (t <=> u) > 0 );
+ }
+ 
+ template<typename V>
+ constexpr void
+ test_compare(V l, V h)
+ {
+   test_compare_val<V&>(l, h);
+   test_compare_val<const V&>(l, h);
+ 
+   test_compare_opts<V&, V&>(l, h);
+   test_compare_opts<V, V&>(l, h);
+   test_compare_opts<V&, V>(l, h);
+ 
+   test_compare_opts<const V&, const V&>(l, h);
+   test_compare_opts<V, const V&>(l, h);
+   test_compare_opts<const V&, V>(l, h);
+ 
+   test_compare_opts<V&, const V&>(l, h);
+   test_compare_opts<const V&, V&>(l, h);
+ }
+ 
+ struct TreeWay
+ {
+   int v;
+   friend auto operator<=>(TreeWay, TreeWay) = default;
+ };
+ 
+ struct Other
+ {
+   int v;
+ 
+   constexpr Other(int p) : v(p) {}
+   constexpr Other(TreeWay p) : v(p.v) {}
+ 
+   friend bool operator==(Other, Other) = default;
+   friend auto operator<=>(Other, Other) = default;
+ 
+   friend constexpr bool
+   operator==(const Other& lhs, const TreeWay& rhs)
+   { return lhs.v == rhs.v; }
+ 
+   friend constexpr std::strong_ordering
+   operator<=>(const Other& lhs, const TreeWay& rhs)
+   { return lhs.v <=> rhs.v; }
+ };
+ 
+ constexpr void
+ test_heterogeneus_cmp()
+ {
+   TreeWay l{10};
+   Other h{20};
+ 
+   std::optional<TreeWay&> t;
+   std::optional<const Other&> u;
+ 
+   VERIFY(  (t == u) );
+   VERIFY( !(t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY(  (t >= u) );
+   VERIFY( (t <=> u) == 0 );
+ 
+   t.emplace(l);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY( !(t <  u) );
+   VERIFY( !(t <= u) );
+   VERIFY(  (t >  u) );
+   VERIFY(  (t >= u) );
+   VERIFY( (t <=> u) > 0 );
+ 
+   u.emplace(h);
+   VERIFY( !(t == u) );
+   VERIFY(  (t != u) );
+   VERIFY(  (t <  u) );
+   VERIFY(  (t <= u) );
+   VERIFY( !(t >  u) );
+   VERIFY( !(t >= u) );
+   VERIFY( (t <=> u) < 0 );
+ }
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test_compare(2, 5);
+     test_compare(TreeWay{11}, TreeWay{12});
+     test_heterogeneus_cmp();
+     return true;
+   };
+ 
+   test_all();
+   static_assert(test_all());
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc	Sun Oct 26 22:33:13 2025
***************
*** 8,15 ****
  # error "Feature-test macro for constrained_equality has wrong value"
  #endif
  
! template<typename T, typename U = T>
! concept eq_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t == u;
    *t == u;
--- 8,15 ----
  # error "Feature-test macro for constrained_equality has wrong value"
  #endif
  
! template<typename T, typename U>
! concept eq_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t == u;
    *t == u;
*************** concept eq_comparable
*** 17,23 ****
  };
  
  template<typename T, typename U = T>
! concept ne_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t != u;
    *t != u;
--- 17,35 ----
  };
  
  template<typename T, typename U = T>
! concept eq_comparable =
!   eq_comparable_impl<T, U>
! #if __cplusplus > 202302l
!   && eq_comparable_impl<T&, U&>
!   && eq_comparable_impl<T const&, U const&>
!   && eq_comparable_impl<T const&, U&>
!   && eq_comparable_impl<T, U const&>
!   && eq_comparable_impl<T&, U>
! #endif
! ;
! 
! template<typename T, typename U>
! concept ne_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t != u;
    *t != u;
*************** concept ne_comparable
*** 25,31 ****
  };
  
  template<typename T, typename U = T>
! concept lt_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t < u;
    *t < u;
--- 37,55 ----
  };
  
  template<typename T, typename U = T>
! concept ne_comparable =
!   ne_comparable_impl<T, U>
! #if __cplusplus > 202302l
!   && ne_comparable_impl<T&, U&>
!   && ne_comparable_impl<T const&, U const&>
!   && ne_comparable_impl<T const&, U&>
!   && ne_comparable_impl<T, U const&>
!   && ne_comparable_impl<T&, U>
! #endif
! ;
! 
! template<typename T, typename U>
! concept lt_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t < u;
    *t < u;
*************** concept lt_comparable
*** 33,39 ****
  };
  
  template<typename T, typename U = T>
! concept le_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t <= u;
    *t <= u;
--- 57,75 ----
  };
  
  template<typename T, typename U = T>
! concept lt_comparable =
!   lt_comparable_impl<T, U>
! #if __cplusplus > 202302l
!   && lt_comparable_impl<T&, U&>
!   && lt_comparable_impl<T const&, U const&>
!   && lt_comparable_impl<T const&, U&>
!   && lt_comparable_impl<T, U const&>
!   && lt_comparable_impl<T&, U>
! #endif
! ;
! 
! template<typename T, typename U>
! concept le_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t <= u;
    *t <= u;
*************** concept le_comparable
*** 41,47 ****
  };
  
  template<typename T, typename U = T>
! concept gt_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t > u;
    *t > u;
--- 77,95 ----
  };
  
  template<typename T, typename U = T>
! concept le_comparable =
!   le_comparable_impl<T, U>
! #if __cplusplus > 202302l
!   && le_comparable_impl<T&, U&>
!   && le_comparable_impl<T const&, U const&>
!   && le_comparable_impl<T const&, U&>
!   && le_comparable_impl<T, U const&>
!   && le_comparable_impl<T&, U>
! #endif
! ;
! 
! template<typename T, typename U>
! concept gt_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t > u;
    *t > u;
*************** concept gt_comparable
*** 49,61 ****
  };
  
  template<typename T, typename U = T>
! concept ge_comparable
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t >= u;
    *t >= u;
    t >= *u;
  };
  
  static_assert( eq_comparable<int> );
  static_assert( ne_comparable<int> );
  static_assert( lt_comparable<int> );
--- 97,133 ----
  };
  
  template<typename T, typename U = T>
! concept gt_comparable =
!   gt_comparable_impl<T, U>
! #if __cplusplus > 202302l
!   && gt_comparable_impl<T&, U&>
!   && gt_comparable_impl<T const&, U const&>
!   && gt_comparable_impl<T const&, U&>
!   && gt_comparable_impl<T, U const&>
!   && gt_comparable_impl<T&, U>
! #endif
! ;
! 
! template<typename T, typename U>
! concept ge_comparable_impl
  = requires (const std::optional<T>& t, const std::optional<U>& u) {
    t >= u;
    *t >= u;
    t >= *u;
  };
  
+ template<typename T, typename U = T>
+ concept ge_comparable =
+   ge_comparable_impl<T, U>
+ #if __cplusplus > 202302l
+   && ge_comparable_impl<T&, U&>
+   && ge_comparable_impl<T const&, U const&>
+   && ge_comparable_impl<T const&, U&>
+   && ge_comparable_impl<T, U const&>
+   && ge_comparable_impl<T&, U>
+ #endif
+ ;
+ 
  static_assert( eq_comparable<int> );
  static_assert( ne_comparable<int> );
  static_assert( lt_comparable<int> );
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/requirements.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/requirements.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/requirements.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/requirements.cc	Sun Oct 26 22:33:13 2025
***************
*** 26,33 ****
  # error "Feature test macro for optional has wrong value in <optional>"
  #elif __cplusplus == 202002L && __cpp_lib_optional != 202106L
  # error "Feature test macro for optional has wrong value for C++20 in <optional>"
! #elif __cplusplus > 202002L && __cpp_lib_optional != 202110L
! # error "Feature test macro for optional has wrong value for C++23 in <version>"
  #endif
  
  #include <testsuite_hooks.h>
--- 26,35 ----
  # error "Feature test macro for optional has wrong value in <optional>"
  #elif __cplusplus == 202002L && __cpp_lib_optional != 202106L
  # error "Feature test macro for optional has wrong value for C++20 in <optional>"
! #elif __cplusplus == 202302L && __cpp_lib_optional != 202110L
! # error "Feature test macro for optional has wrong value for C++23 in <optional>"
! #elif __cplusplus > 202302L && __cpp_lib_optional != 202506L
! # error "Feature test macro for optional has wrong value for C++26 in <optional>"
  #endif
  
  #include <testsuite_hooks.h>
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc	Sun Oct 26 22:33:13 2025
***************
*** 2,18 ****
  
  #include <optional>
  
  // T shall be a type other than cv in_place_t or cv nullopt_t
  // that meets the Cpp17Destructible requirements
  
  std::optional<std::nullopt_t> o1;        // { dg-error "here" }
  std::optional<const std::nullopt_t> o2;  // { dg-error "here" }
  std::optional<std::in_place_t> o3;       // { dg-error "here" }
  std::optional<const std::in_place_t> o4; // { dg-error "here" }
! std::optional<int&> o5;                  // { dg-error "here" }
  std::optional<int[1]> o6;                // { dg-error "here" }
  std::optional<int[]> o7;                 // { dg-error "here" }
  std::optional<int()> o8;                 // { dg-error "here" }
  
  // { dg-error "static assertion failed" "" { target *-*-* } 0 }
  
--- 2,33 ----
  
  #include <optional>
  
+ // C++ < 26:
  // T shall be a type other than cv in_place_t or cv nullopt_t
  // that meets the Cpp17Destructible requirements
+ // C++ >= 26:
+ // A type X is a valid contained type for optional if X is an lvalue reference
+ // type or a complete non-array object type, and remove_cvref_t<X> is a type
+ // other than in_place_t or nullopt_t. If a specialization of optional
+ // is instantiated with a type T that is not a valid contained type for
+ // optional, the program is ill-formed. If T is an object type,
+ // T shall meet the Cpp17Destructible requirements
  
  std::optional<std::nullopt_t> o1;        // { dg-error "here" }
  std::optional<const std::nullopt_t> o2;  // { dg-error "here" }
  std::optional<std::in_place_t> o3;       // { dg-error "here" }
  std::optional<const std::in_place_t> o4; // { dg-error "here" }
! std::optional<int&> o5;                  // { dg-error "here" "optional<T&> is a C++26 feature" { target c++23_down } }
  std::optional<int[1]> o6;                // { dg-error "here" }
  std::optional<int[]> o7;                 // { dg-error "here" }
  std::optional<int()> o8;                 // { dg-error "here" }
+ std::optional<const int &> o9;           // { dg-error "here" "optional<T&> is a C++26 feature" { target c++23_down } }
+ std::optional<std::in_place_t &> o10;    // { dg-error "here" }
+ std::optional<const std::in_place_t &> o11; // { dg-error "here" }
+ std::optional<std::nullopt_t &> o12;     // { dg-error "here" }
+ std::optional<const std::nullopt_t &> o13; // { dg-error "here" }
+ std::optional<int &&> o14;               // { dg-error "here" }
+ std::optional<const int &&> o15;         // { dg-error "here" }
  
  // { dg-error "static assertion failed" "" { target *-*-* } 0 }
  
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/version.cc gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/version.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/20_util/optional/version.cc	Sun Oct 19 22:32:47 2025
--- gcc-16-20251026/libstdc++-v3/testsuite/20_util/optional/version.cc	Sun Oct 26 22:33:13 2025
***************
*** 9,16 ****
  # error "Feature test macro for optional has wrong value for C++17 in <version>"
  #elif __cplusplus == 202002L && __cpp_lib_optional != 202106L
  # error "Feature test macro for optional has wrong value for C++20 in <version>"
! #elif __cplusplus > 202002L && __cpp_lib_optional != 202110L
  # error "Feature test macro for optional has wrong value for C++23 in <version>"
  #endif
  
  #if __cplusplus >= 202302L
--- 9,18 ----
  # error "Feature test macro for optional has wrong value for C++17 in <version>"
  #elif __cplusplus == 202002L && __cpp_lib_optional != 202106L
  # error "Feature test macro for optional has wrong value for C++20 in <version>"
! #elif __cplusplus == 202302L && __cpp_lib_optional != 202110L
  # error "Feature test macro for optional has wrong value for C++23 in <version>"
+ #elif __cplusplus > 202302L && __cpp_lib_optional != 202506L
+ # error "Feature test macro for optional has wrong value for C++26 in <version>"
  #endif
  
  #if __cplusplus >= 202302L
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc gcc-16-20251026/libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc	Sun Oct 26 22:33:15 2025
***************
*** 0 ****
--- 1,65 ----
+ // { dg-do compile { target c++23 } }
+ // { dg-options "-std=c++23" }
+ 
+ // Test for PR libstdc++/119721: tuple<> comparison with array<T, 0>
+ 
+ #include <tuple>
+ #include <array>
+ #include <testsuite_hooks.h>
+ #include <cassert>
+ 
+ constexpr void
+ test01()
+ {
+   std::tuple<> t;
+   std::array<int, 0> a;
+ 
+   // Basic comparison should work
+   VERIFY( t == a );
+   VERIFY( a == t );
+   VERIFY( !(t != a) );
+   VERIFY( !(a != t) );
+ 
+   // Ordering comparisons should be equal
+   VERIFY( !(t < a) );
+   VERIFY( !(t > a) );
+   VERIFY( t <= a );
+   VERIFY( t >= a );
+   VERIFY( !(a < t) );
+   VERIFY( !(a > t) );
+   VERIFY( a <= t );
+   VERIFY( a >= t );
+ 
+   // Three-way comparison should return equal
+   VERIFY( (t <=> a) == std::strong_ordering::equal );
+   VERIFY( (a <=> t) == std::strong_ordering::equal );
+ }
+ 
+ constexpr void
+ test02()
+ {
+   // Test with non-comparable element type
+   struct NonComparable {
+     void operator==(const NonComparable&) const = delete;
+     void operator<=>(const NonComparable&) const = delete;
+   };
+ 
+   std::tuple<> t;
+   std::array<NonComparable, 0> a;
+ 
+   // Should still work because empty containers don't compare elements
+   VERIFY( t == a );
+   VERIFY( (t <=> a) == std::strong_ordering::equal );
+ }
+ 
+ int main()
+ {
+   auto test_all = [] {
+     test01();
+     test02();
+   };
+ 
+   test_all();
+   static_VERIFY( test_all() );
+   return 0;
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc gcc-16-20251026/libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc	Sun Oct 26 22:33:16 2025
***************
*** 0 ****
--- 1,100 ----
+ // { dg-do run { target c++11 } }
+ // { dg-add-options no_pch }
+ 
+ // Undefine these if present in runtest flags.
+ #undef _GLIBCXX_ASSERTIONS
+ #undef _GLIBCXX_DEBUG
+ 
+ // Prevent assertions from being automatically enabled at -O0
+ #define _GLIBCXX_NO_ASSERTIONS
+ 
+ #include <iterator>
+ #include <testsuite_iterators.h>
+ #include <testsuite_hooks.h>
+ 
+ template<typename Container>
+ void
+ test_advance()
+ {
+   int a[] = { 1, 2, 3 };
+   Container c(a);
+   auto iter = c.begin();
+ 
+   // This call violates the precondition for std::advance,
+   // but with assertions disabled we do not diagnose it.
+   std::advance(iter, -1);
+ 
+   // However we do guarantee that erroneously decrementing
+   // an input iterator is a no-op and does no harm.
+   VERIFY( *iter == 1 );
+ 
+   ++iter;
+   std::advance(iter, -999);
+   VERIFY( *iter == 2 );
+ 
+   std::advance(iter, 0);
+   VERIFY( *iter == 2 );
+   std::advance(iter, 1);
+   VERIFY( *iter == 3 );
+ }
+ 
+ template<typename Container>
+ void
+ test_prev()
+ {
+   int a[] = { 1, 2, 3 };
+   Container c(a);
+   auto iter = c.begin();
+ 
+   // This calls std::advance(iter, -1), which violates the precondition.
+   iter = std::prev(iter);
+ 
+   // As above, we turn the std::prev call into a no-op.
+   VERIFY( *iter == 1 );
+ 
+   ++iter;
+   iter = std::prev(iter, 999);
+   VERIFY( *iter == 2 );
+ 
+   iter = std::prev(iter, 0);
+   VERIFY( *iter == 2 );
+   iter = std::prev(iter, -1);
+   VERIFY( *iter == 3 );
+ }
+ 
+ template<typename Container>
+ void
+ test_next()
+ {
+   int a[] = { 1, 2, 3 };
+   Container c(a);
+   auto iter = c.begin();
+ 
+   // This calls std::advance(iter, -1), which violates the precondition.
+   iter = std::next(iter, -1);
+ 
+   // As above, we turn the std::prev call into a no-op.
+   VERIFY( *iter == 1 );
+ 
+   ++iter;
+   iter = std::next(iter, -999);
+   VERIFY( *iter == 2 );
+ 
+   iter = std::next(iter, 0);
+   VERIFY( *iter == 2 );
+   iter = std::next(iter);
+   VERIFY( *iter == 3 );
+ }
+ 
+ int main()
+ {
+   using InputContainer = __gnu_test::input_container<int>;
+   test_advance<InputContainer>();
+   test_prev<InputContainer>();
+   test_next<InputContainer>();
+ 
+   using ForwardContainer = __gnu_test::forward_container<int>;
+   test_advance<ForwardContainer>();
+   test_prev<ForwardContainer>();
+   test_next<ForwardContainer>();
+ }
diff -Nrcpad gcc-16-20251019/libstdc++-v3/testsuite/std/ranges/indices/1.cc gcc-16-20251026/libstdc++-v3/testsuite/std/ranges/indices/1.cc
*** gcc-16-20251019/libstdc++-v3/testsuite/std/ranges/indices/1.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20251026/libstdc++-v3/testsuite/std/ranges/indices/1.cc	Sun Oct 26 22:33:19 2025
***************
*** 0 ****
--- 1,45 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <testsuite_hooks.h>
+ 
+ #include <ranges>
+ #include <type_traits>
+ #include <stddef.h>
+ 
+ template <typename T>
+ constexpr bool test(T n) {
+   auto indices_view = std::ranges::views::indices(n);
+   static_assert(
+       std::is_same_v<T, std::ranges::range_value_t<decltype(indices_view)>>);
+   static_assert(noexcept(std::ranges::views::indices(n)));
+ 
+   VERIFY(indices_view.size() == n);
+   for (T i = 0; i < n; ++i) VERIFY(indices_view[i] == i);
+ 
+   return true;
+ }
+ 
+ int main() {
+   VERIFY(test<int>(41));
+   static_assert(test<int>(41));
+   VERIFY(test<short>(42));
+   static_assert(test<short>(42));
+   VERIFY(test<long>(43));
+   static_assert(test<long>(43));
+   VERIFY(test<size_t>(44));
+   static_assert(test<size_t>(44));
+ }
+ 
+ template<typename T>
+ constexpr size_t test_wider(T n)
+ {
+   // If indices(n) works, try again with ranges::distance(indices(n)),
+   // which will be a wider type, until we get to an unsupported type.
+   // This verifies that indices(n) is SFINAE-friendly, because otherwise we
+   // would get a hard error outside the immediate context checked by requires.
+   if constexpr (requires { std::views::indices(n); })
+     return test_wider(std::ranges::distance(std::views::indices(n)));
+   return sizeof(T);
+ }
+ 
+ static_assert(test_wider(0) > sizeof(long long));
