diff -Nrcpad gcc-16-20250928/.editorconfig gcc-16-20251005/.editorconfig
*** gcc-16-20250928/.editorconfig	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/.editorconfig	Sun Oct  5 22:32:11 2025
***************
*** 1,38 ****
! # top-most EditorConfig file for gcc
  root = true
  
  [*]
  end_of_line = lf
  insert_final_newline = true
  
! [*.{h,cc}]
  charset = utf-8
- indent_style = tab
- indent_size = 2
- tab_width = 8
  trim_trailing_whitespace = true
  
! [{Makefile,ChangeLog}*]
  indent_style = tab
  indent_size = 8
  trim_trailing_whitespace = true
  
  [ChangeLog*]
  charset = utf-8
  
  [*.texi]
  charset = utf-8
  indent_size = 2
- tab_width = 8
  trim_trailing_whitespace = true
  
  [*.py]
  indent_style = space
  indent_size = 4
  trim_trailing_whitespace = true
  
! [*.exp]
  indent_style = tab
  indent_size = 4
! tab_width = 8
  trim_trailing_whitespace = true
--- 1,142 ----
! # Copyright 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 this program.  If not, see <http://www.gnu.org/licenses/>.
! 
! # This file helps editors auto-configure whitespace settings.
! #
! # See here for more information about the format and editor support:
! #
! #   https://editorconfig.org/
! 
! # This file is common to the GCC and GDB/Binutils projects.  If you
! # update one, please sync it with the other.
! 
! # top-most EditorConfig file
  root = true
  
  [*]
  end_of_line = lf
  insert_final_newline = true
+ tab_width = 8
  
! # EditorConfig files
! [.editorconfig]
  charset = utf-8
  trim_trailing_whitespace = true
  
! # Makefile
! [{Makefile,*.mk,*.am}*]
  indent_style = tab
  indent_size = 8
  trim_trailing_whitespace = true
  
+ # ChangeLogs
  [ChangeLog*]
+ indent_style = tab
+ indent_size = 8
+ trim_trailing_whitespace = true
+ charset = utf-8
+ 
+ # C/C++
+ [*.{c,h,cc}]
+ charset = utf-8
+ indent_style = tab
+ indent_size = 2
+ trim_trailing_whitespace = true
+ 
+ # GCC .def files.  These are generally C fragments that get included
+ # one or more times
+ [gcc/**.def]
  charset = utf-8
+ indent_style = tab
+ indent_size = 2
+ trim_trailing_whitespace = true
  
+ # Texinfo files
  [*.texi]
  charset = utf-8
  indent_size = 2
  trim_trailing_whitespace = true
  
+ # Expect / TCL
+ [*.{exp,tcl}]
+ indent_style = tab
+ indent_size = 4
+ trim_trailing_whitespace = true
+ 
+ # Python
  [*.py]
  indent_style = space
  indent_size = 4
  trim_trailing_whitespace = true
  
! # Assembler
! [*.{s,S,asm}]
! indent_style = tab
! indent_size = 8
! trim_trailing_whitespace = true
! 
! # GCC Machine description files
! [gcc/config/**.md]
! indent_style = tab
! indent_size = 2
! trim_trailing_whitespace = true
! 
! # Awk
! [*.awk]
! indent_style = tab
! indent_size = 2
! trim_trailing_whitespace = true
! 
! # Autoconf
! [*.{ac,m4}]
! indent_style = tab
! indent_size = 2
! trim_trailing_whitespace = true
! 
! # Shell scripts
! [*.sh]
  indent_style = tab
  indent_size = 4
! trim_trailing_whitespace = true
! 
! # Ada
! [*.ad[bs]]
! indent_style = space
! indent_size = 3
! trim_trailing_whitespace = true
! 
! # D
! [*.d]
! indent_style = space
! indent_size = 4
! trim_trailing_whitespace = true
! 
! # Go
! [*.go]
! indent_style = tab
! indent_size = 8
! trim_trailing_whitespace = true
! 
! # Fortran
! [*.[Ff]90]
! indent_style = space
! indent_size = 2
! trim_trailing_whitespace = true
! 
! # Cobol
! [*.cbl]
! indent_style = space
! indent_size = 2
  trim_trailing_whitespace = true
diff -Nrcpad gcc-16-20250928/ChangeLog gcc-16-20251005/ChangeLog
*** gcc-16-20250928/ChangeLog	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/ChangeLog	Sun Oct  5 22:32:11 2025
***************
*** 1,3 ****
--- 1,15 ----
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* Makefile.in: Regenerated.
+ 	* configure: Likewise.
+ 	* Makefile.tpl: Synced from binutils-gdb.
+ 	* configure.ac: Likewise.
+ 	* libtool.m4: Likewise.
+ 
+ 2025-10-01  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* .editorconfig: Unify the GCC and GDB/binutils root config.
+ 
  2025-09-23  Richard Earnshaw  <rearnsha@arm.com>
  
  	* .editorconfig: Fix glob patterns.
diff -Nrcpad gcc-16-20250928/LAST_UPDATED gcc-16-20251005/LAST_UPDATED
*** gcc-16-20250928/LAST_UPDATED	Sun Sep 28 22:35:32 2025
--- gcc-16-20251005/LAST_UPDATED	Sun Oct  5 22:34:21 2025
***************
*** 1 ****
! Obtained from git: master revision 143cec1646ae2e0cfdb1874defdc65e6d535e27c
--- 1 ----
! Obtained from git: master revision a3727eb5e821d6a1916805029aeaed092e5e739d
diff -Nrcpad gcc-16-20250928/MD5SUMS gcc-16-20251005/MD5SUMS
*** gcc-16-20250928/MD5SUMS	Sun Sep 28 22:35:41 2025
--- gcc-16-20251005/MD5SUMS	Sun Oct  5 22:34:26 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20250928.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-20251005.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
***************
*** 10,16 ****
  #
  e8eeef33ef071516ce3f689e9c71e0b5  .b4-config
  fd78d02fa55fcdb78ddb2f37a7868dbb  .dir-locals.el
! 4913aa3ca91398499f84b9de170d1890  .editorconfig
  b91d600742b62d1860809cb184055a3d  .forgejo/PULL_REQUEST_TEMPLATE.md
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
--- 10,16 ----
  #
  e8eeef33ef071516ce3f689e9c71e0b5  .b4-config
  fd78d02fa55fcdb78ddb2f37a7868dbb  .dir-locals.el
! 617f425ec650450d3b979db16e73b315  .editorconfig
  b91d600742b62d1860809cb184055a3d  .forgejo/PULL_REQUEST_TEMPLATE.md
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
*************** ac5a8807f431d3dab46a7425b96379e4  .gitig
*** 22,36 ****
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 687e24053445c456b29bd0901df86205  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6afad176b3471599e2d045c25d7d6cae  LAST_UPDATED
  8e87c2f135d3885c0640f7f2229b11ae  MAINTAINERS
! 95166ed050922b15d201d1fa647b5872  Makefile.def
! 7dcc983bfbcda6838b504185562b60a3  Makefile.in
! 2c81c9de7da119a00341d5e9529e629f  Makefile.tpl
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
--- 22,36 ----
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 63d178db1529b25d029765cb92bfc818  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 3ae1e5af35de286c05d82744342c8830  LAST_UPDATED
  8e87c2f135d3885c0640f7f2229b11ae  MAINTAINERS
! af3d25930353f66b68009bb027ab3980  Makefile.def
! 1b20aad2d8f72f44348454e2801f41cd  Makefile.in
! 400afd36257fb83601ebd1c9021ee7c7  Makefile.tpl
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
*************** c5a60ac6626343968c4ef1fdf261bf62  c++too
*** 47,55 ****
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 5554793ce1dcd0b4ef63aa0a3b40ce07  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
! e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
--- 47,55 ----
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 8da411405f9055f79368fa3212ae7764  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
! c52785ba62b3166f78b8b9747f3caa55  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
*************** ece3bc716fac1aca84326d40b97a4b4b  config
*** 76,81 ****
--- 76,82 ----
  f466ea6022e6627a2e3d94bb0cc7eeb9  config/bootstrap-time.mk
  065f6478cf9a6fdc999f666517cfb8b4  config/bootstrap-ubsan.mk
  2ef96b7f5ed3e6a5fd105f2cb18b1887  config/cet.m4
+ df9dcb6ecbf8728bb57502042a8e2d58  config/clang-plugin.m4
  04bdbef77f5fd2e282f7dee0bde60444  config/codeset.m4
  b5a5c394536a15e50be1998bd341fd02  config/depstand.m4
  a763364d451e805a934f6520b8b4d602  config/dfp.m4
*************** a763364d451e805a934f6520b8b4d602  config
*** 84,90 ****
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! 29f1b1fc22273243f0409b3b3da84a71  config/gcc-plugin.m4
  668132e429b5a64836ff6f2e6a52bcd2  config/gettext-sister.m4
  891029ae654600a455aee41cac4eb400  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
--- 85,91 ----
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! 8082646dfb4eeb203c0a05b59680009f  config/gcc-plugin.m4
  668132e429b5a64836ff6f2e6a52bcd2  config/gettext-sister.m4
  891029ae654600a455aee41cac4eb400  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
*************** d9835512bc6d5a706cfd0cfa62810e86  config
*** 106,112 ****
  387d452a4a5a98ccf22f47cfad69d89f  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
! 534dce34ae221e73e2d67d3ba07f00a3  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
  3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
--- 107,113 ----
  387d452a4a5a98ccf22f47cfad69d89f  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
! 78e7696b225bc3ffb0912c905ceee32e  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
  3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 153,161 ****
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! 9d9c5508a65175be5f9e10721e55ebbc  configure
! 82e46c5338f6449fa0a149b6adf12797  configure.ac
! fa090df1850ecc9da7f2a60860c900f2  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  13605e5ba7b533ecbe3a902b8ebe4079  contrib/analyze_brprob.py
--- 154,162 ----
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! 7ac91e92c3d09a42a73f62c00afff465  configure
! 418587e1d2e8658503ae7b99e48566d9  configure.ac
! a413398c7eafaa010522d6e31b04f1f4  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  13605e5ba7b533ecbe3a902b8ebe4079  contrib/analyze_brprob.py
*************** d577ea19d05f19a8364f73c9901223b7  contri
*** 196,202 ****
  6e02ba1a02f7c15add8a31bdabbdab03  contrib/gcc-changelog/git_commit.py
  6a772ce384751a560f60790681e6fc41  contrib/gcc-changelog/git_email.py
  039963086e96c2e9fdf8ae5643394a9c  contrib/gcc-changelog/git_repository.py
! 0c7ef238161fe16d8678afe62d331579  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
  0b845b0a18e1acc7cc4d441b4f0cb449  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
--- 197,203 ----
  6e02ba1a02f7c15add8a31bdabbdab03  contrib/gcc-changelog/git_commit.py
  6a772ce384751a560f60790681e6fc41  contrib/gcc-changelog/git_email.py
  039963086e96c2e9fdf8ae5643394a9c  contrib/gcc-changelog/git_repository.py
! 5c0a44b6238e0b72cf2b5d2ad94c0e36  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
  0b845b0a18e1acc7cc4d441b4f0cb449  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 517,523 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 7a3aa9d7531045c43231fe70ea29cf7f  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 518,524 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! fb3effa0a736e1e0f5cab8c2b2427be9  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 554,572 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 9b7501141e226d60b85c12cccf8f4006  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  4dc2573d948287a3722ce977490b026c  gcc/LANGUAGES
! 85df466f5dbf762e6cf2e0ce44458cfc  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  15d6908b4409b0925d9f1c72b56b5cb7  gcc/README.Portability
  23d99b5becf269aa690a91a6f95228b9  gcc/acinclude.m4
! 18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! d873c4d7895cb984771340abc9b140cc  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 555,573 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 49f1e54084d26c979a0d7f1cff324463  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  4dc2573d948287a3722ce977490b026c  gcc/LANGUAGES
! 636f317131443ff3f80ad58f03d424a4  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  15d6908b4409b0925d9f1c72b56b5cb7  gcc/README.Portability
  23d99b5becf269aa690a91a6f95228b9  gcc/acinclude.m4
! e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 67e85f11e4058cb9a26ebbb4b3aeb75b  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** eea9961506181531b5f7f1a7f62fe428  gcc/ad
*** 595,601 ****
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  1ddbf3755fbef2d964b15c7104b9937d  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! f4aae1230ec3af32ac53138e5ed6a1ff  gcc/ada/Makefile.rtl
  38343dc270740eef23a38cd3c750dde1  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
  80867b66cbed2dba054564ea216b3c66  gcc/ada/ada_get_targ.adb
--- 596,602 ----
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  1ddbf3755fbef2d964b15c7104b9937d  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! bdcad9a0be44c59756a4ea370d9f8191  gcc/ada/Makefile.rtl
  38343dc270740eef23a38cd3c750dde1  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
  80867b66cbed2dba054564ea216b3c66  gcc/ada/ada_get_targ.adb
*************** e86af58cfa10e3db683b44d2a2cf4c29  gcc/ad
*** 613,619 ****
  f8207765beac36c54d43698a11140afa  gcc/ada/alloc.ads
  3150d7e2a4f0018bb92d065ed3aedcc0  gcc/ada/argv-lynxos178-raven-cert.c
  5470386a6301c0323b6ee66cf06c1e42  gcc/ada/argv.c
! f2493dd09ce42a8a76ba82606b9e20e3  gcc/ada/aspects.adb
  8c62ffc91a61d63a863ec2627bbc388a  gcc/ada/aspects.ads
  6ac042bab0630fbc0b61560d012db735  gcc/ada/atree.adb
  e06413c30b21b3ef9529c9b89592cca6  gcc/ada/atree.ads
--- 614,620 ----
  f8207765beac36c54d43698a11140afa  gcc/ada/alloc.ads
  3150d7e2a4f0018bb92d065ed3aedcc0  gcc/ada/argv-lynxos178-raven-cert.c
  5470386a6301c0323b6ee66cf06c1e42  gcc/ada/argv.c
! 65d05d4287734e918b4435d8b9cd690c  gcc/ada/aspects.adb
  8c62ffc91a61d63a863ec2627bbc388a  gcc/ada/aspects.ads
  6ac042bab0630fbc0b61560d012db735  gcc/ada/atree.adb
  e06413c30b21b3ef9529c9b89592cca6  gcc/ada/atree.ads
*************** a012e0cb5df366014b5a4988036a509a  gcc/ad
*** 680,706 ****
  7559c05099cde820bf8bebbceabccc04  gcc/ada/doc/gnat_rm.rst
  5bf95a83da0a709f6bdf91751e65e01f  gcc/ada/doc/gnat_rm/about_this_guide.rst
  95f36013115a0d2964f52a340712b135  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! e720005d40bb3f5789a5c87a764fb82e  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
! ae3d832d67eb0561de58deff709050db  gcc/ada/doc/gnat_rm/implementation_advice.rst
  4f7bb8fec58a615cfdd25754812dbe70  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
  687e948eae92592a9bb4b738fd473d80  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! 42a86d66ceb034b24a71d53a737e46ea  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 0ddf58bc4a9fdbe10cc6696d32b3c8b1  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  cd313e8a12cdfb20b99eede7c5252f16  gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  454fb365cfb751d8e03b8e972d3abef1  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
! bb3c8ae8aaf1cbd06bc44135da97d801  gcc/ada/doc/gnat_rm/obsolescent_features.rst
  952177853de529b7a2f483f0d195d2b4  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1813c7ae4ff4245bfbeb8dcf9e475019  gcc/ada/doc/gnat_rm/security_hardening_features.rst
! 2fcc4a1e79f8bad335a4fa544f39c374  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
  31e0ba409ca563e1717444ab64e1e253  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
  a8608ebf71444d2564728c8a41283e03  gcc/ada/doc/gnat_rm/standard_library_routines.rst
! acd9838ed6c44495a93b84c6e2585b57  gcc/ada/doc/gnat_rm/the_gnat_library.rst
  391d17bf855af400348685ff678c6a6a  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
  97271c06a675f62b05d2a744164c36e1  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! a71d7bc3a09331eded6e45fcc92c9c8f  gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
  2bd1b4bce35f627e35f3316337a622f2  gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
  56a5718b224a18464cc8f770c1288a14  gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
  6f289cabdb2ee5e2e1818f135c23020e  gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
--- 681,707 ----
  7559c05099cde820bf8bebbceabccc04  gcc/ada/doc/gnat_rm.rst
  5bf95a83da0a709f6bdf91751e65e01f  gcc/ada/doc/gnat_rm/about_this_guide.rst
  95f36013115a0d2964f52a340712b135  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! f98161d39601f7d9f08cbfa898effb63  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
! d18255d01b647c97e7cf2cbd3225f90d  gcc/ada/doc/gnat_rm/implementation_advice.rst
  4f7bb8fec58a615cfdd25754812dbe70  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
  687e948eae92592a9bb4b738fd473d80  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! 841d2d7d08c02898708fc688f180e10f  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 22c6066fe853b7f56145079dc29bd8ce  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  cd313e8a12cdfb20b99eede7c5252f16  gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  454fb365cfb751d8e03b8e972d3abef1  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
! 99413730be6e496eacbd74d7ce317161  gcc/ada/doc/gnat_rm/obsolescent_features.rst
  952177853de529b7a2f483f0d195d2b4  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
  1813c7ae4ff4245bfbeb8dcf9e475019  gcc/ada/doc/gnat_rm/security_hardening_features.rst
! 4de72a3ff83ec3e42cb0d1eaffe486dd  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
  31e0ba409ca563e1717444ab64e1e253  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
  a8608ebf71444d2564728c8a41283e03  gcc/ada/doc/gnat_rm/standard_library_routines.rst
! de678cadfde8bce5aa2e2f73f408ad76  gcc/ada/doc/gnat_rm/the_gnat_library.rst
  391d17bf855af400348685ff678c6a6a  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
  97271c06a675f62b05d2a744164c36e1  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! d7fea3967666e55efc08b27189e04378  gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
  2bd1b4bce35f627e35f3316337a622f2  gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst
  56a5718b224a18464cc8f770c1288a14  gcc/ada/doc/gnat_ugn/example_of_binder_output.rst
  6f289cabdb2ee5e2e1818f135c23020e  gcc/ada/doc/gnat_ugn/getting_started_with_gnat.rst
*************** d1b7c8ba53a4cc5868e87b17370562ce  gcc/ad
*** 768,774 ****
  ef982b9647c35560ae7ff386e547bd16  gcc/ada/exp_ch4.ads
  a6101b8ff6b37d2b8018d7081f04151a  gcc/ada/exp_ch5.adb
  f0c7dc0ade3f9639e946e709a9288f31  gcc/ada/exp_ch5.ads
! ec400268d76003a9b617cb0a701ac88d  gcc/ada/exp_ch6.adb
  54a1ff576d38d91bbd44c24ee1a6a5ff  gcc/ada/exp_ch6.ads
  c57a021ec5e6cc614c6092d2b1d41b56  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
--- 769,775 ----
  ef982b9647c35560ae7ff386e547bd16  gcc/ada/exp_ch4.ads
  a6101b8ff6b37d2b8018d7081f04151a  gcc/ada/exp_ch5.adb
  f0c7dc0ade3f9639e946e709a9288f31  gcc/ada/exp_ch5.ads
! 2532b1067847e1dc9ed9ff2accacd529  gcc/ada/exp_ch6.adb
  54a1ff576d38d91bbd44c24ee1a6a5ff  gcc/ada/exp_ch6.ads
  c57a021ec5e6cc614c6092d2b1d41b56  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
*************** ee769a63f7ef20a179accef0a80ef873  gcc/ad
*** 808,814 ****
  52a5741c37559d0398594d7baa1c99ac  gcc/ada/exp_tss.ads
  a55ae41c0e68be209828e4229c2bbae3  gcc/ada/exp_unst.adb
  d2f34876e61000e49299ef9b2569cbbf  gcc/ada/exp_unst.ads
! 2d1043da4611eb3502acb57f1373091f  gcc/ada/exp_util.adb
  24baec8a8e8188bc72055a6a83ac20fb  gcc/ada/exp_util.ads
  46d0480b64db4c72cf1f08b18e3c33cf  gcc/ada/expander.adb
  53bb0eb5c4feebf8b5fbef639f5827bd  gcc/ada/expander.ads
--- 809,815 ----
  52a5741c37559d0398594d7baa1c99ac  gcc/ada/exp_tss.ads
  a55ae41c0e68be209828e4229c2bbae3  gcc/ada/exp_unst.adb
  d2f34876e61000e49299ef9b2569cbbf  gcc/ada/exp_unst.ads
! c9088f6990c221a6225fd2db9e59df2c  gcc/ada/exp_util.adb
  24baec8a8e8188bc72055a6a83ac20fb  gcc/ada/exp_util.ads
  46d0480b64db4c72cf1f08b18e3c33cf  gcc/ada/expander.adb
  53bb0eb5c4feebf8b5fbef639f5827bd  gcc/ada/expander.ads
*************** a1d2619ccca21c06754f3cdd326876e1  gcc/ad
*** 864,870 ****
  0930ee3acae3e581cd90b4ea71d36c46  gcc/ada/get_scos.ads
  c30d04e8e72b6ecb391a5f74ed43baa6  gcc/ada/get_targ.adb
  1033bc14018eca0ac6056a8955c8e228  gcc/ada/get_targ.ads
! f6df19c1e5567e6604b916b752514d38  gcc/ada/ghost.adb
  1109d7291e3ece3ae8cb7b668e16d9cd  gcc/ada/ghost.ads
  6f5b1925a8a5b030703dd62acb3e37cc  gcc/ada/gnat-style.texi
  be98a1e6f04922fb22c79c4540070fe5  gcc/ada/gnat1drv.adb
--- 865,871 ----
  0930ee3acae3e581cd90b4ea71d36c46  gcc/ada/get_scos.ads
  c30d04e8e72b6ecb391a5f74ed43baa6  gcc/ada/get_targ.adb
  1033bc14018eca0ac6056a8955c8e228  gcc/ada/get_targ.ads
! 919e7f166c3737b5506ce72e3a9547e9  gcc/ada/ghost.adb
  1109d7291e3ece3ae8cb7b668e16d9cd  gcc/ada/ghost.ads
  6f5b1925a8a5b030703dd62acb3e37cc  gcc/ada/gnat-style.texi
  be98a1e6f04922fb22c79c4540070fe5  gcc/ada/gnat1drv.adb
*************** be98a1e6f04922fb22c79c4540070fe5  gcc/ad
*** 872,879 ****
  917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
  49c5329fd360e2bf4e549bc7de93aab7  gcc/ada/gnat_cuda.adb
  de69fc271ce889490809004600fcac0f  gcc/ada/gnat_cuda.ads
! 8f95916d85a8f64017f21c2b41e362c3  gcc/ada/gnat_rm.texi
! 054f9a42aefee62c4dab8fe25beee502  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
  aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
--- 873,880 ----
  917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
  49c5329fd360e2bf4e549bc7de93aab7  gcc/ada/gnat_cuda.adb
  de69fc271ce889490809004600fcac0f  gcc/ada/gnat_cuda.ads
! 4700c67f2df7fb60b4eee5d14061143f  gcc/ada/gnat_rm.texi
! f91fd0b2a46ae58b593bb3ca62cefc44  gcc/ada/gnat_ugn.texi
  957e02fdb4684d592d9172cea8dfb4cb  gcc/ada/gnatbind.adb
  fff8dfca966e9d6f779ce90e57344a0f  gcc/ada/gnatbind.ads
  aef32d71626b4170f80d299f2304d737  gcc/ada/gnatchop.adb
*************** cf568cc3ccf1e3077d0124147b5eb011  gcc/ad
*** 2828,2834 ****
  726417eeba8f4e1ae6310601195b55e4  gcc/ada/par-ch13.adb
  ed9e0f33947385dfddd6c98bc7c51a92  gcc/ada/par-ch2.adb
  20f2d1c603041e115215f1f16853c42c  gcc/ada/par-ch3.adb
! 0ae82bd79e93a3e76a816d3754dc814f  gcc/ada/par-ch4.adb
  63a4bee77501bbe0cb76503f22893cbd  gcc/ada/par-ch5.adb
  f7eb7f9dffd732f17489bd09047572f9  gcc/ada/par-ch6.adb
  156c49bfe462052c8f4cfb04419e91ee  gcc/ada/par-ch7.adb
--- 2829,2835 ----
  726417eeba8f4e1ae6310601195b55e4  gcc/ada/par-ch13.adb
  ed9e0f33947385dfddd6c98bc7c51a92  gcc/ada/par-ch2.adb
  20f2d1c603041e115215f1f16853c42c  gcc/ada/par-ch3.adb
! a39be401cc0a29fd9a0e8a533688c6e4  gcc/ada/par-ch4.adb
  63a4bee77501bbe0cb76503f22893cbd  gcc/ada/par-ch5.adb
  f7eb7f9dffd732f17489bd09047572f9  gcc/ada/par-ch6.adb
  156c49bfe462052c8f4cfb04419e91ee  gcc/ada/par-ch7.adb
*************** a424011f3e6f5e5a1163e2a9e1324779  gcc/ad
*** 2888,2894 ****
  b1230ac9f3cae75bd98a0fc5e0fabdcf  gcc/ada/sem.ads
  486e7e3521da672c20bea967001436f9  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! 48718cbb5930436a774dfd1a35fca974  gcc/ada/sem_attr.adb
  2a239613f39312b54ea82d1e690a3ea2  gcc/ada/sem_attr.ads
  67c9535c9fd384cc23ba9aafbc93defb  gcc/ada/sem_aux.adb
  e15b069fa2ff472febda85c8b9cacb81  gcc/ada/sem_aux.ads
--- 2889,2895 ----
  b1230ac9f3cae75bd98a0fc5e0fabdcf  gcc/ada/sem.ads
  486e7e3521da672c20bea967001436f9  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! a8711f7fb984bc63c1374e002600d27f  gcc/ada/sem_attr.adb
  2a239613f39312b54ea82d1e690a3ea2  gcc/ada/sem_attr.ads
  67c9535c9fd384cc23ba9aafbc93defb  gcc/ada/sem_aux.adb
  e15b069fa2ff472febda85c8b9cacb81  gcc/ada/sem_aux.ads
*************** d6ef5724397901e11d6ea6485aa07816  gcc/ad
*** 2906,2920 ****
  42a7b1073e168e8be85f2203fbddd148  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! 872079454d8998749ee12a4970c9bdb7  gcc/ada/sem_ch3.adb
  76abe89b089728c6eaca6f7593348732  gcc/ada/sem_ch3.ads
! cc85f882d97d0ea2e48c8ad8055cccae  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
  e8573b06cd7059d6bbde030175ab1a71  gcc/ada/sem_ch5.adb
  ec8d5a42c27c46e4969c16d6e18ed276  gcc/ada/sem_ch5.ads
  9c8edc8418e17cd1a5fbd65b77454574  gcc/ada/sem_ch6.adb
  165c2ff9990d74ba204881b7983566c7  gcc/ada/sem_ch6.ads
! 3cdbde779c5450a7a707146b7e30ff64  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
  3a04524f67dd69e53da10a9b9ff7745e  gcc/ada/sem_ch8.adb
  f0b4e317e5d5515a6ec337bc5acf5fe0  gcc/ada/sem_ch8.ads
--- 2907,2921 ----
  42a7b1073e168e8be85f2203fbddd148  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! 2713817f20c172e0a9f00c5360b662b8  gcc/ada/sem_ch3.adb
  76abe89b089728c6eaca6f7593348732  gcc/ada/sem_ch3.ads
! 653f5332c66bb880af0f354966c2ee7d  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
  e8573b06cd7059d6bbde030175ab1a71  gcc/ada/sem_ch5.adb
  ec8d5a42c27c46e4969c16d6e18ed276  gcc/ada/sem_ch5.ads
  9c8edc8418e17cd1a5fbd65b77454574  gcc/ada/sem_ch6.adb
  165c2ff9990d74ba204881b7983566c7  gcc/ada/sem_ch6.ads
! cbaf217196ce3fa57a1de98d847a02af  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
  3a04524f67dd69e53da10a9b9ff7745e  gcc/ada/sem_ch8.adb
  f0b4e317e5d5515a6ec337bc5acf5fe0  gcc/ada/sem_ch8.ads
*************** e8e79e2a818321d7816e27eed8d17404  gcc/ad
*** 2936,2942 ****
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
  4a954a685009a9b0bcf72a8517dc3bdf  gcc/ada/sem_mech.adb
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
! 9ad12a70ea1d9ca65334c6fb7aaf6e96  gcc/ada/sem_prag.adb
  d16256f1e0a8b84763e3ccc0653e1c4b  gcc/ada/sem_prag.ads
  4ec88812296adfa216b478a7141c3990  gcc/ada/sem_res.adb
  bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
--- 2937,2943 ----
  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
*************** aa571047977f5d4eede1b3c590cfca1a  gcc/ad
*** 3031,3037 ****
  b04795771a6e485551c5422be454c896  gcc/ada/urealp.adb
  3efbeacc845581e3689901f319e061f0  gcc/ada/urealp.ads
  8da16dc7040064c1822811f3aa2b0741  gcc/ada/urealp.h
! 94ccd0d455bff7f52ba6094122b3c173  gcc/ada/usage.adb
  39aa1ad0590789d255e892abebddfe14  gcc/ada/usage.ads
  711166db03aab3b4aa42d708e165cdcb  gcc/ada/validsw.adb
  0fff79e753ec9a011dbe7450d07825bf  gcc/ada/validsw.ads
--- 3032,3038 ----
  b04795771a6e485551c5422be454c896  gcc/ada/urealp.adb
  3efbeacc845581e3689901f319e061f0  gcc/ada/urealp.ads
  8da16dc7040064c1822811f3aa2b0741  gcc/ada/urealp.h
! a946cbbc7605740cbcf1c1725a352fb5  gcc/ada/usage.adb
  39aa1ad0590789d255e892abebddfe14  gcc/ada/usage.ads
  711166db03aab3b4aa42d708e165cdcb  gcc/ada/validsw.adb
  0fff79e753ec9a011dbe7450d07825bf  gcc/ada/validsw.ads
*************** df3f6c6882fc8f715d4cc537af0f6442  gcc/ad
*** 3057,3063 ****
  a13250e9011949e791f210139f4c4323  gcc/align.h
  192d075c6984da6ef1e282fd63829079  gcc/alloc-pool.cc
  b2194a7136db5f26272ca6162d858997  gcc/alloc-pool.h
! 8cbfb82aa5b3e4277b991871cf3ae55a  gcc/analyzer/ChangeLog
  51f6840360573e2c2c0b157723b94c0b  gcc/analyzer/access-diagram.cc
  58f352acafda673d24da4113c4f80b8d  gcc/analyzer/access-diagram.h
  9b9effe796cc5df0612c35031d57d8bb  gcc/analyzer/ana-state-to-diagnostic-state.cc
--- 3058,3064 ----
  a13250e9011949e791f210139f4c4323  gcc/align.h
  192d075c6984da6ef1e282fd63829079  gcc/alloc-pool.cc
  b2194a7136db5f26272ca6162d858997  gcc/alloc-pool.h
! dddb71db040e0e01f0e0ea9a0b2230a1  gcc/analyzer/ChangeLog
  51f6840360573e2c2c0b157723b94c0b  gcc/analyzer/access-diagram.cc
  58f352acafda673d24da4113c4f80b8d  gcc/analyzer/access-diagram.h
  9b9effe796cc5df0612c35031d57d8bb  gcc/analyzer/ana-state-to-diagnostic-state.cc
*************** eeb42b412edc2884a4c60d6f38f7473b  gcc/ar
*** 3163,3178 ****
  135df8f25422fc20afd9efad9dffdd54  gcc/asan.h
  c77616ec7ed7ec81357de9544f955910  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
! 953cd02e0323f4e1c637be64592f0df8  gcc/attribs.cc
! 2e0b1fab14d234393864ca83149dfcae  gcc/attribs.h
  54fb3cb1cab63227c50a50819ea1a3c3  gcc/auto-inc-dec.cc
  c25bbcb70f43e3c72a329043adf2c6c2  gcc/auto-obstack.h
! f5b1c3a1ef2f7d4efb253ed6dba4e8d2  gcc/auto-profile.cc
! 750f46d563af89307c9b19bbb4a2dd18  gcc/auto-profile.h
  1fd4de40d068f0ae7857fb0c2e22e46e  gcc/avoid-store-forwarding.cc
  b187aaef50f37afeeee1f8239d5aa033  gcc/avoid-store-forwarding.h
  db748cbed8c442a442779d8d857a3ae4  gcc/backend.h
! d6b885b0c4ea7cf856ba4b84021613ce  gcc/basic-block.h
  58b4f183a8f75d516025244e2096223f  gcc/bb-reorder.cc
  3e49b0021eba39cbab2bc26d55fde08f  gcc/bb-reorder.h
  919e197f7b89caf16d31f0882964adfa  gcc/bbitmap.h
--- 3164,3179 ----
  135df8f25422fc20afd9efad9dffdd54  gcc/asan.h
  c77616ec7ed7ec81357de9544f955910  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
! 9a7178a90befb7c228527722f0652bc8  gcc/attribs.cc
! 74de0da9c4c12c7fd923885069f35eb2  gcc/attribs.h
  54fb3cb1cab63227c50a50819ea1a3c3  gcc/auto-inc-dec.cc
  c25bbcb70f43e3c72a329043adf2c6c2  gcc/auto-obstack.h
! 9f43e2304a6d81edf1dd7cb434123549  gcc/auto-profile.cc
! 89bffa3f5c7147f088b95f40000c1e56  gcc/auto-profile.h
  1fd4de40d068f0ae7857fb0c2e22e46e  gcc/avoid-store-forwarding.cc
  b187aaef50f37afeeee1f8239d5aa033  gcc/avoid-store-forwarding.h
  db748cbed8c442a442779d8d857a3ae4  gcc/backend.h
! dc5d5c32319eb04bed4f17e183ddeeab  gcc/basic-block.h
  58b4f183a8f75d516025244e2096223f  gcc/bb-reorder.cc
  3e49b0021eba39cbab2bc26d55fde08f  gcc/bb-reorder.h
  919e197f7b89caf16d31f0882964adfa  gcc/bbitmap.h
*************** fe292df4b7f3e3ef7c0b8305084b6844  gcc/bi
*** 3184,3194 ****
  c3a96f63662288d3cdf9bb743d1cef66  gcc/builtins.cc
  ffcb644f7e9f6080db34e56bb66567f5  gcc/builtins.def
  08bacecaf5d3527bf3df15480fb78537  gcc/builtins.h
! 4befef49ed4660aeca6df8964c7f6729  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
! 1c49d68797b113a2b8fa07914f0a8df4  gcc/c-family/c-attribs.cc
  78c56cfdab4bb19086143ab771281aa3  gcc/c-family/c-common.cc
  c273c4ad95ccdbfe677146505900c62e  gcc/c-family/c-common.def
  5f94e80bb1dd7054acb7744c4b436011  gcc/c-family/c-common.h
--- 3185,3195 ----
  c3a96f63662288d3cdf9bb743d1cef66  gcc/builtins.cc
  ffcb644f7e9f6080db34e56bb66567f5  gcc/builtins.def
  08bacecaf5d3527bf3df15480fb78537  gcc/builtins.h
! c66433427a2ee19ad6fe86a8aa062383  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
! ac09f3addb0250d63a9ddb3766ee11e1  gcc/c-family/c-attribs.cc
  78c56cfdab4bb19086143ab771281aa3  gcc/c-family/c-common.cc
  c273c4ad95ccdbfe677146505900c62e  gcc/c-family/c-common.def
  5f94e80bb1dd7054acb7744c4b436011  gcc/c-family/c-common.h
*************** a4b7179d2e948bb7586a9143fbe05593  gcc/c-
*** 3202,3208 ****
  c80c4d6e16ab46358143d22a8a146725  gcc/c-family/c-lex.cc
  c880dc584a0fd4908e5df33dd81137b8  gcc/c-family/c-objc.h
  ff101b60d9a9ba25502bca2f5713b2a3  gcc/c-family/c-omp.cc
! fa75a627653e32708fb43cab7ad5c929  gcc/c-family/c-opts.cc
  2f1a14531d3a436ca9f4aad2812c3898  gcc/c-family/c-pch.cc
  6e53d008a0c4738339154c353a50ff0a  gcc/c-family/c-ppoutput.cc
  cfc760e3be8b3db6dfc8fef49282c0aa  gcc/c-family/c-pragma.cc
--- 3203,3209 ----
  c80c4d6e16ab46358143d22a8a146725  gcc/c-family/c-lex.cc
  c880dc584a0fd4908e5df33dd81137b8  gcc/c-family/c-objc.h
  ff101b60d9a9ba25502bca2f5713b2a3  gcc/c-family/c-omp.cc
! 05345f9a35a73ae6ddf345ea46b3c431  gcc/c-family/c-opts.cc
  2f1a14531d3a436ca9f4aad2812c3898  gcc/c-family/c-pch.cc
  6e53d008a0c4738339154c353a50ff0a  gcc/c-family/c-ppoutput.cc
  cfc760e3be8b3db6dfc8fef49282c0aa  gcc/c-family/c-pragma.cc
*************** fc808567009babd00ebcf49b5b985691  gcc/c-
*** 3220,3248 ****
  48e5431bc15452653e41b37b5c3643e5  gcc/c-family/c-ubsan.cc
  a28f2477c85a17e42026521322b3649a  gcc/c-family/c-ubsan.h
  47faafdef0d76034184e171880096959  gcc/c-family/c-warn.cc
! 10ff950a30d62854a9cd935ec9ab2ec0  gcc/c-family/c.opt
! a977ddda313933a15767f0f354618de3  gcc/c-family/c.opt.urls
  22bd7478421befafcfbd805e3ca373ac  gcc/c-family/cppspec.cc
  801075b0f2da341a38f761b3b7ffd7cd  gcc/c-family/known-headers.cc
  ac5daa4f7d7788a3f68dde7fe7a25316  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 2bb75757f7af1e15961fefc4f823718f  gcc/c/ChangeLog
! b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! f04b63a64831614d7bcad26f94ce6980  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
! 61216a7e2abee97e6045d125dea17652  gcc/c/c-parser.cc
  9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
  e61cde6629f6e6274d475cc7fcb76210  gcc/c/c-tree.h
! 61a63f3efaa44e2a5e75eef234311501  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
  1ed203cdf15f14eb7bfe0eaabf41f503  gcc/c/gimple-parser.cc
--- 3221,3249 ----
  48e5431bc15452653e41b37b5c3643e5  gcc/c-family/c-ubsan.cc
  a28f2477c85a17e42026521322b3649a  gcc/c-family/c-ubsan.h
  47faafdef0d76034184e171880096959  gcc/c-family/c-warn.cc
! 335a53a869a563d211ffcef38a68e771  gcc/c-family/c.opt
! be7f7be2479df6718f5fff59312996f8  gcc/c-family/c.opt.urls
  22bd7478421befafcfbd805e3ca373ac  gcc/c-family/cppspec.cc
  801075b0f2da341a38f761b3b7ffd7cd  gcc/c-family/known-headers.cc
  ac5daa4f7d7788a3f68dde7fe7a25316  gcc/c-family/known-headers.h
  f09c431056b5138e7cfe8376e05de9a6  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! cb675feef43ac3d91e9444f724c88653  gcc/c/ChangeLog
! a1ab86dd79d40d45839823afe798673a  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 7f805e8e0c466145dd81a22642b3c681  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
! 555c43c89f7450adb9e08b5659446683  gcc/c/c-parser.cc
  9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
  9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
  e61cde6629f6e6274d475cc7fcb76210  gcc/c/c-tree.h
! 91d667f3585549e682c0f912d9f59119  gcc/c/c-typeck.cc
  cd371895d730dd64e947066b2e4378f8  gcc/c/config-lang.in
  1bd76a24d1322659f048abe2272a6f34  gcc/c/gccspec.cc
  1ed203cdf15f14eb7bfe0eaabf41f503  gcc/c/gimple-parser.cc
*************** c08ead9db4f4b74ebcdec4329f22b297  gcc/cf
*** 3261,3269 ****
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! 2f34675fb48ec944588297d36eafe342  gcc/cfgexpand.cc
  1ec4e9a88b7aff0e8dc3577ab103b559  gcc/cfgexpand.h
! 748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
  1103c84ad5690bda0bd6e0c71ea46b93  gcc/cfgloop.cc
  5b21e1c152c74de1773a6cfb0c115604  gcc/cfgloop.h
--- 3262,3270 ----
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! b16722a083547061a927ed6271ce6028  gcc/cfgexpand.cc
  1ec4e9a88b7aff0e8dc3577ab103b559  gcc/cfgexpand.h
! 53c30cab6772281953a4a9c1e9c8c33b  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
  1103c84ad5690bda0bd6e0c71ea46b93  gcc/cfgloop.cc
  5b21e1c152c74de1773a6cfb0c115604  gcc/cfgloop.h
*************** b6ce182d41e8aa95a28f65948b55d63e  gcc/co
*** 3464,3470 ****
  b301dc231a69a28202d2b7d79ea75f5d  gcc/config/aarch64/aarch64-tune.md
  586e3b2fd446baa0a6fb8da7c8cdd660  gcc/config/aarch64/aarch64-tuning-flags.def
  a5cfcce7c9dd86a597161f8bde3497bc  gcc/config/aarch64/aarch64-vxworks.h
! 8da114e0722b72ea8d7f30df563f7a25  gcc/config/aarch64/aarch64.cc
  e88bf184a2d9e804f5493fe2a553b3df  gcc/config/aarch64/aarch64.h
  79c93476404c0822020c37da243fdd02  gcc/config/aarch64/aarch64.md
  f4896e5648afc7366568914b0ee0b8e2  gcc/config/aarch64/aarch64.opt
--- 3465,3471 ----
  b301dc231a69a28202d2b7d79ea75f5d  gcc/config/aarch64/aarch64-tune.md
  586e3b2fd446baa0a6fb8da7c8cdd660  gcc/config/aarch64/aarch64-tuning-flags.def
  a5cfcce7c9dd86a597161f8bde3497bc  gcc/config/aarch64/aarch64-vxworks.h
! 9e35b54509e33b9b8c1658a997ada43d  gcc/config/aarch64/aarch64.cc
  e88bf184a2d9e804f5493fe2a553b3df  gcc/config/aarch64/aarch64.h
  79c93476404c0822020c37da243fdd02  gcc/config/aarch64/aarch64.md
  f4896e5648afc7366568914b0ee0b8e2  gcc/config/aarch64/aarch64.opt
*************** d3fb594d11281112ff8d8f304a000c4e  gcc/co
*** 4164,4170 ****
  a4a1a27264871bfba9de0f4fbdb4f3ac  gcc/config/i386/i386-c.cc
  54909bb70e074c14dcf4499a5baedc54  gcc/config/i386/i386-d.cc
  172dcd61afc5800b61ebb688838d9adc  gcc/config/i386/i386-d.h
! 1a5b0eaa2a1d0dc878d31526994b4550  gcc/config/i386/i386-expand.cc
  c9c3969c00808c9b6809fbeab3e4a1d2  gcc/config/i386/i386-expand.h
  e707f156b2c8a06da554994840710970  gcc/config/i386/i386-features.cc
  1ee34fa5f2ae92fd7d48419d8fc529f8  gcc/config/i386/i386-features.h
--- 4165,4171 ----
  a4a1a27264871bfba9de0f4fbdb4f3ac  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
  e707f156b2c8a06da554994840710970  gcc/config/i386/i386-features.cc
  1ee34fa5f2ae92fd7d48419d8fc529f8  gcc/config/i386/i386-features.h
*************** e237c8634d1f5c3ea463cbfea4dc55e6  gcc/co
*** 4482,4488 ****
  76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
  5104f436bd7cfa14669224efef2624e3  gcc/config/m68k/m68k.cc
  fb041be1d836d497907055646a167985  gcc/config/m68k/m68k.h
! 38f76441c0d9b51f0d9eeb7e8c916e59  gcc/config/m68k/m68k.md
  1a76a5cfb488f53d1c15e12fd9d5cc7b  gcc/config/m68k/m68k.opt
  075827f8519c6c5079c5b39aaa1f8d09  gcc/config/m68k/m68k.opt.urls
  cda670c892463bcaa4f341cfef04ad73  gcc/config/m68k/m68kelf.h
--- 4483,4489 ----
  76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
  5104f436bd7cfa14669224efef2624e3  gcc/config/m68k/m68k.cc
  fb041be1d836d497907055646a167985  gcc/config/m68k/m68k.h
! 9bdc513a6ebcc57b29f6d823d4de1384  gcc/config/m68k/m68k.md
  1a76a5cfb488f53d1c15e12fd9d5cc7b  gcc/config/m68k/m68k.opt
  075827f8519c6c5079c5b39aaa1f8d09  gcc/config/m68k/m68k.opt.urls
  cda670c892463bcaa4f341cfef04ad73  gcc/config/m68k/m68kelf.h
*************** ede4cffb79f5496c4063328b9d126f26  gcc/co
*** 4831,4837 ****
  cd1b48d66fffc5f91a26b160085fbd1e  gcc/config/pa/pa-opts.h
  596c088c93babeea4848ba2aed2eb6b0  gcc/config/pa/pa-protos.h
  87b5ccca0556ed085f25a446d6ab4051  gcc/config/pa/pa.cc
! f1b444334b18e47c3fd2604c6594c45d  gcc/config/pa/pa.h
  5ad34ac7732965ac669deb50e30e698d  gcc/config/pa/pa.md
  3fe76eeefa8fabdfab333fb43efecaa8  gcc/config/pa/pa.opt
  933c64daea7344878218813a7a070f31  gcc/config/pa/pa.opt.urls
--- 4832,4838 ----
  cd1b48d66fffc5f91a26b160085fbd1e  gcc/config/pa/pa-opts.h
  596c088c93babeea4848ba2aed2eb6b0  gcc/config/pa/pa-protos.h
  87b5ccca0556ed085f25a446d6ab4051  gcc/config/pa/pa.cc
! 61506e45bb13eed5656f941078761f63  gcc/config/pa/pa.h
  5ad34ac7732965ac669deb50e30e698d  gcc/config/pa/pa.md
  3fe76eeefa8fabdfab333fb43efecaa8  gcc/config/pa/pa.opt
  933c64daea7344878218813a7a070f31  gcc/config/pa/pa.opt.urls
*************** ccf120397e978f8cd4ed98cbe2c0d4f5  gcc/co
*** 4884,4892 ****
  96a9b8701199ede652cadbcdeec423d7  gcc/config/riscv/andes.md
  7444da2915b734a807ab2b707fe0fe35  gcc/config/riscv/andes_vector.h
  3d4ef2c5571dbf0e4bb86d09917f7c07  gcc/config/riscv/arch-canonicalize
! d69d6af590654553d70a6d215ce48fc9  gcc/config/riscv/autovec-opt.md
  0a8d3bb5c92b40519d869bae882cf263  gcc/config/riscv/autovec.md
! 137855953782419214b0244ad3c8766e  gcc/config/riscv/bitmanip.md
  3d4917c0a2efee97aaca242060652e02  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
  d404c19d5b1a2aca0a73917bb692bd96  gcc/config/riscv/corev.md
--- 4885,4893 ----
  96a9b8701199ede652cadbcdeec423d7  gcc/config/riscv/andes.md
  7444da2915b734a807ab2b707fe0fe35  gcc/config/riscv/andes_vector.h
  3d4ef2c5571dbf0e4bb86d09917f7c07  gcc/config/riscv/arch-canonicalize
! 35612888ad4b2a7ca2b8922337029805  gcc/config/riscv/autovec-opt.md
  0a8d3bb5c92b40519d869bae882cf263  gcc/config/riscv/autovec.md
! e000ae44a5456f5afdaafc8accc7f582  gcc/config/riscv/bitmanip.md
  3d4917c0a2efee97aaca242060652e02  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
  d404c19d5b1a2aca0a73917bb692bd96  gcc/config/riscv/corev.md
*************** bffa0caedd7144aff55c80a16431d1a1  gcc/co
*** 4910,4916 ****
  80e8994ee9e6abf380e68aca6443d157  gcc/config/riscv/peephole.md
  a3d3fa9142d4e2ed34ead146941c574a  gcc/config/riscv/pic.md
  674baa66306b2b08e1b80995759f5381  gcc/config/riscv/pipeline-checker
! a822bb3caeba5677859211738b47e9a7  gcc/config/riscv/predicates.md
  fcde47e773f1cfb9f582a606e2890c72  gcc/config/riscv/riscv-avlprop.cc
  179d92544e7a65f0ccf206e876026744  gcc/config/riscv/riscv-bclr-lowest-set-bit.cc
  e54a2d33c6fb9bb0381889dad6fa71d8  gcc/config/riscv/riscv-builtins.cc
--- 4911,4917 ----
  80e8994ee9e6abf380e68aca6443d157  gcc/config/riscv/peephole.md
  a3d3fa9142d4e2ed34ead146941c574a  gcc/config/riscv/pic.md
  674baa66306b2b08e1b80995759f5381  gcc/config/riscv/pipeline-checker
! 89b6aff0e8d9684c1bb44093123c9eb5  gcc/config/riscv/predicates.md
  fcde47e773f1cfb9f582a606e2890c72  gcc/config/riscv/riscv-avlprop.cc
  179d92544e7a65f0ccf206e876026744  gcc/config/riscv/riscv-bclr-lowest-set-bit.cc
  e54a2d33c6fb9bb0381889dad6fa71d8  gcc/config/riscv/riscv-builtins.cc
*************** b1bc6d82a24b7b0e658a43956a37419c  gcc/co
*** 4934,4940 ****
  9638ea683767d52ade2e23fff486b0a7  gcc/config/riscv/riscv-opts.h
  c5393897179939c1b5af9631e66d78a8  gcc/config/riscv/riscv-passes.def
  121d0828b2622389b84f15f8664c88d0  gcc/config/riscv/riscv-profiles.def
! 2cbcf303a04aaea69989c4b7e91d42a4  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  003d5626ce3adcac7ca55401c7dec2bc  gcc/config/riscv/riscv-selftests.cc
  da4e034d23a8f2754b1dfce0122f286e  gcc/config/riscv/riscv-shorten-memrefs.cc
--- 4935,4941 ----
  9638ea683767d52ade2e23fff486b0a7  gcc/config/riscv/riscv-opts.h
  c5393897179939c1b5af9631e66d78a8  gcc/config/riscv/riscv-passes.def
  121d0828b2622389b84f15f8664c88d0  gcc/config/riscv/riscv-profiles.def
! 3853f7fa35624ed2ca9fa7044f279ea0  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  003d5626ce3adcac7ca55401c7dec2bc  gcc/config/riscv/riscv-selftests.cc
  da4e034d23a8f2754b1dfce0122f286e  gcc/config/riscv/riscv-shorten-memrefs.cc
*************** da4e034d23a8f2754b1dfce0122f286e  gcc/co
*** 4942,4948 ****
  f565a42da3474d73faf1ea727e2d7dcb  gcc/config/riscv/riscv-string.cc
  3b52301e3425e6de33a2436af4de6bd8  gcc/config/riscv/riscv-subset.h
  94d10cea518da6cdd8058f2f6f5f4290  gcc/config/riscv/riscv-target-attr.cc
! 9f2abb48bd2f7c8491bf9617de5bde37  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  c5f3161dedd668dfb126ffb191cfb236  gcc/config/riscv/riscv-vect-permconst.cc
  1d781df8fdb7dc0f6e332b3fe767ad85  gcc/config/riscv/riscv-vector-builtins-bases.cc
--- 4943,4949 ----
  f565a42da3474d73faf1ea727e2d7dcb  gcc/config/riscv/riscv-string.cc
  3b52301e3425e6de33a2436af4de6bd8  gcc/config/riscv/riscv-subset.h
  94d10cea518da6cdd8058f2f6f5f4290  gcc/config/riscv/riscv-target-attr.cc
! 9fb8c7ddb453e11ee3f57211ef14e0ab  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  c5f3161dedd668dfb126ffb191cfb236  gcc/config/riscv/riscv-vect-permconst.cc
  1d781df8fdb7dc0f6e332b3fe767ad85  gcc/config/riscv/riscv-vector-builtins-bases.cc
*************** dba94786c1a18e3f5fbcca2b5c0af496  gcc/co
*** 4957,4968 ****
  a8fdfe0455fce7cebbb65a7e70831d8a  gcc/config/riscv/riscv-vector-costs.cc
  2a441fb15ed4d774924fe163f29ccf7a  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
! 5a1dc434073ed565843a91456f836a9a  gcc/config/riscv/riscv-vsetvl.cc
  d120ed6eb2847b636271b3a1ef82ecbf  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 57acd43dc219753ed2e416ac965343ec  gcc/config/riscv/riscv.cc
  0766a701a8c90815575fae86f92cc4a6  gcc/config/riscv/riscv.h
! 3ed7ad3eba485c81e37e28497a993f02  gcc/config/riscv/riscv.md
  fec1c87bba727131a45d4ec4a9ae5490  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
--- 4958,4969 ----
  a8fdfe0455fce7cebbb65a7e70831d8a  gcc/config/riscv/riscv-vector-costs.cc
  2a441fb15ed4d774924fe163f29ccf7a  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
! 43a9d94b35a051ed390b5e2c74432d85  gcc/config/riscv/riscv-vsetvl.cc
  d120ed6eb2847b636271b3a1ef82ecbf  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 195c2ed3768a25792e6f5571e6d88b4b  gcc/config/riscv/riscv.cc
  0766a701a8c90815575fae86f92cc4a6  gcc/config/riscv/riscv.h
! b2089e614a1709b876d244929d1ba06e  gcc/config/riscv/riscv.md
  fec1c87bba727131a45d4ec4a9ae5490  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
*************** e20fad8bff9c459aaef3ea80a54e1973  gcc/co
*** 5495,5501 ****
  1cde9c01b4d75d9d8e8eccd725a9e44f  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! a131b476a448e7a93fb050eafcf9127b  gcc/configure
  b488223a1d9ac4b3b080de06f3d8a5f1  gcc/configure.ac
  ec3aa966ca3fe9c6f84d4378160541b6  gcc/context.cc
  d1bde52b8dee0c0c5506d7e320b1bb61  gcc/context.h
--- 5496,5502 ----
  1cde9c01b4d75d9d8e8eccd725a9e44f  gcc/config/xtensa/xtensa.md
  f0452ea712955ce21c9c149136850780  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! d5216295d31c6fe4ea4256f2dbfe5eb1  gcc/configure
  b488223a1d9ac4b3b080de06f3d8a5f1  gcc/configure.ac
  ec3aa966ca3fe9c6f84d4378160541b6  gcc/context.cc
  d1bde52b8dee0c0c5506d7e320b1bb61  gcc/context.h
*************** fa062fdcbed6412a676fa477d87ba334  gcc/co
*** 5506,5512 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  02796caeaa2f14f72dc3c9c23cc97dfc  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 71d4d758f6466059e79bce627a5642e2  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5507,5513 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  02796caeaa2f14f72dc3c9c23cc97dfc  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 532db7557043369839b04e9f7e0bb303  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp
*** 5541,5572 ****
  127c45265cd7f72c5d2ea0259d4bdb1e  gcc/cp/ChangeLog-2024
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 2315f072c416e98144559bbdb5312c21  gcc/cp/Make-lang.in
! adb6bbfff49370bef13726dd9afc81a5  gcc/cp/call.cc
  fce8de27014c109814b3f69be6a5d4f6  gcc/cp/cfns.gperf
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  a096f968454d0245d006f9f559a56a08  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! 5ec243f8828ba1d004801071dcfd04be  gcc/cp/constexpr.cc
  d6cbf9f4441b7af5436e73a63106b11b  gcc/cp/constraint.cc
  b4452de3b42a36f42cdd92b905d201b6  gcc/cp/contracts.cc
! 1e70d5eb4e7210b177ea2f5fa77983b8  gcc/cp/contracts.h
  de31e99c416f73448d9f45f50a7d4823  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
! 04b058bd0b72e2fa7892f049b467f0c2  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  1ec19d66166f9323ce2dd00328ed7b3f  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
! 664886e4e5cbdaedb4f5cbb6105a95ec  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  b7ae95468b0150bbe2b3cba351e96a2c  gcc/cp/cvt.cc
  8e454e3f7746836df899a46698f5af3e  gcc/cp/cxx-pretty-print.cc
  2d4d94b8a1d1c1d26764ae93a8039dda  gcc/cp/cxx-pretty-print.h
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
! 2f277fdf1df76ba8b8b4b40b0e4a6ba7  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  ca53d780eac3ddcf2cbaa42864f7d234  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
--- 5542,5573 ----
  127c45265cd7f72c5d2ea0259d4bdb1e  gcc/cp/ChangeLog-2024
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! b4ef117247d06b2cf19a0e42dc19459c  gcc/cp/Make-lang.in
! 0621b9fb358f60661d55b20441d48964  gcc/cp/call.cc
  fce8de27014c109814b3f69be6a5d4f6  gcc/cp/cfns.gperf
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  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
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
! 616baed1df4afd900234fcdb83350ad4  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
  0083c32822e7d365ab0074f1807e8679  gcc/cp/cp-name-hint.h
  1ec19d66166f9323ce2dd00328ed7b3f  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
! 3bb7a605991a4be73f0ce8286c6a7345  gcc/cp/cp-tree.h
  e5ccdda9d62d96ac397910d0fa391b0a  gcc/cp/cp-ubsan.cc
  b7ae95468b0150bbe2b3cba351e96a2c  gcc/cp/cvt.cc
  8e454e3f7746836df899a46698f5af3e  gcc/cp/cxx-pretty-print.cc
  2d4d94b8a1d1c1d26764ae93a8039dda  gcc/cp/cxx-pretty-print.h
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
! be185c12514f447f24a946d624f80df4  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  ca53d780eac3ddcf2cbaa42864f7d234  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
*************** aaf76a9b03fd0532d2904aef004fd66a  gcc/cp
*** 5586,5606 ****
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  0456b59fb105d3d30371131d063a685a  gcc/cp/method.cc
! a767d667b481fd0940518a1948ec6e5c  gcc/cp/module.cc
! 552b0381f070c0ad8d92d57d098cd50f  gcc/cp/name-lookup.cc
! 5a9aeceb329cf9c3d8c374b77f39f2b4  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 4e247010b8aa821446c1f2f62b45424d  gcc/cp/parser.cc
  db6ae85b922989f89eda229cb29e4690  gcc/cp/parser.h
! 820e2cfdf3f77a5c35a0a5e040a4bafd  gcc/cp/pt.cc
  b606903e35fe6806362fe4eee7a89fef  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  9c5477f737d2c390510c3fe72454f657  gcc/cp/search.cc
! abdcc013c555522f91c53ed96690dbbe  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  2425db76c32085977eff047c982cebab  gcc/cp/std-name-hint.h
! ee9192c187b31cc5519ead8ef2a2ed74  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  1c4f49035de5b59ea8159ca5c1905b00  gcc/cp/typeck.cc
  d5322228a4b4ea22ae20c897e9baaf69  gcc/cp/typeck2.cc
--- 5587,5607 ----
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  0456b59fb105d3d30371131d063a685a  gcc/cp/method.cc
! 99fc840bb484d76ff5ecdbf7db06df63  gcc/cp/module.cc
! 2c1d1d6d86cb3c91a500079ed3f516ec  gcc/cp/name-lookup.cc
! 6fdcf6a217e83566683fbec935637de3  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 6a0ede3fc439391c637b23406f3f8518  gcc/cp/parser.cc
  db6ae85b922989f89eda229cb29e4690  gcc/cp/parser.h
! 2d52534d7fffdd8802c034666db24d17  gcc/cp/pt.cc
  b606903e35fe6806362fe4eee7a89fef  gcc/cp/ptree.cc
  ee1ddf1e1b9554bb1a10109ce8c6dee5  gcc/cp/rtti.cc
  9c5477f737d2c390510c3fe72454f657  gcc/cp/search.cc
! 48f59f3d4ab2bf19a14679f3ecd006d4  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  2425db76c32085977eff047c982cebab  gcc/cp/std-name-hint.h
! 833a40a6ddd5d3f34e4c5c650a88d75e  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  1c4f49035de5b59ea8159ca5c1905b00  gcc/cp/typeck.cc
  d5322228a4b4ea22ae20c897e9baaf69  gcc/cp/typeck2.cc
*************** f3b69e3c00a503b61ca298aef10ad690  gcc/di
*** 5934,5941 ****
  aa4ae9b850b3b556ebb4ac4ba4849e4b  gcc/diagnostics/option-id-manager.h
  ee46d9f24ee418300e1cb8af08ce0e7c  gcc/diagnostics/option-id.h
  cc65ae2ee101a218fd768c2fee83af6e  gcc/diagnostics/output-file.h
! b0ff42bf6006919b540d993e76ef7a74  gcc/diagnostics/output-spec.cc
! 3eec925c74669a3ab2099a0428b64b64  gcc/diagnostics/output-spec.h
  f804348b86b5dda4ae2b27490ef6174a  gcc/diagnostics/paths-output.cc
  51d4d6e54884c6e6761d5dc2cdffa683  gcc/diagnostics/paths.cc
  ab20f8a7e64efd9ea6670e6447014d6f  gcc/diagnostics/paths.h
--- 5935,5942 ----
  aa4ae9b850b3b556ebb4ac4ba4849e4b  gcc/diagnostics/option-id-manager.h
  ee46d9f24ee418300e1cb8af08ce0e7c  gcc/diagnostics/option-id.h
  cc65ae2ee101a218fd768c2fee83af6e  gcc/diagnostics/output-file.h
! a50fe2195104314d2f4d51bccbcda170  gcc/diagnostics/output-spec.cc
! 3c1b8a8328a8a02562ad8a353c71a1c6  gcc/diagnostics/output-spec.h
  f804348b86b5dda4ae2b27490ef6174a  gcc/diagnostics/paths-output.cc
  51d4d6e54884c6e6761d5dc2cdffa683  gcc/diagnostics/paths.cc
  ab20f8a7e64efd9ea6670e6447014d6f  gcc/diagnostics/paths.h
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 6000,6006 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  840715392034007a3ef3fdebf22e2781  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 5a6ae4cd7fbc3d983bb9ae56a37630fb  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  8783f1b0b6c204d4417b00f3b772beea  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6001,6007 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  840715392034007a3ef3fdebf22e2781  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 74c6a99ad1205e8b37ff28460ef52dc6  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  8783f1b0b6c204d4417b00f3b772beea  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** c98feb0a43876ed3ef2fca3c8448e8f8  gcc/do
*** 6042,6048 ****
  8836b7001f069e8dead6a4643108258b  gcc/doc/objc.texi
  9673b2a6dd62d5ac08afb00421e98cdb  gcc/doc/optinfo.texi
  a7117c4fee8c54e338b967886f3b2dcb  gcc/doc/options.texi
! 0b160a08f8636dcacda878c66ab8bee0  gcc/doc/passes.texi
  2cd0efa7c8a7f870d4a0c0b2eed69798  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
--- 6043,6049 ----
  8836b7001f069e8dead6a4643108258b  gcc/doc/objc.texi
  9673b2a6dd62d5ac08afb00421e98cdb  gcc/doc/optinfo.texi
  a7117c4fee8c54e338b967886f3b2dcb  gcc/doc/options.texi
! 2f0411fc127aabffad4e83988461d66f  gcc/doc/passes.texi
  2cd0efa7c8a7f870d4a0c0b2eed69798  gcc/doc/plugins.texi
  0603ab3940871fa2a55ddbd7c2719eb7  gcc/doc/poly-int.texi
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
*************** a44260feebffd50db9ea51aed431d69c  gcc/do
*** 6053,6060 ****
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
  7ace68f81059516a6c2c6cc8cd9fb830  gcc/doc/sourcebuild.texi
  c6eb228a6da301194f3963b6d42729e7  gcc/doc/standards.texi
! 297bbf0951b15500e8c6fef4e402598b  gcc/doc/tm.texi
! e2ce87f15ada522a36af78d6d6404607  gcc/doc/tm.texi.in
  c4168f9f01adf4dd8adc647c04107142  gcc/doc/tree-ssa.texi
  5f62752970e47d350c8cbce47123d1cf  gcc/doc/trouble.texi
  7f44041407f24d2851135ae497914475  gcc/doc/ux.texi
--- 6054,6061 ----
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
  7ace68f81059516a6c2c6cc8cd9fb830  gcc/doc/sourcebuild.texi
  c6eb228a6da301194f3963b6d42729e7  gcc/doc/standards.texi
! 1fda2582d609f2b6fad936ea4813b8e9  gcc/doc/tm.texi
! c6b013cc71979654028e484ab8169159  gcc/doc/tm.texi.in
  c4168f9f01adf4dd8adc647c04107142  gcc/doc/tree-ssa.texi
  5f62752970e47d350c8cbce47123d1cf  gcc/doc/trouble.texi
  7f44041407f24d2851135ae497914475  gcc/doc/ux.texi
*************** b0756a8dbbe0b39051dfda2c5e26663f  gcc/fi
*** 6106,6119 ****
  77b50b9533828ae8b124e191cc55b74f  gcc/final.cc
  28cc3b30502fab34fffa55fd82454e16  gcc/fixed-value.cc
  7852b04b41add4ad6cc7c7c86cb82658  gcc/fixed-value.h
! a4b4da266f5ffee8465a80d9ffa6c460  gcc/flag-types.h
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  ada0afb884a142f8214291990679be13  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! ab65c11488de8f259592eef4bca9338b  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! f55697b1e64055ed7a57b5ceb6b99113  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6107,6120 ----
  77b50b9533828ae8b124e191cc55b74f  gcc/final.cc
  28cc3b30502fab34fffa55fd82454e16  gcc/fixed-value.cc
  7852b04b41add4ad6cc7c7c86cb82658  gcc/fixed-value.h
! d752cd9a8d46470c7f60cd7fc3ff2cf4  gcc/flag-types.h
  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
! 61b39c1b49b43d6c235445b46408044f  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** aed3aedb6378a970055dff9e11eedc2d  gcc/fo
*** 6154,6160 ****
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! 0ef25697737e8de23dd152e01f1aa639  gcc/fortran/decl.cc
  c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9f708de69558a334a8fec77d40a2a376  gcc/fortran/dump-parse-tree.cc
--- 6155,6161 ----
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! 4cb5d9c1a2b6072a0e9cf564a85c3a79  gcc/fortran/decl.cc
  c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9f708de69558a334a8fec77d40a2a376  gcc/fortran/dump-parse-tree.cc
*************** b3beb0a8e06a71d205d3639a1bc35738  gcc/fo
*** 6164,6170 ****
  7ff99bd8794c2d5f2533f516ec00306b  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 980c99b15e20bd5ee317fceaa206705f  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  e4fe6ce0303cd182ebd328bdb0ae5743  gcc/fortran/interface.cc
--- 6165,6171 ----
  7ff99bd8794c2d5f2533f516ec00306b  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 408b68fb2890abc4b9a25b64a53afa83  gcc/fortran/gfortran.h
  d29bb6813221f46b4cde9df77292c412  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  e4fe6ce0303cd182ebd328bdb0ae5743  gcc/fortran/interface.cc
*************** d2a28ef98f6f78d1608fb52204e013a5  gcc/fo
*** 6186,6198 ****
  672e1d4135f72ff6f083582ec84123b1  gcc/fortran/matchexp.cc
  763c37f838e32f5ed8ad600157a0d951  gcc/fortran/mathbuiltins.def
  6e89e2e347d7f6e1576cbda0e958b5bd  gcc/fortran/misc.cc
! cc253aa18378a960466507b449eb64b6  gcc/fortran/module.cc
  8da1b859b4dc259b551a9531ad3eaa9f  gcc/fortran/openmp.cc
  2ac54dd304f0494202ed99c637998d1d  gcc/fortran/options.cc
  44ee980cc04645c25872621b20fc36fa  gcc/fortran/parse.cc
  c1b40e866a8bbe611aa65278fe2508d3  gcc/fortran/parse.h
  d1e81eada4426f36095f17808a571a26  gcc/fortran/primary.cc
! 759b86ece024d31144f0fc291f135f0d  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  71190056d6f36d3d43d4b6ed27f23032  gcc/fortran/simplify.cc
--- 6187,6199 ----
  672e1d4135f72ff6f083582ec84123b1  gcc/fortran/matchexp.cc
  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
  d1e81eada4426f36095f17808a571a26  gcc/fortran/primary.cc
! d2abb40d5ca8a79239a69a59556ac116  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  71190056d6f36d3d43d4b6ed27f23032  gcc/fortran/simplify.cc
*************** ebfc538fb0470443c527273e8a50c2a1  gcc/fo
*** 6200,6216 ****
  72c617ddd58e2640f57a4c4a8f0fe1f0  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
  50451f5a575ab606948f8e72d8cc4721  gcc/fortran/target-memory.h
! 27fbaa6ecc9d498ac188da6586c2cb1b  gcc/fortran/trans-array.cc
  682d93b7e921d709d88b7e5219a69d53  gcc/fortran/trans-array.h
  dfe1e1950e068389ed73663e9a11ad88  gcc/fortran/trans-common.cc
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
! 75bc600054a869660190e6e454119734  gcc/fortran/trans-decl.cc
  f794cc4abf2da4754b43e56a62948d9a  gcc/fortran/trans-expr.cc
  75dbdc3d489814fc18082a069cd7c3ab  gcc/fortran/trans-intrinsic.cc
! 4a091b0b546257101e406582ece724f7  gcc/fortran/trans-io.cc
  27df041e4caff610df844e7a22e291e3  gcc/fortran/trans-openmp.cc
! ef3436c60285865c7e4a611b65ebca7d  gcc/fortran/trans-stmt.cc
  9caf8a2f93e6cf5e2a567a3aa18f957c  gcc/fortran/trans-stmt.h
  3f1fc6806b5968b5a63f8bed8b3b4bcf  gcc/fortran/trans-types.cc
  422959ab20fd75df3766a03597227fd2  gcc/fortran/trans-types.h
--- 6201,6217 ----
  72c617ddd58e2640f57a4c4a8f0fe1f0  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
  50451f5a575ab606948f8e72d8cc4721  gcc/fortran/target-memory.h
! a9f049773044deb1f614fe85ae6aa5f8  gcc/fortran/trans-array.cc
  682d93b7e921d709d88b7e5219a69d53  gcc/fortran/trans-array.h
  dfe1e1950e068389ed73663e9a11ad88  gcc/fortran/trans-common.cc
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
! 4676a3ce7cc7bd4ad728303adf614548  gcc/fortran/trans-decl.cc
  f794cc4abf2da4754b43e56a62948d9a  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
  9caf8a2f93e6cf5e2a567a3aa18f957c  gcc/fortran/trans-stmt.h
  3f1fc6806b5968b5a63f8bed8b3b4bcf  gcc/fortran/trans-types.cc
  422959ab20fd75df3766a03597227fd2  gcc/fortran/trans-types.h
*************** da09d1e31d3994eb3d6958074d7b7ce5  gcc/gi
*** 6304,6315 ****
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 4f4e9622ad39e3fc9553933d22bc28e2  gcc/gimple-fold.cc
  86c6a1d00a802fd45372d34d131819e5  gcc/gimple-fold.h
  43ad47e8cd99d438040cf6937a3cbe5e  gcc/gimple-harden-conditionals.cc
  78586a1c0ce6834da91809b77f98c6d7  gcc/gimple-harden-control-flow.cc
  46c40ebab120d543476a2e46ac063bba  gcc/gimple-if-to-switch.cc
! c8b58b1fdd336324d189a3904520ad48  gcc/gimple-isel.cc
  319a859d4c4eb6948afa93d70a5c97ec  gcc/gimple-iterator.cc
  a0c225f8a1deb41873e5984a058b0f45  gcc/gimple-iterator.h
  4ab554af77b78b1a5d2948c9f0632680  gcc/gimple-laddress.cc
--- 6305,6316 ----
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 6330319c643c8af2a98021fa62e89797  gcc/gimple-fold.cc
  86c6a1d00a802fd45372d34d131819e5  gcc/gimple-fold.h
  43ad47e8cd99d438040cf6937a3cbe5e  gcc/gimple-harden-conditionals.cc
  78586a1c0ce6834da91809b77f98c6d7  gcc/gimple-harden-control-flow.cc
  46c40ebab120d543476a2e46ac063bba  gcc/gimple-if-to-switch.cc
! cf24f4f4b153671619afe0af59496130  gcc/gimple-isel.cc
  319a859d4c4eb6948afa93d70a5c97ec  gcc/gimple-iterator.cc
  a0c225f8a1deb41873e5984a058b0f45  gcc/gimple-iterator.h
  4ab554af77b78b1a5d2948c9f0632680  gcc/gimple-laddress.cc
*************** a0c225f8a1deb41873e5984a058b0f45  gcc/gi
*** 6318,6324 ****
  9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
  de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
  a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! eef0e9bddb2d1be190859dce14b259a2  gcc/gimple-lower-bitint.cc
  bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
  0b6c89d0a615bf5016f4e84ab164a6ca  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
--- 6319,6325 ----
  9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
  de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
  a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! 86fba3fcc6b99168ccf7fe67ff0af08c  gcc/gimple-lower-bitint.cc
  bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
  0b6c89d0a615bf5016f4e84ab164a6ca  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
*************** b5b13ba4f92b3ef5294cee911b571925  gcc/gi
*** 6371,6380 ****
  b5ed1ca4ba5f0f56cd7e3ec1d2a1d01f  gcc/gimple-warn-recursion.cc
  88214ebd3ca28a6fdc7fdacd301ce526  gcc/gimple.cc
  ed9c9a9b8efbcca1621cb38f6a7f739b  gcc/gimple.def
! dfd0fd15cae5add54db799ed747559ef  gcc/gimple.h
  69057cf60d71bd04ced5e457138629e1  gcc/gimplify-me.cc
  84814cb09300f3db388dd0d22133ccb4  gcc/gimplify-me.h
! 44250f50044d525a4039d2899bccb0db  gcc/gimplify.cc
  08a911f7f8b65840f9b57e0e76a2061c  gcc/gimplify.h
  ba3039c0ed9645080c52c0d4bc46096f  gcc/gimplify_reg_info.h
  7df17d7c2bcdff0a474d633a02195544  gcc/ginclude/float.h
--- 6372,6381 ----
  b5ed1ca4ba5f0f56cd7e3ec1d2a1d01f  gcc/gimple-warn-recursion.cc
  88214ebd3ca28a6fdc7fdacd301ce526  gcc/gimple.cc
  ed9c9a9b8efbcca1621cb38f6a7f739b  gcc/gimple.def
! be633b87f7ece32432e172828e9af9cd  gcc/gimple.h
  69057cf60d71bd04ced5e457138629e1  gcc/gimplify-me.cc
  84814cb09300f3db388dd0d22133ccb4  gcc/gimplify-me.h
! bdc0fe03a3523bc1412d967a0232373c  gcc/gimplify.cc
  08a911f7f8b65840f9b57e0e76a2061c  gcc/gimplify.h
  ba3039c0ed9645080c52c0d4bc46096f  gcc/gimplify_reg_info.h
  7df17d7c2bcdff0a474d633a02195544  gcc/ginclude/float.h
*************** deb111e00b2b07aa631595045bce5003  gcc/in
*** 6518,6524 ****
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
  4e41bf538f5d853048a656f7d8d98e1b  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
! 273f5e1e33117606bfaa57f2e2899b15  gcc/ipa-devirt.cc
  c0759314923df2564166a8b18ecf04c9  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
  a3882f8a9c03be47eb0deee0bd27e04d  gcc/ipa-free-lang-data.cc
--- 6519,6525 ----
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
  4e41bf538f5d853048a656f7d8d98e1b  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
! ce2190c4f151ec8c25f970da83a9a696  gcc/ipa-devirt.cc
  c0759314923df2564166a8b18ecf04c9  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
  a3882f8a9c03be47eb0deee0bd27e04d  gcc/ipa-free-lang-data.cc
*************** e1e331896b86db8a2281657bbb21ac72  gcc/ip
*** 6536,6555 ****
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
  3f72461d9982b691967c88700eb6d7b8  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
! 3d22f7330dddea6a398c36c252764f8e  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
  9c809f4fa05d60a2694cc5b392ba2ce1  gcc/ipa-polymorphic-call.cc
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
! 62c7e947bcc30f9c3e539b08bba712d5  gcc/ipa-profile.cc
! be8b91a88b033749209c11844ab4ebd7  gcc/ipa-prop.cc
  444b35215f1c30938a9c7b34c8f51b7e  gcc/ipa-prop.h
  1c585ae593227742840d2cccb610d475  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
  ee6c4ff9a86c5d0a68fa41c8da2b5c6f  gcc/ipa-ref.h
  e02101954d14c2f0b6a7667db7690ade  gcc/ipa-reference.cc
  d4930f12a999a28238b013539b631f2f  gcc/ipa-reference.h
! 6a30eb3fed6340a45b517d7507d8f96a  gcc/ipa-split.cc
  128fc9f66e07a64e6ebecfe0e1f78765  gcc/ipa-sra.cc
  1277e7fb1c75f935550a926b823894bf  gcc/ipa-strub.cc
  7441ae66ef417a1eed323b8c98c8e589  gcc/ipa-strub.h
--- 6537,6556 ----
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
  3f72461d9982b691967c88700eb6d7b8  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
! 1b41b1a1fceba6ae0868e983951245ef  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
  9c809f4fa05d60a2694cc5b392ba2ce1  gcc/ipa-polymorphic-call.cc
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
! cb4c87b016a31121941a3b4b6060d470  gcc/ipa-profile.cc
! 1fc217369c2f6ab3ed272a2d0bd95bd9  gcc/ipa-prop.cc
  444b35215f1c30938a9c7b34c8f51b7e  gcc/ipa-prop.h
  1c585ae593227742840d2cccb610d475  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
  ee6c4ff9a86c5d0a68fa41c8da2b5c6f  gcc/ipa-ref.h
  e02101954d14c2f0b6a7667db7690ade  gcc/ipa-reference.cc
  d4930f12a999a28238b013539b631f2f  gcc/ipa-reference.h
! 6e25e7ad90c3ddb398c67560a2eddd86  gcc/ipa-split.cc
  128fc9f66e07a64e6ebecfe0e1f78765  gcc/ipa-sra.cc
  1277e7fb1c75f935550a926b823894bf  gcc/ipa-strub.cc
  7441ae66ef417a1eed323b8c98c8e589  gcc/ipa-strub.h
*************** bdf8ae675ae5000d854fe2874116b2f8  gcc/lc
*** 6671,6677 ****
  027270d0be504f25a7efb49e1e3179bb  gcc/libfuncs.h
  4e1a358f06cfcd4fd7934618b4e0269f  gcc/libgdiagnostics++.h
  a6416f2352ff08b056cfe7e686e72530  gcc/libgdiagnostics-private.h
! df6ad90b823dccc3a5c9b6349504cdbe  gcc/libgdiagnostics.cc
  9a7e8185546f10794b5df84097aab2d1  gcc/libgdiagnostics.h
  5782c76c63f9b197be394bad361b8824  gcc/libgdiagnostics.map
  c9172b932523f381ffa415f3e81f4517  gcc/libsarifreplay.cc
--- 6672,6678 ----
  027270d0be504f25a7efb49e1e3179bb  gcc/libfuncs.h
  4e1a358f06cfcd4fd7934618b4e0269f  gcc/libgdiagnostics++.h
  a6416f2352ff08b056cfe7e686e72530  gcc/libgdiagnostics-private.h
! 2e7964a44868463b04fbfad9a5e1aeaa  gcc/libgdiagnostics.cc
  9a7e8185546f10794b5df84097aab2d1  gcc/libgdiagnostics.h
  5782c76c63f9b197be394bad361b8824  gcc/libgdiagnostics.map
  c9172b932523f381ffa415f3e81f4517  gcc/libsarifreplay.cc
*************** f2a9985147f87fd566d4ae2dd8fceabc  gcc/lt
*** 6714,6721 ****
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  89440b8d71857e40c8fa12dd9aa25491  gcc/lto-streamer.h
  4b39d90bb231d099b0fc04c8ded93cee  gcc/lto-wrapper.cc
! 480bc7be0cd5b12023154916672aeb69  gcc/lto/ChangeLog
! e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
  7ed5b0c9457d595938a1b66fb9ae7fc1  gcc/lto/config-lang.in
--- 6715,6722 ----
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  89440b8d71857e40c8fa12dd9aa25491  gcc/lto-streamer.h
  4b39d90bb231d099b0fc04c8ded93cee  gcc/lto-wrapper.cc
! ce7bbfb301c21204caffe703bc7aeb78  gcc/lto/ChangeLog
! 3e7816807401da2506930719e6dc8b3d  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
  7ed5b0c9457d595938a1b66fb9ae7fc1  gcc/lto/config-lang.in
*************** e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lt
*** 6738,6744 ****
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! d866449e6a8ceeea3986d37c7be9071f  gcc/m2/ChangeLog
  1d2d898532b0cf3b1ff9cd13a86f1e39  gcc/m2/Make-lang.in
  e212443a3231afc28440b22d94debe50  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
--- 6739,6745 ----
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! b2409f42cb46051487ac6900c3b711bc  gcc/m2/ChangeLog
  1d2d898532b0cf3b1ff9cd13a86f1e39  gcc/m2/Make-lang.in
  e212443a3231afc28440b22d94debe50  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
*************** f2f6ad340399124ac1dd7765e1b675a5  gcc/m2
*** 6795,6801 ****
  9ef5089ff86e26a81035ec039bdc6650  gcc/m2/gm2-compiler/M2FileName.def
  742f1dc44d1ac7917fcbaf8704bdb395  gcc/m2/gm2-compiler/M2FileName.mod
  b3c98d490dd50cdd4e4de316e0deca54  gcc/m2/gm2-compiler/M2GCCDeclare.def
! e8046a3814c459524cf33280bc54d9c8  gcc/m2/gm2-compiler/M2GCCDeclare.mod
  3d68446acff53fae7c5d6c425f0cf67e  gcc/m2/gm2-compiler/M2GenGCC.def
  441f4ce11c340f2dca0ccadf5181f118  gcc/m2/gm2-compiler/M2GenGCC.mod
  273c623529a07acbf2f80b58e2d7567e  gcc/m2/gm2-compiler/M2Graph.def
--- 6796,6802 ----
  9ef5089ff86e26a81035ec039bdc6650  gcc/m2/gm2-compiler/M2FileName.def
  742f1dc44d1ac7917fcbaf8704bdb395  gcc/m2/gm2-compiler/M2FileName.mod
  b3c98d490dd50cdd4e4de316e0deca54  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 441abe69adf53ca35fff0056c5a9454b  gcc/m2/gm2-compiler/M2GCCDeclare.mod
  3d68446acff53fae7c5d6c425f0cf67e  gcc/m2/gm2-compiler/M2GenGCC.def
  441f4ce11c340f2dca0ccadf5181f118  gcc/m2/gm2-compiler/M2GenGCC.mod
  273c623529a07acbf2f80b58e2d7567e  gcc/m2/gm2-compiler/M2Graph.def
*************** fa235ac656c58414068acb39a450b98c  gcc/m2
*** 6958,6966 ****
  356f60dfdead075fe6cab5e5e2eac22c  gcc/m2/gm2-gcc/m2treelib.cc
  17e90ff554936ce1aa95ca99d8fda68f  gcc/m2/gm2-gcc/m2treelib.def
  b4ba749f082e7d065b532edb288d7cf1  gcc/m2/gm2-gcc/m2treelib.h
! bc262cd3a4234442d001a2ad08bfa472  gcc/m2/gm2-gcc/m2type.cc
! ec7bc011340bdafcde9235882493b337  gcc/m2/gm2-gcc/m2type.def
! 0480b5e9ecf98df37a386a28b00e5e83  gcc/m2/gm2-gcc/m2type.h
  86657d918610ac339071aadeefa0b552  gcc/m2/gm2-gcc/rtegraph.cc
  65065f39d7a055627ba2d372c1e9cc07  gcc/m2/gm2-gcc/rtegraph.h
  b014a5a5babb9953d9f203bf4fd10046  gcc/m2/gm2-ici/M2Emit.mod
--- 6959,6967 ----
  356f60dfdead075fe6cab5e5e2eac22c  gcc/m2/gm2-gcc/m2treelib.cc
  17e90ff554936ce1aa95ca99d8fda68f  gcc/m2/gm2-gcc/m2treelib.def
  b4ba749f082e7d065b532edb288d7cf1  gcc/m2/gm2-gcc/m2treelib.h
! ffca16c2d5e3a05c2606eb9a249859fe  gcc/m2/gm2-gcc/m2type.cc
! c700681f970624e271bfd0c4fa1b880e  gcc/m2/gm2-gcc/m2type.def
! 739b7f10df122fd527836d2ee6bf70b6  gcc/m2/gm2-gcc/m2type.h
  86657d918610ac339071aadeefa0b552  gcc/m2/gm2-gcc/rtegraph.cc
  65065f39d7a055627ba2d372c1e9cc07  gcc/m2/gm2-gcc/rtegraph.h
  b014a5a5babb9953d9f203bf4fd10046  gcc/m2/gm2-ici/M2Emit.mod
*************** c7eadbee0c5ae61a47b11bbb7c04941d  gcc/m2
*** 7266,7272 ****
  8cd96743ee1f96df6f01c98df07854c3  gcc/m2/gm2-libs/M2RTS.def
  12f5ce990d5817b569dc48a1a3d2d37e  gcc/m2/gm2-libs/M2RTS.mod
  d4af0ce660b5e42cf851208a294a1fcc  gcc/m2/gm2-libs/M2WIDESET.def
! b8d50e77116af93b54febbe391cb3d2b  gcc/m2/gm2-libs/M2WIDESET.mod
  155b41f4ed2007e7f7eeb0df24463acf  gcc/m2/gm2-libs/MathLib0.def
  63e6da5131bf3d13607e44ee6bbc8d7f  gcc/m2/gm2-libs/MathLib0.mod
  1bbc3b5736417a1af5f0935364cf08dc  gcc/m2/gm2-libs/MemUtils.def
--- 7267,7273 ----
  8cd96743ee1f96df6f01c98df07854c3  gcc/m2/gm2-libs/M2RTS.def
  12f5ce990d5817b569dc48a1a3d2d37e  gcc/m2/gm2-libs/M2RTS.mod
  d4af0ce660b5e42cf851208a294a1fcc  gcc/m2/gm2-libs/M2WIDESET.def
! 6a4f015d5038bfb5ccfa82633e5edb7f  gcc/m2/gm2-libs/M2WIDESET.mod
  155b41f4ed2007e7f7eeb0df24463acf  gcc/m2/gm2-libs/MathLib0.def
  63e6da5131bf3d13607e44ee6bbc8d7f  gcc/m2/gm2-libs/MathLib0.mod
  1bbc3b5736417a1af5f0935364cf08dc  gcc/m2/gm2-libs/MemUtils.def
*************** b5f80b7dd94a87a1dd13aceb90a4e195  gcc/m2
*** 7664,7670 ****
  eed5a5ea7945bd1029e822990e2e8733  gcc/m2/pge-boot/Gdtoa.h
  ee5613fa5f586ad51082bd0a6aada7a3  gcc/m2/pge-boot/Gerrno.cc
  e0aecc420822b155bab45d2734a1bb66  gcc/m2/pge-boot/Gerrno.h
! 3c4133620eb2e75b06fdd9938916069b  gcc/m2/pge-boot/Gldtoa.cc
  ffb987c4bc6ac3a1f1a35a436cbb089d  gcc/m2/pge-boot/Gldtoa.h
  4bbc585bec036ce2bb79d318d58a332b  gcc/m2/pge-boot/Glibc.cc
  3b492262912f04a1c8c9a1c800e3aae7  gcc/m2/pge-boot/Glibc.h
--- 7665,7671 ----
  eed5a5ea7945bd1029e822990e2e8733  gcc/m2/pge-boot/Gdtoa.h
  ee5613fa5f586ad51082bd0a6aada7a3  gcc/m2/pge-boot/Gerrno.cc
  e0aecc420822b155bab45d2734a1bb66  gcc/m2/pge-boot/Gerrno.h
! ff3dade36a7b499aea4840471ff8838e  gcc/m2/pge-boot/Gldtoa.cc
  ffb987c4bc6ac3a1f1a35a436cbb089d  gcc/m2/pge-boot/Gldtoa.h
  4bbc585bec036ce2bb79d318d58a332b  gcc/m2/pge-boot/Glibc.cc
  3b492262912f04a1c8c9a1c800e3aae7  gcc/m2/pge-boot/Glibc.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7704,7710 ****
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! 70a639a15d49da8579a5e58f13326853  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
--- 7705,7711 ----
  88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
! eba4df589f3aa26992e9c1f8f6c7ac6e  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** b82061b2c90528a47ea29b04cf44de77  gcc/mk
*** 7715,7721 ****
  a9772a5a6b37efbf620593d1ecb9a9a2  gcc/mode-classes.def
  1ac97ddc1ff27aeab691ccffead79f6f  gcc/mode-switching.cc
  05dd9bcbee4ec681bdb25810f43cfb53  gcc/modulo-sched.cc
! 23a74680fff89135d535323207234bf7  gcc/multiple_target.cc
  cc17503ba43ac2b4a57f3a09d7a25fec  gcc/mux-utils.h
  def148be0dd316c1c852d83f7fe9f6c9  gcc/objc/ChangeLog
  8d082f55b0cdfd75ea3681dfa074f5b2  gcc/objc/Make-lang.in
--- 7716,7722 ----
  a9772a5a6b37efbf620593d1ecb9a9a2  gcc/mode-classes.def
  1ac97ddc1ff27aeab691ccffead79f6f  gcc/mode-switching.cc
  05dd9bcbee4ec681bdb25810f43cfb53  gcc/modulo-sched.cc
! 90cbd742e56177212b69bc40c540d971  gcc/multiple_target.cc
  cc17503ba43ac2b4a57f3a09d7a25fec  gcc/mux-utils.h
  def148be0dd316c1c852d83f7fe9f6c9  gcc/objc/ChangeLog
  8d082f55b0cdfd75ea3681dfa074f5b2  gcc/objc/Make-lang.in
*************** fcb5b7227342c442bcddbcc06eaddcdc  gcc/op
*** 7785,7791 ****
  bdacbcb932eb0c2db8707e3727f574dd  gcc/optinfo.h
  1c30e8950551cbe97bda991d288b7bb7  gcc/options-urls-cc-gen.awk
  09395c50b5992609f34cd388cc3257c0  gcc/opts-common.cc
! 5b59934f9a29aabd40f46b9492f1d72b  gcc/opts-diagnostic.cc
  6d624f6fea144bbb8e71378935b84abd  gcc/opts-diagnostic.h
  dd6379e65503d93b6eb08844e8bf2d09  gcc/opts-global.cc
  079a115ae417106f3e7f42b0272b866d  gcc/opts-jobserver.h
--- 7786,7792 ----
  bdacbcb932eb0c2db8707e3727f574dd  gcc/optinfo.h
  1c30e8950551cbe97bda991d288b7bb7  gcc/options-urls-cc-gen.awk
  09395c50b5992609f34cd388cc3257c0  gcc/opts-common.cc
! b4c35ee2dcd91ade3c9baf0bb43c18ca  gcc/opts-diagnostic.cc
  6d624f6fea144bbb8e71378935b84abd  gcc/opts-diagnostic.h
  dd6379e65503d93b6eb08844e8bf2d09  gcc/opts-global.cc
  079a115ae417106f3e7f42b0272b866d  gcc/opts-jobserver.h
*************** fccd951e3de91d49d3824e482c12e070  gcc/or
*** 7796,7806 ****
  673ce61076fa80e959fe72ae50291616  gcc/output.h
  c9e6163e1eaa8f82c57f03f76e86da75  gcc/pair-fusion.cc
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
! a980acc6c0e992211a74f81526025c7e  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  818628b1b793b8f87f62d0c18fd1219a  gcc/pass_manager.h
  38b9f60b5fd192ab2d5c201b4aff3f29  gcc/passes.cc
! 90fcb68d869305ff42c26dc35d5affb4  gcc/passes.def
  e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
  9077bd1d4c611da16e24019cc5f1cdcd  gcc/pex.cc
  5f3fc8b9c6ba6a91676e512a41e3de7e  gcc/pex.h
--- 7797,7807 ----
  673ce61076fa80e959fe72ae50291616  gcc/output.h
  c9e6163e1eaa8f82c57f03f76e86da75  gcc/pair-fusion.cc
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
! b07274fbdf762f801075aa7f0c401c7b  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  818628b1b793b8f87f62d0c18fd1219a  gcc/pass_manager.h
  38b9f60b5fd192ab2d5c201b4aff3f29  gcc/passes.cc
! 86deeafdc9a4c06c32c15d3fab7b6087  gcc/passes.def
  e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
  9077bd1d4c611da16e24019cc5f1cdcd  gcc/pex.cc
  5f3fc8b9c6ba6a91676e512a41e3de7e  gcc/pex.h
*************** d869add118f3b4328fb1691092405516  gcc/po
*** 7837,7843 ****
  49996ef12af53fc104c8c73884c06aa6  gcc/poly-int.h
  475f722ae164d853cf948309392e72fa  gcc/postreload-gcse.cc
  1696ccf7c912de56dfdeaaa05e52380e  gcc/postreload.cc
! 383fea76d5a0eb11da62d84805a3f859  gcc/predict.cc
  a4c4b609df2262702bd9691ce3ef1b39  gcc/predict.def
  5494603f698198c1a7d327aa6bbdb09a  gcc/predict.h
  00fb3c12fcc945bd00d0da1986741e41  gcc/prefix.cc
--- 7838,7844 ----
  49996ef12af53fc104c8c73884c06aa6  gcc/poly-int.h
  475f722ae164d853cf948309392e72fa  gcc/postreload-gcse.cc
  1696ccf7c912de56dfdeaaa05e52380e  gcc/postreload.cc
! ba22100349ffc03b441138fe5a74bb5c  gcc/predict.cc
  a4c4b609df2262702bd9691ce3ef1b39  gcc/predict.def
  5494603f698198c1a7d327aa6bbdb09a  gcc/predict.h
  00fb3c12fcc945bd00d0da1986741e41  gcc/prefix.cc
*************** a92419791c8e8d842c6ef029d4537463  gcc/sa
*** 8450,8456 ****
  c719b36bd1d2169ade6d4912ca97abe7  gcc/sched-deps.cc
  fb344dad78b286c2b8b8160a6e94c227  gcc/sched-ebb.cc
  37b5863c967088b8fd3f21ca88609243  gcc/sched-int.h
! f3f91b05871a5c5bcd83669050a57d5b  gcc/sched-rgn.cc
  d5883fe67035b957b076e12093fdb2a8  gcc/sel-sched-dump.cc
  b69c0a60b87460456bf02111f39310dd  gcc/sel-sched-dump.h
  388e20a0745ec589f1e7bfd09ceef6f2  gcc/sel-sched-ir.cc
--- 8451,8457 ----
  c719b36bd1d2169ade6d4912ca97abe7  gcc/sched-deps.cc
  fb344dad78b286c2b8b8160a6e94c227  gcc/sched-ebb.cc
  37b5863c967088b8fd3f21ca88609243  gcc/sched-int.h
! 690b27448c57c0ae9d000b48a32096d9  gcc/sched-rgn.cc
  d5883fe67035b957b076e12093fdb2a8  gcc/sel-sched-dump.cc
  b69c0a60b87460456bf02111f39310dd  gcc/sel-sched-dump.h
  388e20a0745ec589f1e7bfd09ceef6f2  gcc/sel-sched-ir.cc
*************** fdc04e5af7ee387dce07c6ba9a99eaa8  gcc/se
*** 8474,8480 ****
  50d9999185408bcae454174489317b68  gcc/signop.h
  97a13c24fa48c474198b5767f228fd93  gcc/simple-diagnostic-path.cc
  4daee3acc61f789d9c4c04a27a5bb351  gcc/simple-diagnostic-path.h
! 5d38a321b4dcb7a1f5d91aa832eac333  gcc/simplify-rtx.cc
  456e0937ae4b3a0f49fd44fb0d05eb52  gcc/sort.cc
  599fc125220850c86939202313a6f733  gcc/sparseset.cc
  430469e71b555502fe14de847bb52093  gcc/sparseset.h
--- 8475,8481 ----
  50d9999185408bcae454174489317b68  gcc/signop.h
  97a13c24fa48c474198b5767f228fd93  gcc/simple-diagnostic-path.cc
  4daee3acc61f789d9c4c04a27a5bb351  gcc/simple-diagnostic-path.h
! 3bec3ff60f9db94e1a58eb1f407fb7d4  gcc/simplify-rtx.cc
  456e0937ae4b3a0f49fd44fb0d05eb52  gcc/sort.cc
  599fc125220850c86939202313a6f733  gcc/sparseset.cc
  430469e71b555502fe14de847bb52093  gcc/sparseset.h
*************** b1497a03867668af210c32280876fdd7  gcc/sy
*** 8523,8534 ****
  32c99c974fd34089d47160168688da1d  gcc/target-globals.h
  84051f22ca8c9ee213931106395ac151  gcc/target-hooks-macros.h
  354306a484432bca2f94887455f25599  gcc/target-insns.def
! bbef0067dbe6d8e34fb4b72617195f90  gcc/target.def
  5e326cfe9b9871c8077b30f9a44e6663  gcc/target.h
  36518341b4945aa5d165121235c9e14f  gcc/targhooks.cc
  f0958b8c3fce1fd760a502da6e954283  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! a4d9b54730187630c9169086df9edee0  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8524,8535 ----
  32c99c974fd34089d47160168688da1d  gcc/target-globals.h
  84051f22ca8c9ee213931106395ac151  gcc/target-hooks-macros.h
  354306a484432bca2f94887455f25599  gcc/target-insns.def
! 5f0caeb38a460b51fdd7eea7b9ca6ffa  gcc/target.def
  5e326cfe9b9871c8077b30f9a44e6663  gcc/target.h
  36518341b4945aa5d165121235c9e14f  gcc/targhooks.cc
  f0958b8c3fce1fd760a502da6e954283  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! f3327a8f91fb390577ec76566a45e0fb  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** abfa35b8a5fc745a6ae1279a469abdb3  gcc/te
*** 17343,17349 ****
  f96a5e26ebe3f224244fcc898ace703b  gcc/testsuite/c-c++-common/analyzer/inlining-6.c
  03a1d1ad07367c4df1878142d6ed4cd4  gcc/testsuite/c-c++-common/analyzer/inlining-7-multiline.c
  28235c739e7b12bff289d278f8971f92  gcc/testsuite/c-c++-common/analyzer/inlining-7.c
! 7a48058aaf7419920b16429c67d04982  gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
  3cb97718e1fbbc9845c767bb007b9fa9  gcc/testsuite/c-c++-common/analyzer/isatty-1.c
  a710cd85a1cb3f973bf3b9b487e3c805  gcc/testsuite/c-c++-common/analyzer/leak-2.c
  2d17a6ee0daf9cc6a6dab539670520a2  gcc/testsuite/c-c++-common/analyzer/leak-3.c
--- 17344,17350 ----
  f96a5e26ebe3f224244fcc898ace703b  gcc/testsuite/c-c++-common/analyzer/inlining-6.c
  03a1d1ad07367c4df1878142d6ed4cd4  gcc/testsuite/c-c++-common/analyzer/inlining-7-multiline.c
  28235c739e7b12bff289d278f8971f92  gcc/testsuite/c-c++-common/analyzer/inlining-7.c
! c24cdf96eb395500ebea40130ce0ae46  gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
  3cb97718e1fbbc9845c767bb007b9fa9  gcc/testsuite/c-c++-common/analyzer/isatty-1.c
  a710cd85a1cb3f973bf3b9b487e3c805  gcc/testsuite/c-c++-common/analyzer/leak-2.c
  2d17a6ee0daf9cc6a6dab539670520a2  gcc/testsuite/c-c++-common/analyzer/leak-3.c
*************** a485c2cf2b8fb5018ff6ffa1d09b0291  gcc/te
*** 18324,18330 ****
  6e779ad03a964087cf36696c444f20e2  gcc/testsuite/c-c++-common/fold-masked-cmp-2.c
  9b3df6f3fe1425a3c20ed01eae079f75  gcc/testsuite/c-c++-common/fold-masked-cmp-3.c
  515d5329012cc0802e7d94f233e276c3  gcc/testsuite/c-c++-common/goacc-gomp/atomic.c
! ae277375a028cc63db472bcab5bac381  gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
  1db04538cbe75fca2dbf3f213635a548  gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c
  0c724489142a5ed4513ada6ff6ebaea9  gcc/testsuite/c-c++-common/goacc-gomp/pr93465-1.c
  21763053fb0a3cc446b2e4952923204e  gcc/testsuite/c-c++-common/goacc/Wparentheses-1.c
--- 18325,18331 ----
  6e779ad03a964087cf36696c444f20e2  gcc/testsuite/c-c++-common/fold-masked-cmp-2.c
  9b3df6f3fe1425a3c20ed01eae079f75  gcc/testsuite/c-c++-common/fold-masked-cmp-3.c
  515d5329012cc0802e7d94f233e276c3  gcc/testsuite/c-c++-common/goacc-gomp/atomic.c
! 77f7e923f565073d456eb38484c59f49  gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
  1db04538cbe75fca2dbf3f213635a548  gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c
  0c724489142a5ed4513ada6ff6ebaea9  gcc/testsuite/c-c++-common/goacc-gomp/pr93465-1.c
  21763053fb0a3cc446b2e4952923204e  gcc/testsuite/c-c++-common/goacc/Wparentheses-1.c
*************** e3a0f1c375f36ae3f072b97ca4be8af8  gcc/te
*** 18398,18421 ****
  37219df46c20afb4e83e03c1789b55cd  gcc/testsuite/c-c++-common/goacc/kernels-counter-var-redundant-load.c
  e90e67eac1e22b125385ecd1ca89b7e4  gcc/testsuite/c-c++-common/goacc/kernels-counter-vars-function-scope.c
  1fb43a4a25ac7b34ab3dcbb454fc6f1e  gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
! 9aa4bfb88d24d9625c6eb48089e08c2d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
  4fc17751a19f8c4386f7d2e0302a18b6  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
! 49ab6ecc064ed1ad888a55e5df3758b1  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
! 48f2502f8a0aebf5face12788c440d39  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
  10a6cd5b5bea6d4c0a490f27bdfaa4ed  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
  40c6c02497636688d79b463b16e260d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-1.c
  2b9fc6f430b53ac42803dc761420b14f  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-2.c
  460180cf3f51384ddef2865996da6756  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-3.c
  592dbe3755ee29ce45dbf49f555ea190  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-4.c
! fe5d96992072a9d3fb9d61fd8446a85a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c
  239fc88ffd9c8d6e35cf19523eac2903  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-2.c
! 460cc28afa141bacd2c3cfe0a5454bd9  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c
! 7d4aeebef2f37cd9451f96d7987fdca6  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c
  396acaa01b149b83dd0950563090b67d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104086-1.c
! ef6fb92d74e15384adb96d6c70aaa661  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c
! ef26840544c9405ac2c05fdfbb917785  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c
! d7391c912c27171564f090a9852d75e9  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c
  af37b31b976b1c0c41e3db72c626d179  gcc/testsuite/c-c++-common/goacc/kernels-default-2.c
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
--- 18399,18422 ----
  37219df46c20afb4e83e03c1789b55cd  gcc/testsuite/c-c++-common/goacc/kernels-counter-var-redundant-load.c
  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
  10a6cd5b5bea6d4c0a490f27bdfaa4ed  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
  40c6c02497636688d79b463b16e260d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-1.c
  2b9fc6f430b53ac42803dc761420b14f  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-2.c
  460180cf3f51384ddef2865996da6756  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-3.c
  592dbe3755ee29ce45dbf49f555ea190  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-4.c
! 20f4496eaf413eb67fe5bff2594156d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c
  239fc88ffd9c8d6e35cf19523eac2903  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-2.c
! fc36ecd816175b10095634ce394788da  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c
! 485df403700ea846e8a9a4fd07386c7d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c
  396acaa01b149b83dd0950563090b67d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104086-1.c
! 9e939f507f699d209269d5b488061a8a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c
! ef162a1e6178666abf80fa8a2e75572d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c
! 2e06d64f1a4a729bfef6910eb6734c38  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c
  af37b31b976b1c0c41e3db72c626d179  gcc/testsuite/c-c++-common/goacc/kernels-default-2.c
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
*************** be8b041248798e31b7644ec272413df0  gcc/te
*** 18446,18452 ****
  9b1122f9fc7820de1c4da99404849617  gcc/testsuite/c-c++-common/goacc/loop-clauses.c
  943121f9af2ecdb53cd96ba15a3c0258  gcc/testsuite/c-c++-common/goacc/loop-private-1.c
  3af11165090f88ea453d1233129e0e60  gcc/testsuite/c-c++-common/goacc/loop-shape.c
! daafb2cfc55c1e66b6a23616ef96a71e  gcc/testsuite/c-c++-common/goacc/mdc-1.c
  3bf6e0931241e00ebcd408e0098c10fe  gcc/testsuite/c-c++-common/goacc/mdc-2.c
  ca52cdb1b4cfd4d80d0632de43a8acb1  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-kernels.c
  833ecd7a5770c9f4041e327c2d324aac  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-parallel.c
--- 18447,18453 ----
  9b1122f9fc7820de1c4da99404849617  gcc/testsuite/c-c++-common/goacc/loop-clauses.c
  943121f9af2ecdb53cd96ba15a3c0258  gcc/testsuite/c-c++-common/goacc/loop-private-1.c
  3af11165090f88ea453d1233129e0e60  gcc/testsuite/c-c++-common/goacc/loop-shape.c
! ed327a55641b5a349bcdb14751857aaf  gcc/testsuite/c-c++-common/goacc/mdc-1.c
  3bf6e0931241e00ebcd408e0098c10fe  gcc/testsuite/c-c++-common/goacc/mdc-2.c
  ca52cdb1b4cfd4d80d0632de43a8acb1  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-kernels.c
  833ecd7a5770c9f4041e327c2d324aac  gcc/testsuite/c-c++-common/goacc/nested-reductions-1-parallel.c
*************** b9e974e2779e4215afe8a7d06bef5993  gcc/te
*** 19655,19661 ****
  2a460af511669879d590f5b1a8e1fb2a  gcc/testsuite/c-c++-common/torture/20050113-1.c
  c1e50a7071b6999a8895b383c899231c  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-1.c
  e71883f492cebf8129478eb15f05b834  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-2.c
! a10b02fb3b2593b2641dfd572427f365  gcc/testsuite/c-c++-common/torture/asm-inline.c
  90cfb4344453aaf961b99512974b93b2  gcc/testsuite/c-c++-common/torture/attr-noinit-1.c
  2b07a0a319f38afa7d1c483f3f6d2e88  gcc/testsuite/c-c++-common/torture/attr-noinit-2.c
  15a337bdd520603b23ac429fcd982ee1  gcc/testsuite/c-c++-common/torture/attr-noinit-3.c
--- 19656,19662 ----
  2a460af511669879d590f5b1a8e1fb2a  gcc/testsuite/c-c++-common/torture/20050113-1.c
  c1e50a7071b6999a8895b383c899231c  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-1.c
  e71883f492cebf8129478eb15f05b834  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-2.c
! f897ecaaba7eb5ff5a2b42ebceb35e69  gcc/testsuite/c-c++-common/torture/asm-inline.c
  90cfb4344453aaf961b99512974b93b2  gcc/testsuite/c-c++-common/torture/attr-noinit-1.c
  2b07a0a319f38afa7d1c483f3f6d2e88  gcc/testsuite/c-c++-common/torture/attr-noinit-2.c
  15a337bdd520603b23ac429fcd982ee1  gcc/testsuite/c-c++-common/torture/attr-noinit-3.c
*************** c36d540bb12d6ab7f9bd3ae9a8a49d0d  gcc/te
*** 20112,20122 ****
  44cb470ac496c9104f9ab446b1560e39  gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
  a130cf534142b63c04fcccbc34bec806  gcc/testsuite/c-c++-common/ubsan/unreachable-3.c
  44539a557f6f8816209906c319e60abe  gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
! 13dff882c56a41a29de1de7f01742b3e  gcc/testsuite/c-c++-common/ubsan/vla-1.c
  569ad8bee400ed51ff51ba8905941a80  gcc/testsuite/c-c++-common/ubsan/vla-2.c
  e3a7ad4931c8f5cf4f9d6390c12df575  gcc/testsuite/c-c++-common/ubsan/vla-3.c
  9330b358b2885db0f1bed7db562371e4  gcc/testsuite/c-c++-common/ubsan/vla-4.c
! 61cb158dd1c1e7bb459fdb709fbeccc7  gcc/testsuite/c-c++-common/uninit-17.c
  c326a73ef95aa3122b48330894c55bc2  gcc/testsuite/c-c++-common/uninit-D-O0.c
  ab24bda566bd8141b638ddfb37e53301  gcc/testsuite/c-c++-common/uninit-D.c
  c2855c4483fc57b2f236dfe4faba8d41  gcc/testsuite/c-c++-common/uninit-E-O0.c
--- 20113,20123 ----
  44cb470ac496c9104f9ab446b1560e39  gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
  a130cf534142b63c04fcccbc34bec806  gcc/testsuite/c-c++-common/ubsan/unreachable-3.c
  44539a557f6f8816209906c319e60abe  gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
! 70bf8582bdcf7a4972a919375a0bdcb1  gcc/testsuite/c-c++-common/ubsan/vla-1.c
  569ad8bee400ed51ff51ba8905941a80  gcc/testsuite/c-c++-common/ubsan/vla-2.c
  e3a7ad4931c8f5cf4f9d6390c12df575  gcc/testsuite/c-c++-common/ubsan/vla-3.c
  9330b358b2885db0f1bed7db562371e4  gcc/testsuite/c-c++-common/ubsan/vla-4.c
! 8b8dac80880f899f798cdcf887f9be79  gcc/testsuite/c-c++-common/uninit-17.c
  c326a73ef95aa3122b48330894c55bc2  gcc/testsuite/c-c++-common/uninit-D-O0.c
  ab24bda566bd8141b638ddfb37e53301  gcc/testsuite/c-c++-common/uninit-D.c
  c2855c4483fc57b2f236dfe4faba8d41  gcc/testsuite/c-c++-common/uninit-E-O0.c
*************** c0c6c8a9744bdada89df289a7570f5e0  gcc/te
*** 21196,21202 ****
  c53f1ef0c637a90cc988d801af41f460  gcc/testsuite/g++.dg/analyzer/exception-subclass-1.C
  3c10867fbf89524c306ea9dc3d94aaa8  gcc/testsuite/g++.dg/analyzer/exception-subclass-2.C
  57d34e2bc9948b3d199616c5c5b66473  gcc/testsuite/g++.dg/analyzer/exception-value-1.C
! 396baee20fbe45ed11b4309e5e8d99dd  gcc/testsuite/g++.dg/analyzer/exception-value-2.C
  aee64cbf100dae9efef80e115fe81fa5  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C
  d48dc772d9d4ad923fd71e1943ad4e74  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C
  711125ae12b0d3c94ebb54ad30379ce6  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C
--- 21197,21203 ----
  c53f1ef0c637a90cc988d801af41f460  gcc/testsuite/g++.dg/analyzer/exception-subclass-1.C
  3c10867fbf89524c306ea9dc3d94aaa8  gcc/testsuite/g++.dg/analyzer/exception-subclass-2.C
  57d34e2bc9948b3d199616c5c5b66473  gcc/testsuite/g++.dg/analyzer/exception-value-1.C
! eafad55d1edd46129b380a1d3be7e6ed  gcc/testsuite/g++.dg/analyzer/exception-value-2.C
  aee64cbf100dae9efef80e115fe81fa5  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C
  d48dc772d9d4ad923fd71e1943ad4e74  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C
  711125ae12b0d3c94ebb54ad30379ce6  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C
*************** bd42363d4165a48ad99bfda7142b3178  gcc/te
*** 24054,24059 ****
--- 24055,24061 ----
  60815d14466a48a5c352df28f6455161  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template15.C
  47be9f019182b953c600aba25cf571cc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template16.C
  c776356a4f4638869d4016c6bf4a52cf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template17.C
+ eb9c07f42f9be0aac2a7c6b465f101d5  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C
  dbe71301a1e8df7942fe34c5beb4c73e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C
  94cfc36278ab817fd2df7010aa3c83ba  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C
  e099bfa2ff82527ea9b86eaaab9acb43  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C
*************** c22e1405c91d95d32ec012cae1f23ccc  gcc/te
*** 26055,26061 ****
  358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
  2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
! 2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  4804988f5ca1de7a49a58e20c70fc457  gcc/testsuite/g++.dg/cpp1y/vla10.C
  16fc38725d5d3406fffa4c6da4f5df21  gcc/testsuite/g++.dg/cpp1y/vla2.C
  f578ef92ec8a79f6e9dc1a030af56203  gcc/testsuite/g++.dg/cpp1y/vla4.C
--- 26057,26063 ----
  358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
  2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
! 6b70f04015ba6612a9e9cb475e01f287  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  4804988f5ca1de7a49a58e20c70fc457  gcc/testsuite/g++.dg/cpp1y/vla10.C
  16fc38725d5d3406fffa4c6da4f5df21  gcc/testsuite/g++.dg/cpp1y/vla2.C
  f578ef92ec8a79f6e9dc1a030af56203  gcc/testsuite/g++.dg/cpp1y/vla4.C
*************** d249caf403715041728592d4a4163da2  gcc/te
*** 26912,26917 ****
--- 26914,26923 ----
  60f9d3d6a5d9c7ef12a738913318d3ba  gcc/testsuite/g++.dg/cpp23/whitespace-splice1.C
  6436d595ca4673d478e9f47c4a6c9a67  gcc/testsuite/g++.dg/cpp26/aggr-init1.C
  a9b6dc4f3cf6490d2993bb17a4b87b72  gcc/testsuite/g++.dg/cpp26/aggr-init2.C
+ b18ba0cbdb9ffa0b64f76ae3a037d11a  gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C
+ a8d270b14d34e596be9b7b19686ce435  gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C
+ 3d13d312049cd6d36d78018ac884112d  gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C
+ 2a61c0e1ca02df10172c40cb7c8e867b  gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C
  766438266de7b80013064af79c387336  gcc/testsuite/g++.dg/cpp26/consteval-block1.C
  aaea35a035b24193ff3ba3cb04bbbd84  gcc/testsuite/g++.dg/cpp26/consteval-block2.C
  06b982e16422e70c9775e103750a3db7  gcc/testsuite/g++.dg/cpp26/consteval-block3.C
*************** d0519edbdf7be9b73cadd101aebf0d60  gcc/te
*** 26983,26988 ****
--- 26989,26998 ----
  63db9f67d075960d87cf10ec80c8c798  gcc/testsuite/g++.dg/cpp26/delete2.C
  fcd9d0d666c1c3882f154900cd8e57fb  gcc/testsuite/g++.dg/cpp26/delete3.C
  b835b9bb00c8b448e2ac56df5e6cae60  gcc/testsuite/g++.dg/cpp26/enum-conv1.C
+ aa7084460b314da9c28cdf37e67100c4  gcc/testsuite/g++.dg/cpp26/erroneous1.C
+ 2d866df24b8bb04fbf41271a10bf369c  gcc/testsuite/g++.dg/cpp26/erroneous2.C
+ 1c3ed26721b611a54931a499aff9a565  gcc/testsuite/g++.dg/cpp26/erroneous3.C
+ 0c6cc7bc14adc7d7cff2e19ed2f21ba9  gcc/testsuite/g++.dg/cpp26/erroneous4.C
  d4331d8da306930f1d44ca3a2535e838  gcc/testsuite/g++.dg/cpp26/expansion-stmt1.C
  550ad6705c2ee18c462420135db42434  gcc/testsuite/g++.dg/cpp26/expansion-stmt10.C
  27464fb36f9adff660032384a5f744d1  gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C
*************** ed4eeb4c49af4e4276eb2fc8c4e22133  gcc/te
*** 27736,27741 ****
--- 27746,27753 ----
  842eb288f31fa0fd04ade7dce7711c8f  gcc/testsuite/g++.dg/cpp2a/constexpr-new25.C
  9c9a253330e2e1d6c9f18bf32734f49b  gcc/testsuite/g++.dg/cpp2a/constexpr-new26.C
  512e13cb69d9488ca34db670ec184ffa  gcc/testsuite/g++.dg/cpp2a/constexpr-new27.C
+ d709e22586e0f15cdddf72cf1af132a3  gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C
+ 6443db9a4ad20238d499c5aefeb748d0  gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C
  0414d7d6b0fb57808fb8f2a4927b51cb  gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C
  44e96a6cfd450fc9d40c13cc7a4e98f3  gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C
*************** acda5ed59aa700353a640d4574448925  gcc/te
*** 32166,32172 ****
  2cb62ac99daf97aae2cbc73fc371b247  gcc/testsuite/g++.dg/modules/adl-5_d.C
  332892b300f5ceafd6a3c0925599cbb1  gcc/testsuite/g++.dg/modules/adl-6_a.C
  00cf2ca1841d6e275fb44f7df8abe87f  gcc/testsuite/g++.dg/modules/adl-6_b.C
! e34a4c2fd757ac2f874d9318a9692e38  gcc/testsuite/g++.dg/modules/adl-6_c.C
  fde6c69585d7eb0d4540c5d141d78c77  gcc/testsuite/g++.dg/modules/adl-7_a.C
  b6b774c81026e561333139bd2e3910dd  gcc/testsuite/g++.dg/modules/adl-7_b.C
  257d5b3be2d2c88feff4c4ef30bb15a1  gcc/testsuite/g++.dg/modules/adl-7_c.C
--- 32178,32184 ----
  2cb62ac99daf97aae2cbc73fc371b247  gcc/testsuite/g++.dg/modules/adl-5_d.C
  332892b300f5ceafd6a3c0925599cbb1  gcc/testsuite/g++.dg/modules/adl-6_a.C
  00cf2ca1841d6e275fb44f7df8abe87f  gcc/testsuite/g++.dg/modules/adl-6_b.C
! 0d1c6740fcd20fffbdda3e976b01c776  gcc/testsuite/g++.dg/modules/adl-6_c.C
  fde6c69585d7eb0d4540c5d141d78c77  gcc/testsuite/g++.dg/modules/adl-7_a.C
  b6b774c81026e561333139bd2e3910dd  gcc/testsuite/g++.dg/modules/adl-7_b.C
  257d5b3be2d2c88feff4c4ef30bb15a1  gcc/testsuite/g++.dg/modules/adl-7_c.C
*************** f521d5e26375a6db232f71e6ef7b21f5  gcc/te
*** 32727,32733 ****
  c087af9321ac0e24731d2a4d1bb3e319  gcc/testsuite/g++.dg/modules/internal-13.C
  4fffea4cdfd477df735c06f198229d8f  gcc/testsuite/g++.dg/modules/internal-14_a.C
  10a79d90c63564fa8794a477cbcaed50  gcc/testsuite/g++.dg/modules/internal-14_b.C
! f3dc43a1a76c9644a2c2a98b1094e62a  gcc/testsuite/g++.dg/modules/internal-14_c.C
  c66d17d0fb2dc80371978510d0cc1f0f  gcc/testsuite/g++.dg/modules/internal-2_a.H
  21bb55995bb6fa8ed6a8fa69368f7f36  gcc/testsuite/g++.dg/modules/internal-2_b.H
  ba3bc4f8f333742fb78f03db052c4ffa  gcc/testsuite/g++.dg/modules/internal-2_c.C
--- 32739,32747 ----
  c087af9321ac0e24731d2a4d1bb3e319  gcc/testsuite/g++.dg/modules/internal-13.C
  4fffea4cdfd477df735c06f198229d8f  gcc/testsuite/g++.dg/modules/internal-14_a.C
  10a79d90c63564fa8794a477cbcaed50  gcc/testsuite/g++.dg/modules/internal-14_b.C
! 0863236aba9d92e0d01c941e4cf63d25  gcc/testsuite/g++.dg/modules/internal-14_c.C
! 2a172eac2717752bc776e5d72e639579  gcc/testsuite/g++.dg/modules/internal-15_a.C
! 8c3b4a86df0992edb91ffe5c31e3c519  gcc/testsuite/g++.dg/modules/internal-15_b.C
  c66d17d0fb2dc80371978510d0cc1f0f  gcc/testsuite/g++.dg/modules/internal-2_a.H
  21bb55995bb6fa8ed6a8fa69368f7f36  gcc/testsuite/g++.dg/modules/internal-2_b.H
  ba3bc4f8f333742fb78f03db052c4ffa  gcc/testsuite/g++.dg/modules/internal-2_c.C
*************** bd384ccc3f9d4a4cb4d0043b692dc7eb  gcc/te
*** 33062,33072 ****
  f68cb84137b9dc60546bf74c1ff0230b  gcc/testsuite/g++.dg/modules/namespace-13_c.C
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
! 9fc8de4ea84d52d9c619890b0581ed9e  gcc/testsuite/g++.dg/modules/namespace-1_c.C
  c95c31df178449622df4cc13fb8d490f  gcc/testsuite/g++.dg/modules/namespace-2_a.C
! 8a66c0b70a51ea5adc5bd9d77821246d  gcc/testsuite/g++.dg/modules/namespace-2_b.C
! ecd73f07c59c7479f5dd6eefeceeaf84  gcc/testsuite/g++.dg/modules/namespace-3_a.C
! 1d79204018988774f2737d60d38da3d0  gcc/testsuite/g++.dg/modules/namespace-3_b.C
  c9c28ac9e2974c410a59c8e8dcf70517  gcc/testsuite/g++.dg/modules/namespace-4_a.C
  309e15d16714b62c7df72adfedb0e0c1  gcc/testsuite/g++.dg/modules/namespace-4_b.C
  fa60a80639cb24311477303e0d98d2b7  gcc/testsuite/g++.dg/modules/namespace-4_c.C
--- 33076,33084 ----
  f68cb84137b9dc60546bf74c1ff0230b  gcc/testsuite/g++.dg/modules/namespace-13_c.C
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
! d35b80efe49eb34a9b0c6be1e97ef76a  gcc/testsuite/g++.dg/modules/namespace-1_c.C
  c95c31df178449622df4cc13fb8d490f  gcc/testsuite/g++.dg/modules/namespace-2_a.C
! 983e860a12a6b0dbd6bf88d3fdf8db36  gcc/testsuite/g++.dg/modules/namespace-2_b.C
  c9c28ac9e2974c410a59c8e8dcf70517  gcc/testsuite/g++.dg/modules/namespace-4_a.C
  309e15d16714b62c7df72adfedb0e0c1  gcc/testsuite/g++.dg/modules/namespace-4_b.C
  fa60a80639cb24311477303e0d98d2b7  gcc/testsuite/g++.dg/modules/namespace-4_c.C
*************** d1e2592670bcdeda87ffce22aa27ec30  gcc/te
*** 33310,33315 ****
--- 33322,33329 ----
  392ae29759fb872beb821c7a47f07a1c  gcc/testsuite/g++.dg/modules/pr119844_b.C
  c612aa7562a08eee08fd881b3b27fee6  gcc/testsuite/g++.dg/modules/pr120040_a.C
  680ac168b034a19e8070cf8c66cd3edc  gcc/testsuite/g++.dg/modules/pr120040_b.C
+ 625496a3dbc3dab3e9ee3fd5aa044187  gcc/testsuite/g++.dg/modules/pr122053_a.C
+ 1b9a9e771ff94ed09a2f483d4eb9b884  gcc/testsuite/g++.dg/modules/pr122053_b.C
  56ba9e2a41b995724a511df79d8df541  gcc/testsuite/g++.dg/modules/pr98531-1.h
  7155fba8679861dc6ac8879b5f49a6eb  gcc/testsuite/g++.dg/modules/pr98531-1_a.H
  db36409e89afb58e627178caf0f3d7d5  gcc/testsuite/g++.dg/modules/pr98531-1_b.C
*************** d314ec5e414fa9ff7becb1b3ec214a79  gcc/te
*** 34373,34379 ****
  da113259afc60dbf3dd7e421650ce386  gcc/testsuite/g++.dg/opt/static4.C
  e6a6097b4d5bd61ae38897f3b753019c  gcc/testsuite/g++.dg/opt/static5.C
  f8fa04e44f6fd70dc42a62899c9f64d6  gcc/testsuite/g++.dg/opt/static6.C
! a183aae17f1d8c8615291ebf7a5dc391  gcc/testsuite/g++.dg/opt/store-merging-1.C
  6252c7bf23bf186b1723587134a83a82  gcc/testsuite/g++.dg/opt/store-merging-2.C
  b7ff171a7ea369be5eef1fa7876f131e  gcc/testsuite/g++.dg/opt/store-merging-3.C
  12b141d678db6c6a275748357e7fc1d2  gcc/testsuite/g++.dg/opt/store-merging-4.C
--- 34387,34393 ----
  da113259afc60dbf3dd7e421650ce386  gcc/testsuite/g++.dg/opt/static4.C
  e6a6097b4d5bd61ae38897f3b753019c  gcc/testsuite/g++.dg/opt/static5.C
  f8fa04e44f6fd70dc42a62899c9f64d6  gcc/testsuite/g++.dg/opt/static6.C
! 2609bab67fa0e7f8f778d0b11fc830ab  gcc/testsuite/g++.dg/opt/store-merging-1.C
  6252c7bf23bf186b1723587134a83a82  gcc/testsuite/g++.dg/opt/store-merging-2.C
  b7ff171a7ea369be5eef1fa7876f131e  gcc/testsuite/g++.dg/opt/store-merging-3.C
  12b141d678db6c6a275748357e7fc1d2  gcc/testsuite/g++.dg/opt/store-merging-4.C
*************** d84032d5d61187d741ca91d1d16ee607  gcc/te
*** 34938,34943 ****
--- 34952,34958 ----
  3d4935439f09d7756194078a14580819  gcc/testsuite/g++.dg/parse/attr2.C
  d6c48fcb5fb2cc2eca51bdf02a511666  gcc/testsuite/g++.dg/parse/attr3.C
  9ca7ebe83672a0e3c639a4eff33fa711  gcc/testsuite/g++.dg/parse/attr4.C
+ f91706807a58d1674acd4ede0b772db1  gcc/testsuite/g++.dg/parse/auto-struct-param.C
  73272b6d0088d70ce32ad135b8b8bdd1  gcc/testsuite/g++.dg/parse/bitfield1.C
  44f7fcda1355d2713f1553e89b1837b8  gcc/testsuite/g++.dg/parse/bitfield2.C
  8ba3c4b4e1071c4bc6a0af4986fa5735  gcc/testsuite/g++.dg/parse/bitfield3.C
*************** e7062d8b8ae34f0a4f8b5b407e180316  gcc/te
*** 38814,38820 ****
  5ee1b7f723d2f67283e9a5a7eb0c38f1  gcc/testsuite/g++.dg/uninit-pred-4.C
  d403029994bed5e01d1267a0905e9d3c  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
! 9a63e9b5506271a4e3d1932baef3c60c  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
  f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
--- 38829,38835 ----
  5ee1b7f723d2f67283e9a5a7eb0c38f1  gcc/testsuite/g++.dg/uninit-pred-4.C
  d403029994bed5e01d1267a0905e9d3c  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
! fb9b4b2ef2067f8347522c6501c079b3  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
  f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
*************** a51e59121ac395643cb3896da790dc94  gcc/te
*** 38975,38981 ****
  35573117acc546f03b1b924b513e72cd  gcc/testsuite/g++.dg/warn/Warray-bounds-18.C
  0186412c3f9a47b93aafb28f79f2d7c7  gcc/testsuite/g++.dg/warn/Warray-bounds-19.C
  798433d4099cd8d7572fde802e640896  gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
! 51bae1da9c630f846e1186f25738a961  gcc/testsuite/g++.dg/warn/Warray-bounds-20.C
  b524c7274934e8875fa2c0efd508fc92  gcc/testsuite/g++.dg/warn/Warray-bounds-21.C
  017ae9052a1c7ed7c39be76298ec9639  gcc/testsuite/g++.dg/warn/Warray-bounds-22.C
  d36f126068fa0852b0b29fa28089dbd3  gcc/testsuite/g++.dg/warn/Warray-bounds-23.C
--- 38990,38996 ----
  35573117acc546f03b1b924b513e72cd  gcc/testsuite/g++.dg/warn/Warray-bounds-18.C
  0186412c3f9a47b93aafb28f79f2d7c7  gcc/testsuite/g++.dg/warn/Warray-bounds-19.C
  798433d4099cd8d7572fde802e640896  gcc/testsuite/g++.dg/warn/Warray-bounds-2.C
! 41fa33159929f70fc395b10be3abfef6  gcc/testsuite/g++.dg/warn/Warray-bounds-20.C
  b524c7274934e8875fa2c0efd508fc92  gcc/testsuite/g++.dg/warn/Warray-bounds-21.C
  017ae9052a1c7ed7c39be76298ec9639  gcc/testsuite/g++.dg/warn/Warray-bounds-22.C
  d36f126068fa0852b0b29fa28089dbd3  gcc/testsuite/g++.dg/warn/Warray-bounds-23.C
*************** fe4c6303d7ec13423e71cfb150c05d00  gcc/te
*** 39488,39494 ****
  01a8663e3575b9fdd6f13fef9387d669  gcc/testsuite/g++.dg/warn/Wuninitialized-10.C
  5133d39459a0fa751e7c8606e7d29b94  gcc/testsuite/g++.dg/warn/Wuninitialized-11.C
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
! 95978d0f61d66a9c1693abb0b01ebd1b  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
  f499f45369dbf11e5e717927f1eb3141  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
--- 39503,39509 ----
  01a8663e3575b9fdd6f13fef9387d669  gcc/testsuite/g++.dg/warn/Wuninitialized-10.C
  5133d39459a0fa751e7c8606e7d29b94  gcc/testsuite/g++.dg/warn/Wuninitialized-11.C
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
! 7bc87e0868519c67f33c147398fad169  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
  f499f45369dbf11e5e717927f1eb3141  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
*************** cbb30a4d3c73f183db77e6da8a13e3a9  gcc/te
*** 43177,43182 ****
--- 43192,43204 ----
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h
  64610704e2fb7b814ffc84b6b28714a0  gcc/testsuite/g++.target/aarch64/complex-init.C
  c11e5f97e7a5971cc5c5017024f54496  gcc/testsuite/g++.target/aarch64/diag_aka_1.C
+ c754d2f61e3f358a939788eebebd8ce3  gcc/testsuite/g++.target/aarch64/fmv-selection1.C
+ b76f4161df54c8629782ef9e0d754bca  gcc/testsuite/g++.target/aarch64/fmv-selection2.C
+ 92d941a86c475ff25a3e7235670ace84  gcc/testsuite/g++.target/aarch64/fmv-selection3.C
+ 7d5fc8331b20a5eae5ded76aa7a7d05f  gcc/testsuite/g++.target/aarch64/fmv-selection4.C
+ 38703815c1796540f8aecfaf1bc2cf26  gcc/testsuite/g++.target/aarch64/fmv-selection5.C
+ 5aaa612386dce37ca3d7571d955a991d  gcc/testsuite/g++.target/aarch64/fmv-selection6.C
+ 6c415ea98a837545a1d7268521c43f72  gcc/testsuite/g++.target/aarch64/fmv-selection7.C
  8d30bac01e24683c2d4e58c15ccb4a99  gcc/testsuite/g++.target/aarch64/fp8_mangling.C
  e488781ad97c2cdafc1c66ede7aa1e0f  gcc/testsuite/g++.target/aarch64/fp8_scalar_typecheck_2.C
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
*************** ae878ea349c8f9f2a197bf59dcff9d3a  gcc/te
*** 45033,45038 ****
--- 45055,45061 ----
  6d7416e999725c0f023c4322893b1214  gcc/testsuite/gcc.c-torture/compile/pr118501.c
  4e917b913d6f56bf343a7bff79797c93  gcc/testsuite/gcc.c-torture/compile/pr119226.c
  ba307c947af4df2e0ff2f70272caf68a  gcc/testsuite/gcc.c-torture/compile/pr120807.c
+ b20dd8a4cdcf6dd51489456d26453893  gcc/testsuite/gcc.c-torture/compile/pr122066.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
  86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
*************** e06e75338accc1d77eb96706931ab719  gcc/te
*** 50029,50038 ****
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
  273adb61fc527a0a98332844df1a5b16  gcc/testsuite/gcc.dg/builtin-unreachable-3.c
  3f5b321aedbde585bb267c9931d87096  gcc/testsuite/gcc.dg/builtin-unreachable-4.c
! b00d36d0215e29686de9f6563afb4e87  gcc/testsuite/gcc.dg/builtin-unreachable-5.c
! 805cca243e4ddc4c6a264af39e4c36ab  gcc/testsuite/gcc.dg/builtin-unreachable-6.c
! 55f574298f80b352e4b2c682678ec628  gcc/testsuite/gcc.dg/builtin-unreachable-6a.c
! 846f74d213392bb0a4f2bcfba6104368  gcc/testsuite/gcc.dg/builtin-unreachable-7.c
  f009865cc5f42ab2ba4a4ed671729f1a  gcc/testsuite/gcc.dg/builtins-1.c
  de826bd2faea31ca3887af383ff62b8f  gcc/testsuite/gcc.dg/builtins-10.c
  960461c95930d3d3bd3e2a49ed939d49  gcc/testsuite/gcc.dg/builtins-11.c
--- 50052,50061 ----
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
  273adb61fc527a0a98332844df1a5b16  gcc/testsuite/gcc.dg/builtin-unreachable-3.c
  3f5b321aedbde585bb267c9931d87096  gcc/testsuite/gcc.dg/builtin-unreachable-4.c
! fec2581d59bb58ef7c4c861215d227a9  gcc/testsuite/gcc.dg/builtin-unreachable-5.c
! 7a5b3d15b44ab72489bbf43453ddc27c  gcc/testsuite/gcc.dg/builtin-unreachable-6.c
! 6fb6aed3fa7e3b9ef55e8808af87a20b  gcc/testsuite/gcc.dg/builtin-unreachable-6a.c
! 26a73461f86eaa077d3df2dfa3aaef2a  gcc/testsuite/gcc.dg/builtin-unreachable-7.c
  f009865cc5f42ab2ba4a4ed671729f1a  gcc/testsuite/gcc.dg/builtins-1.c
  de826bd2faea31ca3887af383ff62b8f  gcc/testsuite/gcc.dg/builtins-10.c
  960461c95930d3d3bd3e2a49ed939d49  gcc/testsuite/gcc.dg/builtins-11.c
*************** e29dfebcc91efb4a6141cc6831d3fb23  gcc/te
*** 50551,50556 ****
--- 50574,50581 ----
  fac4d983506fe771aab24bcdf0cd6eb5  gcc/testsuite/gcc.dg/c2y-incomplete-2.c
  41c1686e328289238d317f92a564bf4c  gcc/testsuite/gcc.dg/c2y-incomplete-3.c
  4f2c0342859eaf05bddab76191975b41  gcc/testsuite/gcc.dg/c2y-init-1.c
+ 92164865b962db361132c2825c1a5576  gcc/testsuite/gcc.dg/c2y-init-2.c
+ e9e31c634e0b64fe6ae8bddd6b578f5b  gcc/testsuite/gcc.dg/c2y-init-3.c
  8445ec4e0665a4141a7afa27a0e6c095  gcc/testsuite/gcc.dg/c2y-inline-1.c
  2b3f94dac416975326ac382d854e7d20  gcc/testsuite/gcc.dg/c2y-linkage-1.c
  95420752b61a34eafb01a473a5863268  gcc/testsuite/gcc.dg/c2y-linkage-2.c
*************** c98bd8084443af9809a9b85283a91966  gcc/te
*** 54126,54131 ****
--- 54151,54158 ----
  50e20d44cf899b50a377dfbe7b59c8e6  gcc/testsuite/gcc.dg/instrument-2.c
  0d49d6b891baf686b7989dc2f3e27fd4  gcc/testsuite/gcc.dg/instrument-3.c
  6077153710c7f48ed85417e157b3a87e  gcc/testsuite/gcc.dg/instrument-4.c
+ 963b69ae1db3b89a567c14d649ec5c41  gcc/testsuite/gcc.dg/int-bwise-opt-1.c
+ 93fdb4b353fe6ff68d0f24593d0c967c  gcc/testsuite/gcc.dg/int-bwise-opt-2.c
  a481d0a49a4bf2aa98254e8df226bcd5  gcc/testsuite/gcc.dg/intermod-1.c
  22557d653f291c76fc7092fa90747b0a  gcc/testsuite/gcc.dg/intmax_t-1.c
  623aed8859c8d8790d8542fcad873744  gcc/testsuite/gcc.dg/invalid-call-1.c
*************** dfb4077095a9a1767f9d3405363543a5  gcc/te
*** 55495,55501 ****
  f6e137597dce4650ba1565206e539ea7  gcc/testsuite/gcc.dg/plugin/self-assign-test-2.c
  e02805e9ce58a796cf7d12cfc4e32dc7  gcc/testsuite/gcc.dg/plugin/selfassign.cc
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/start_unit-test-1.c
! 64321dc1b161184739b07f96a1981ab5  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc
  00a1b96bbcffd09bac3474dd95024a53  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
  23796e19f3d5fa6dd7da57577c891b75  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
  88e4aa7c8e5b18cfd476fd5ab8d06ff8  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
--- 55522,55528 ----
  f6e137597dce4650ba1565206e539ea7  gcc/testsuite/gcc.dg/plugin/self-assign-test-2.c
  e02805e9ce58a796cf7d12cfc4e32dc7  gcc/testsuite/gcc.dg/plugin/selfassign.cc
  17affb987043f39ff846effdbaa6040c  gcc/testsuite/gcc.dg/plugin/start_unit-test-1.c
! d99526b298e9dfd46c825e5ad65e0b91  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc
  00a1b96bbcffd09bac3474dd95024a53  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
  23796e19f3d5fa6dd7da57577c891b75  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
  88e4aa7c8e5b18cfd476fd5ab8d06ff8  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
*************** fa5bb8fde0acecb33a479faffc86bd94  gcc/te
*** 56161,56166 ****
--- 56188,56194 ----
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
  17a1e237b6ae68e2d4122d0a05fef1df  gcc/testsuite/gcc.dg/pr120510.c
  7e5ecdaab28f17bb60a37435dfa95af7  gcc/testsuite/gcc.dg/pr120525.c
+ fb8a0a60fb2754e29f845aad904922d4  gcc/testsuite/gcc.dg/pr120560.c
  529713b98b912597ae0fe979488eb31a  gcc/testsuite/gcc.dg/pr120630.c
  4a9d9632d82cf6c4f4f4acbad8ab018d  gcc/testsuite/gcc.dg/pr120638.c
  b2094ecb5faddf978d10235a88f83571  gcc/testsuite/gcc.dg/pr120660.c
*************** aa86169902d2471ece373c0dddd5232b  gcc/te
*** 57548,57554 ****
  7bfaca350ee545dbe10363c435dfa736  gcc/testsuite/gcc.dg/pr78333.c
  21d56f799d53b50dacd02048a1b73756  gcc/testsuite/gcc.dg/pr78384.c
  ec6de6dc7e87c891763ef77447eb4094  gcc/testsuite/gcc.dg/pr78408-1.c
! 07834f595669948f323b820ebe44b1e2  gcc/testsuite/gcc.dg/pr78408-2.c
  8674b992e5bdd9a84d819eb0da93b58a  gcc/testsuite/gcc.dg/pr78408-3.c
  6f2d058063e1aeba0dd1950b50cd76e6  gcc/testsuite/gcc.dg/pr78445.c
  3fcd5b7bdc484a6133ea1b07bf2bd0a7  gcc/testsuite/gcc.dg/pr78468.c
--- 57576,57582 ----
  7bfaca350ee545dbe10363c435dfa736  gcc/testsuite/gcc.dg/pr78333.c
  21d56f799d53b50dacd02048a1b73756  gcc/testsuite/gcc.dg/pr78384.c
  ec6de6dc7e87c891763ef77447eb4094  gcc/testsuite/gcc.dg/pr78408-1.c
! 6561e92da3decd7e94ff333e0a4bcccd  gcc/testsuite/gcc.dg/pr78408-2.c
  8674b992e5bdd9a84d819eb0da93b58a  gcc/testsuite/gcc.dg/pr78408-3.c
  6f2d058063e1aeba0dd1950b50cd76e6  gcc/testsuite/gcc.dg/pr78445.c
  3fcd5b7bdc484a6133ea1b07bf2bd0a7  gcc/testsuite/gcc.dg/pr78468.c
*************** f42b1c4e861e4207759994e34bbd715d  gcc/te
*** 59952,59957 ****
--- 59980,59988 ----
  949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
  864f636916f6866905d019b279576014  gcc/testsuite/gcc.dg/torture/pr121962-1.c
  256200aae431c6598adbd4613b49ae06  gcc/testsuite/gcc.dg/torture/pr122016.c
+ a8d4d484b0c9f610869201cb69ba7f05  gcc/testsuite/gcc.dg/torture/pr122079-1.c
+ efa374cf4f5d41b91ecac6e1e98ac293  gcc/testsuite/gcc.dg/torture/pr122079-2.c
+ a53ed0c2a08c21b00c8d5487bbc823d7  gcc/testsuite/gcc.dg/torture/pr122079-3.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** b82f09e52f40b5e142ca17a69421bfad  gcc/te
*** 60988,60994 ****
  9bedd7550914e2e483d55e47c44723e3  gcc/testsuite/gcc.dg/torture/restrict-5.c
  b4bc986eae683153ce2c232320c5bd27  gcc/testsuite/gcc.dg/torture/restrict-6.c
  568321b2b1eea2f97749015ca7f0b1b0  gcc/testsuite/gcc.dg/torture/restrict-7.c
! 68022ba88e6b60bc23bcb69aeb8b97e1  gcc/testsuite/gcc.dg/torture/restrict-8.c
  3fb5e467cdd5b7f8c0d248b59f046ff6  gcc/testsuite/gcc.dg/torture/ssa-fre-1.c
  ec800839f6046083f21d40a82b2942fc  gcc/testsuite/gcc.dg/torture/ssa-fre-2.c
  ef26911618617d51e6ffc39ca7a78dc2  gcc/testsuite/gcc.dg/torture/ssa-fre-3.c
--- 61019,61025 ----
  9bedd7550914e2e483d55e47c44723e3  gcc/testsuite/gcc.dg/torture/restrict-5.c
  b4bc986eae683153ce2c232320c5bd27  gcc/testsuite/gcc.dg/torture/restrict-6.c
  568321b2b1eea2f97749015ca7f0b1b0  gcc/testsuite/gcc.dg/torture/restrict-7.c
! d913f838ec1f626e3108016066c77f2f  gcc/testsuite/gcc.dg/torture/restrict-8.c
  3fb5e467cdd5b7f8c0d248b59f046ff6  gcc/testsuite/gcc.dg/torture/ssa-fre-1.c
  ec800839f6046083f21d40a82b2942fc  gcc/testsuite/gcc.dg/torture/ssa-fre-2.c
  ef26911618617d51e6ffc39ca7a78dc2  gcc/testsuite/gcc.dg/torture/ssa-fre-3.c
*************** ed01fecf47b756a152f04241a3582230  gcc/te
*** 61430,61443 ****
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
  bd2c59ee2a95d110f018a0a696fdbba8  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-4.c
  7a3696ade38cde0d635a753ee35afba7  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-5.c
! a675dbefe299a9799d2385e87612ad42  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
! 8d435b18ff373bbb3a6e11e3d4df5278  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
  b0091ca4cfe440c8c17995c3fb8ccd29  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-1.c
  c93e92df25ea2d7624ab5bb540a59254  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-2.c
  f0cfa91457dd949c26c5d6636ad1a511  gcc/testsuite/gcc.dg/tree-ssa/builtin-free.c
! 3425ff42c1c6f97af1e08dc15884c8d3  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
  5ff7ec25810daa2b2c09d56aa89297c2  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-2.c
! e867184736b513170c0f3bc6ad396d21  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
  f44c1a01b8f375501cb37e1baaac95b1  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-1.c
  eb9b6e4fecb1f58f765424a67c2b6ca9  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-2.c
  cc227fc1cc6d10a58e03dcd84a92a069  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-1.c
--- 61461,61474 ----
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
  bd2c59ee2a95d110f018a0a696fdbba8  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-4.c
  7a3696ade38cde0d635a753ee35afba7  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-5.c
! 3411ca09df73ebf41ba51f5e0b6869da  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
! 7fd751b659cd1630b1072536e2f5d0f0  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
  b0091ca4cfe440c8c17995c3fb8ccd29  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-1.c
  c93e92df25ea2d7624ab5bb540a59254  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-2.c
  f0cfa91457dd949c26c5d6636ad1a511  gcc/testsuite/gcc.dg/tree-ssa/builtin-free.c
! 3892a06ef5da1b28aabfa3d0b150c80b  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
  5ff7ec25810daa2b2c09d56aa89297c2  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-2.c
! 9c989bed0c5b72eb358865d449d68569  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
  f44c1a01b8f375501cb37e1baaac95b1  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-1.c
  eb9b6e4fecb1f58f765424a67c2b6ca9  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-2.c
  cc227fc1cc6d10a58e03dcd84a92a069  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-1.c
*************** c28ce339deffeb750f2c7f2cb8c8aa31  gcc/te
*** 61501,61510 ****
  c96169d5c29c6dc315a817531e40c48b  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-8.c
  872985c14c0a1024ddaf7e02e728827a  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-9.c
  3f3120466fd06983562ec970505aaf86  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf.c
! f22d4bb060b76be93303eb733dde236d  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
! 9df35f57df940eb42a44144ca85a6c3e  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
! bd0e09f37c905aa13bbb2d522a84d767  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
! 435b64746afba8c4755679ab7ad1358d  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
--- 61532,61541 ----
  c96169d5c29c6dc315a817531e40c48b  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-8.c
  872985c14c0a1024ddaf7e02e728827a  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-9.c
  3f3120466fd06983562ec970505aaf86  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf.c
! 904442dc63dd1807cfaeae2506b405c4  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
! 9ed8adf4cddf1c6aea23e6c1e06a5b13  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
! b9252c3b93123f5ce39d3896900ca645  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
! b36e2e1c8d3822ca8e1628ca508a0374  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
*************** b0891b1dddf226da47f4f976abdd7cb0  gcc/te
*** 62302,62307 ****
--- 62333,62341 ----
  dab88e25e03ff735e2c1de465e1513fc  gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c
  aeb12077d90e06af9a00cc755a37915a  gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c
  ef9f94de68c006babcf9169489ed1b51  gcc/testsuite/gcc.dg/tree-ssa/pr121264.c
+ f4c56a02709c699f81b07b81dd1a2c1e  gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c
+ 1f4ed1b8fa56e5300281263805887fd0  gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c
+ 6564cdc8a2e0bef445546d4a4df278f9  gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** ff3e9d8662e05b8f3c81f35670655ad3  gcc/te
*** 62638,62644 ****
  47b41d52f868619ba15cafed8ebc7a8d  gcc/testsuite/gcc.dg/tree-ssa/pr79408.c
  4250bf4e67db8a045092c6cc64afe76a  gcc/testsuite/gcc.dg/tree-ssa/pr79448-2.c
  267ec15a1b0f6bdb0566f626d0600e04  gcc/testsuite/gcc.dg/tree-ssa/pr79448.c
! d4aa7c24d6416b188d1742fc7862c0d5  gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
  2e59ff7af74f0aa2ffe66d00e6246b21  gcc/testsuite/gcc.dg/tree-ssa/pr79697.c
  63cdbac8b60e9574d8c08e0c48248fbc  gcc/testsuite/gcc.dg/tree-ssa/pr79800.c
  e2b1e4435a5f961c380a8fe172c61123  gcc/testsuite/gcc.dg/tree-ssa/pr79803.c
--- 62672,62678 ----
  47b41d52f868619ba15cafed8ebc7a8d  gcc/testsuite/gcc.dg/tree-ssa/pr79408.c
  4250bf4e67db8a045092c6cc64afe76a  gcc/testsuite/gcc.dg/tree-ssa/pr79448-2.c
  267ec15a1b0f6bdb0566f626d0600e04  gcc/testsuite/gcc.dg/tree-ssa/pr79448.c
! e1f0b312cb573aab13c1ffabec7233cd  gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
  2e59ff7af74f0aa2ffe66d00e6246b21  gcc/testsuite/gcc.dg/tree-ssa/pr79697.c
  63cdbac8b60e9574d8c08e0c48248fbc  gcc/testsuite/gcc.dg/tree-ssa/pr79800.c
  e2b1e4435a5f961c380a8fe172c61123  gcc/testsuite/gcc.dg/tree-ssa/pr79803.c
*************** e92489c90dd47c31b76500ce339319b1  gcc/te
*** 63094,63100 ****
  7b3f5a61b9f4a3f5a778aab896139fe2  gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
  677df0479e77e329b2cee6fbc674ed5f  gcc/testsuite/gcc.dg/tree-ssa/sra-longjmp-1.c
  b25208e2c31a217147d4f793dbfb7cb8  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
! 6b25812d84cb808691e7459f2ec58990  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
  d024d06922004215bb3d85a5e207ece3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
  487e8ba99622856ccdbd48030a99e293  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c
  377101857ba6c322f80507dfdbb9900c  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-13.c
--- 63128,63134 ----
  7b3f5a61b9f4a3f5a778aab896139fe2  gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
  677df0479e77e329b2cee6fbc674ed5f  gcc/testsuite/gcc.dg/tree-ssa/sra-longjmp-1.c
  b25208e2c31a217147d4f793dbfb7cb8  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
! 153930606347bc56c7175cc52bff734e  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
  d024d06922004215bb3d85a5e207ece3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
  487e8ba99622856ccdbd48030a99e293  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c
  377101857ba6c322f80507dfdbb9900c  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-13.c
*************** b35c2e9856d8c47fe15c1afbe3df715a  gcc/te
*** 65271,65277 ****
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
  762ca438d6f2445bb7f2c91d1d1379f0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
  45cc297ae1f89f389a55977a2b04ed2b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
! 642c46feeade837a191b39791c9ee4d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  4e01e7fa88e60e8debd0e967b8c44037  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
--- 65305,65311 ----
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
  762ca438d6f2445bb7f2c91d1d1379f0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
  45cc297ae1f89f389a55977a2b04ed2b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
! 40d08e9ed1570a9e89fa6cdce362aada  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  4e01e7fa88e60e8debd0e967b8c44037  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
*************** d2c04f154fe19d1bbe3122411e1a40a3  gcc/te
*** 65303,65309 ****
  b71770bd4d06a2b7f9fde9712a65c3f5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s221.c
  b84daf94d5420dacd3c16dcbfacc6a6f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s222.c
  94793fbf15296b407dffc513cc4dd31c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2233.c
! af9046baf5e43f4ff13449c949f1bce7  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c
  82cb8aac70d8509850b10cc461029b2a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2251.c
  66bcca697fbebc67cb130e5ba4835d39  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2275.c
  d4f9975e79eab52657233b186b72ea6b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s231.c
--- 65337,65343 ----
  b71770bd4d06a2b7f9fde9712a65c3f5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s221.c
  b84daf94d5420dacd3c16dcbfacc6a6f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s222.c
  94793fbf15296b407dffc513cc4dd31c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2233.c
! c8d12e6ee83f2964e988306b46ac935a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c
  82cb8aac70d8509850b10cc461029b2a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2251.c
  66bcca697fbebc67cb130e5ba4835d39  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2275.c
  d4f9975e79eab52657233b186b72ea6b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s231.c
*************** a5475847de61efdab06cd4fa43cf0e12  gcc/te
*** 67557,67563 ****
  33c8c4a9517616d8bfab58294e955e04  gcc/testsuite/gcc.target/aarch64/asm-5.c
  371e1b24318679345c92f1610a479910  gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c
  82342c21bec311241ac523023fc12855  gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c
! 2c45c7e11ae5e10b1fdf9f05c07a383c  gcc/testsuite/gcc.target/aarch64/asm-flag-1.c
  dec6fa45fd2a29df2bb34f29716542bd  gcc/testsuite/gcc.target/aarch64/asm-flag-3.c
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
--- 67591,67597 ----
  33c8c4a9517616d8bfab58294e955e04  gcc/testsuite/gcc.target/aarch64/asm-5.c
  371e1b24318679345c92f1610a479910  gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c
  82342c21bec311241ac523023fc12855  gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c
! ff4b10d04e8e57b34aa0d3331d2977a3  gcc/testsuite/gcc.target/aarch64/asm-flag-1.c
  dec6fa45fd2a29df2bb34f29716542bd  gcc/testsuite/gcc.target/aarch64/asm-flag-3.c
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
*************** ce0a270d0ab654727a943988b0a3ce49  gcc/te
*** 67688,67694 ****
  82ebc34e179e256a16633eeed8f5931d  gcc/testsuite/gcc.target/aarch64/builtin-bswap-1.c
  33f370cd2a619d45e68ba5747504d94e  gcc/testsuite/gcc.target/aarch64/builtin-bswap-2.c
  ac800c0500abf9ea311dffda98f211fe  gcc/testsuite/gcc.target/aarch64/builtin_apply-1.c
! 8afdfea25c5c0f6b7a714287496d0ffd  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c
  ebfe61998b217972759700f67918b7b9  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli_illegal.c
  6927a6e9009b152efa44797dcae0c93a  gcc/testsuite/gcc.target/aarch64/builtin_sadd_128.c
  65465f2ba4ff1bba0055376633cc793f  gcc/testsuite/gcc.target/aarch64/builtin_saddl.c
--- 67722,67728 ----
  82ebc34e179e256a16633eeed8f5931d  gcc/testsuite/gcc.target/aarch64/builtin-bswap-1.c
  33f370cd2a619d45e68ba5747504d94e  gcc/testsuite/gcc.target/aarch64/builtin-bswap-2.c
  ac800c0500abf9ea311dffda98f211fe  gcc/testsuite/gcc.target/aarch64/builtin_apply-1.c
! cb2535b12d22ed2d65b724ad88f45bc4  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c
  ebfe61998b217972759700f67918b7b9  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli_illegal.c
  6927a6e9009b152efa44797dcae0c93a  gcc/testsuite/gcc.target/aarch64/builtin_sadd_128.c
  65465f2ba4ff1bba0055376633cc793f  gcc/testsuite/gcc.target/aarch64/builtin_saddl.c
*************** bcc8d0d4f1ea5c4c0db13df4e8a52917  gcc/te
*** 67853,67866 ****
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
  0fcb30ee0ed54592f917c0a2ca39da92  gcc/testsuite/gcc.target/aarch64/csel_bfx_2.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
! 84a090e1555a75d7d6e3d23e245a0d46  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
  a7cc9f628dc551103dcae76f4c42f571  gcc/testsuite/gcc.target/aarch64/csinc-3.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
  50a331be5c5ce2cf83a1e168d92246b2  gcc/testsuite/gcc.target/aarch64/csinv-2.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
! daa118ed7835c32ea71c32e65d22689f  gcc/testsuite/gcc.target/aarch64/csneg-1.c
  51f175c396c9a9a9251dd98f94a7ebf4  gcc/testsuite/gcc.target/aarch64/cssc_1.c
  05ea5743886230b700d9517872bc7739  gcc/testsuite/gcc.target/aarch64/cssc_2.c
  f8584ef5813441112b0bfb8283a130fd  gcc/testsuite/gcc.target/aarch64/cssc_3.c
--- 67887,67900 ----
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
  0fcb30ee0ed54592f917c0a2ca39da92  gcc/testsuite/gcc.target/aarch64/csel_bfx_2.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
! c3a7b8115754dea15611ee43f3ce2ad6  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
  a7cc9f628dc551103dcae76f4c42f571  gcc/testsuite/gcc.target/aarch64/csinc-3.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
  50a331be5c5ce2cf83a1e168d92246b2  gcc/testsuite/gcc.target/aarch64/csinv-2.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
! 5fb2d0cfb6a4d733e5e6526abecfbd83  gcc/testsuite/gcc.target/aarch64/csneg-1.c
  51f175c396c9a9a9251dd98f94a7ebf4  gcc/testsuite/gcc.target/aarch64/cssc_1.c
  05ea5743886230b700d9517872bc7739  gcc/testsuite/gcc.target/aarch64/cssc_2.c
  f8584ef5813441112b0bfb8283a130fd  gcc/testsuite/gcc.target/aarch64/cssc_3.c
*************** f15d1ff83066971ce9a42593ae9e147c  gcc/te
*** 67870,67876 ****
  66e80d99734f8cef1f2093c52336c4c2  gcc/testsuite/gcc.target/aarch64/cvtf_1.c
  219904a019d4bb11b9f01c14bdd7a407  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
  a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/testsuite/gcc.target/aarch64/declare-simd-1.c
! 4662bde0005cf4c7497e012d44ac937a  gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
  5a0fb82365f402f7b5e039bc723a3020  gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
--- 67904,67910 ----
  66e80d99734f8cef1f2093c52336c4c2  gcc/testsuite/gcc.target/aarch64/cvtf_1.c
  219904a019d4bb11b9f01c14bdd7a407  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
  a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/testsuite/gcc.target/aarch64/declare-simd-1.c
! e57188457d19c572c1c7ca575a6aa71b  gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
  5a0fb82365f402f7b5e039bc723a3020  gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
*************** d256d1ca6afee8c9f035975033b2b6c6  gcc/te
*** 67941,67947 ****
  abddc9f1fca0b1871d2b5fa9f425d10a  gcc/testsuite/gcc.target/aarch64/fix_trunc1.c
  08efe84ed3a8a3a4d9a85a6d64eb9cae  gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c
  bd03ecf6b19690f6dc1bbbd227d20b37  gcc/testsuite/gcc.target/aarch64/floatdihf2_1.c
! e72513b4caa62260940a267106d0a423  gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
  d1278d287cb5cdd487a5dc5eb1a39f07  gcc/testsuite/gcc.target/aarch64/fmadd.c
  09f48eba4ef72a066deca3509e7bedca  gcc/testsuite/gcc.target/aarch64/fmaxmin.c
  591fdb9779be4d849e1234f176b71721  gcc/testsuite/gcc.target/aarch64/fmaxnm_1.c
--- 67975,67981 ----
  abddc9f1fca0b1871d2b5fa9f425d10a  gcc/testsuite/gcc.target/aarch64/fix_trunc1.c
  08efe84ed3a8a3a4d9a85a6d64eb9cae  gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c
  bd03ecf6b19690f6dc1bbbd227d20b37  gcc/testsuite/gcc.target/aarch64/floatdihf2_1.c
! aa9467ab274bda62d313ac3b2dc6601b  gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
  d1278d287cb5cdd487a5dc5eb1a39f07  gcc/testsuite/gcc.target/aarch64/fmadd.c
  09f48eba4ef72a066deca3509e7bedca  gcc/testsuite/gcc.target/aarch64/fmaxmin.c
  591fdb9779be4d849e1234f176b71721  gcc/testsuite/gcc.target/aarch64/fmaxnm_1.c
*************** f63af0e2c637d2d9ca8823625488dcda  gcc/te
*** 68091,68097 ****
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
  1df852b19573d2ea3b90e47cd4c3cb14  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
  ffedc0ef46ae1e25eb82fb4257a7f56e  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
! f97c649121afb763d218eaff7d7c4093  gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
  c5975ec22e631fd84b727d806f60c43b  gcc/testsuite/gcc.target/aarch64/ldp_stp_19.c
  a942ef178dbff47e07909da75486489e  gcc/testsuite/gcc.target/aarch64/ldp_stp_2.c
  9e261e1619ca4e81d153ea9758d5be03  gcc/testsuite/gcc.target/aarch64/ldp_stp_20.c
--- 68125,68131 ----
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
  1df852b19573d2ea3b90e47cd4c3cb14  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
  ffedc0ef46ae1e25eb82fb4257a7f56e  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
! 3a55fffd11d3423c5e90823f9fde479a  gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
  c5975ec22e631fd84b727d806f60c43b  gcc/testsuite/gcc.target/aarch64/ldp_stp_19.c
  a942ef178dbff47e07909da75486489e  gcc/testsuite/gcc.target/aarch64/ldp_stp_2.c
  9e261e1619ca4e81d153ea9758d5be03  gcc/testsuite/gcc.target/aarch64/ldp_stp_20.c
*************** b8aed2f1d41cb75f276523cd82c36bbb  gcc/te
*** 68233,68238 ****
--- 68267,68313 ----
  475e77af16debcf9fbdd8ee444d9a7a5  gcc/testsuite/gcc.target/aarch64/mult-synth_4.c
  75729350e479bd19e771b32da82d2301  gcc/testsuite/gcc.target/aarch64/mult-synth_5.c
  7109c6ca9fae844ddbfcec4c93ed1ba6  gcc/testsuite/gcc.target/aarch64/mult-synth_6.c
+ 0d2363e48facea886403e856f8475b5b  gcc/testsuite/gcc.target/aarch64/mv-1.c
+ 6e311ae929a4fbc73adb18aa45b88b47  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c
+ 80aca6f2e0f7a4c966345ff9d8e969c2  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c
+ 9766cec2082c416cd130df5c3e56ef8d  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c
+ 8aea2f025cd62e9c66d390d95805e834  gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c
+ 8ab640b215a17d643ebd05252b57697d  gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c
+ 04b565385646931ad9e6cfc74409c239  gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c
+ 464ac664f36618f84ddfc0f30f65009b  gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c
+ 6026a9f553078fc509e8d93fac0d63c6  gcc/testsuite/gcc.target/aarch64/mv-error1.c
+ 815b4a4a8bd009b919ecedb23e734cd1  gcc/testsuite/gcc.target/aarch64/mv-error10.c
+ 62a84fead9572495d7970fed2b222474  gcc/testsuite/gcc.target/aarch64/mv-error11.c
+ a0a0ad7f8ba90f0f861aa4ead8f00cd8  gcc/testsuite/gcc.target/aarch64/mv-error12.c
+ 5d787ee02076ad662e384afb1f6be29e  gcc/testsuite/gcc.target/aarch64/mv-error2.c
+ f9bb2368707ac00a6620de38f7e42014  gcc/testsuite/gcc.target/aarch64/mv-error3.c
+ 03d34330e3bd067c7120b1231d8e4bd6  gcc/testsuite/gcc.target/aarch64/mv-error4.c
+ 912365e80013e5d775f407b8a8e106fe  gcc/testsuite/gcc.target/aarch64/mv-error5.c
+ 222c7c7780504239d7505b3da613858a  gcc/testsuite/gcc.target/aarch64/mv-error6.c
+ fa1a41aecffccd6cebf6e8ffaf5fce15  gcc/testsuite/gcc.target/aarch64/mv-error7.c
+ 938833518b127d6afd115099a5a32a93  gcc/testsuite/gcc.target/aarch64/mv-error8.c
+ 8dc8d31ccdaad1c8549d61c236532b6f  gcc/testsuite/gcc.target/aarch64/mv-error9.c
+ 39ffd3249f3c91dcbc36c4448b216b0b  gcc/testsuite/gcc.target/aarch64/mv-symbols1.c
+ 8c212d0042ad6b1512f361c7f7e4dede  gcc/testsuite/gcc.target/aarch64/mv-symbols10.c
+ f6a88059abac6448e025c40814c31a17  gcc/testsuite/gcc.target/aarch64/mv-symbols11.c
+ 0b30d501636aa277695b58be578c6307  gcc/testsuite/gcc.target/aarch64/mv-symbols12.c
+ dbde67a5b2eaf033104c747092aacd29  gcc/testsuite/gcc.target/aarch64/mv-symbols13.c
+ c97c73b4747983de1aada63984813b52  gcc/testsuite/gcc.target/aarch64/mv-symbols14.c
+ 225291f8e700a640724d8a6d907b9a1c  gcc/testsuite/gcc.target/aarch64/mv-symbols2.c
+ 30b59341cc714dc412dc546df6149319  gcc/testsuite/gcc.target/aarch64/mv-symbols3.c
+ 9655329e469504b240b4bb2b7c034eb2  gcc/testsuite/gcc.target/aarch64/mv-symbols4.c
+ 6c7eada146d3035c3e43dc616ccc8ef5  gcc/testsuite/gcc.target/aarch64/mv-symbols5.c
+ 113400ac77f6a69e64641498513b190b  gcc/testsuite/gcc.target/aarch64/mv-symbols6.c
+ 72765fee34ea90326489840ba2d35845  gcc/testsuite/gcc.target/aarch64/mv-symbols7.c
+ 7c591b454a4d54108a99632bb728340d  gcc/testsuite/gcc.target/aarch64/mv-symbols8.c
+ 263eb0672cea3e11c7fa0ff71bfc66b3  gcc/testsuite/gcc.target/aarch64/mv-symbols9.c
+ c2bcea3e34ac5aa166a1fe69d0ab446e  gcc/testsuite/gcc.target/aarch64/mvc-error1.c
+ c2bcea3e34ac5aa166a1fe69d0ab446e  gcc/testsuite/gcc.target/aarch64/mvc-error2.c
+ 6398f1b7affb35ce4792917d1813900e  gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c
+ 8dd8156da8c76bfa43fe46b26f93252a  gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c
+ 1dddfdef95889cccff8512fddbe4c9e3  gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c
+ e7fc7805aef84cb0a2c8d05886a042ca  gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c
+ d5401b1ca800e0142c1b5d16be3ddc57  gcc/testsuite/gcc.target/aarch64/mvc-warning1.c
  3151dfcfde3b7d6684635da1ef1cd34b  gcc/testsuite/gcc.target/aarch64/mvn-cmeq0-1.c
  0da02c92f522f70dac5f559b786a6a5b  gcc/testsuite/gcc.target/aarch64/mvn_zero_ext.c
  18b4be822d23c74967c07303bd28f766  gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c
*************** b6a18fb1ecc9f56b3894553675bc0455  gcc/te
*** 68545,68551 ****
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
  2f04362c27a9d92b5c3630595d13128b  gcc/testsuite/gcc.target/aarch64/rev16_2.c
  a6b0a3d46a5a5170f93dc87f2d7171b5  gcc/testsuite/gcc.target/aarch64/ror.c
! c5f7398a3319e25a23c9aebb45e8472a  gcc/testsuite/gcc.target/aarch64/ror_2.c
  6a7b4c2858dc4092dd8e5eead61374c3  gcc/testsuite/gcc.target/aarch64/ror_3.c
  d67c6012aab7b0d167366ecd8d9c9f29  gcc/testsuite/gcc.target/aarch64/rot_to_bswap.c
  6aafdb77d40b133b0cfc4ba802e3088b  gcc/testsuite/gcc.target/aarch64/rotate_xar_1.c
--- 68620,68626 ----
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
  2f04362c27a9d92b5c3630595d13128b  gcc/testsuite/gcc.target/aarch64/rev16_2.c
  a6b0a3d46a5a5170f93dc87f2d7171b5  gcc/testsuite/gcc.target/aarch64/ror.c
! de3baab34a4f59a99dc737c4063eb91d  gcc/testsuite/gcc.target/aarch64/ror_2.c
  6a7b4c2858dc4092dd8e5eead61374c3  gcc/testsuite/gcc.target/aarch64/ror_3.c
  d67c6012aab7b0d167366ecd8d9c9f29  gcc/testsuite/gcc.target/aarch64/rot_to_bswap.c
  6aafdb77d40b133b0cfc4ba802e3088b  gcc/testsuite/gcc.target/aarch64/rotate_xar_1.c
*************** e1cf0d479bffab78f82341c69892e846  gcc/te
*** 68560,68567 ****
  dff5614a018a2765dcb90ecb31013713  gcc/testsuite/gcc.target/aarch64/sbc.c
  3b9354b9a15c8705b143711e5a0eb3cd  gcc/testsuite/gcc.target/aarch64/scalar-mov.c
  b2b9b4bede373ccce7eb9870526caf86  gcc/testsuite/gcc.target/aarch64/scalar-vca.c
! 7627a43f2e30495bd3af51718c2dc594  gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c
! 961d957558702f3a32901bf52b170534  gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c
  b0af57cfaade3214be10647c1c8b885d  gcc/testsuite/gcc.target/aarch64/sdiv_costs_1.c
  3e8ce149782bdd987aa781b057d78ceb  gcc/testsuite/gcc.target/aarch64/set_fpcr64_1.c
  a93f1f3ea917533aaecb0c213be0f4d9  gcc/testsuite/gcc.target/aarch64/set_fpsr64_1.c
--- 68635,68642 ----
  dff5614a018a2765dcb90ecb31013713  gcc/testsuite/gcc.target/aarch64/sbc.c
  3b9354b9a15c8705b143711e5a0eb3cd  gcc/testsuite/gcc.target/aarch64/scalar-mov.c
  b2b9b4bede373ccce7eb9870526caf86  gcc/testsuite/gcc.target/aarch64/scalar-vca.c
! 49520376acef3c7fb07d0bdd6ead705b  gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c
! 2fc6ff8843a82335d82fabde33dbe9e5  gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c
  b0af57cfaade3214be10647c1c8b885d  gcc/testsuite/gcc.target/aarch64/sdiv_costs_1.c
  3e8ce149782bdd987aa781b057d78ceb  gcc/testsuite/gcc.target/aarch64/set_fpcr64_1.c
  a93f1f3ea917533aaecb0c213be0f4d9  gcc/testsuite/gcc.target/aarch64/set_fpsr64_1.c
*************** e21253a0b461c19afa3bd87ea01f5460  gcc/te
*** 68668,68674 ****
  048c05fd5d8a233357c18cd4fac0af1d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_2.c
  231fbc62550eac68af09fe0296ecc2b7  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_3.c
  597879377be3eeffce3944b61e8c8aec  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_4.c
! 7acd4d756517b7c857659e2ff1d7809a  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c
  5c902aa373684ae8f9089744aa438e3a  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_6.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
--- 68743,68749 ----
  048c05fd5d8a233357c18cd4fac0af1d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_2.c
  231fbc62550eac68af09fe0296ecc2b7  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_3.c
  597879377be3eeffce3944b61e8c8aec  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_4.c
! cddb2940de62ee127a5f70eb1ee8525d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c
  5c902aa373684ae8f9089744aa438e3a  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_6.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
*************** eb612e50dff956594dedc023c01c005d  gcc/te
*** 69100,69106 ****
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
  d1a781848976d72dd29ad2008392d1ea  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
! 96b414deb2ef664ef0e319c9d099a140  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
  6a557c704c6bec3b13f23ea346e9813c  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
--- 69175,69181 ----
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
  d1a781848976d72dd29ad2008392d1ea  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
! 8c5c95b1adf034575e4c12451b3fe9a1  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
  6a557c704c6bec3b13f23ea346e9813c  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
*************** b77d57f6ab3a698dfef1798ec4ada94d  gcc/te
*** 72439,72445 ****
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
  a1d9993cfe67282d03182bc25905bd1a  gcc/testsuite/gcc.target/aarch64/sve/adr_6.c
  1daf19df597a9b2315d45de48190c8c5  gcc/testsuite/gcc.target/aarch64/sve/adr_7.c
! 62c2fdff5e2575e27bb0a1d20d21aa9e  gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
  efb1c357526ad1218a7cda47ab799c9e  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_1.c
  d21de60c71043234f5e72b2fc5db1cbd  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_2.c
  ca05d4d119e7e722a18d2fcc13759d76  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_3.c
--- 72514,72520 ----
  08a30fcbd7cb13074d9f737a36ee873c  gcc/testsuite/gcc.target/aarch64/sve/adr_5_run.c
  a1d9993cfe67282d03182bc25905bd1a  gcc/testsuite/gcc.target/aarch64/sve/adr_6.c
  1daf19df597a9b2315d45de48190c8c5  gcc/testsuite/gcc.target/aarch64/sve/adr_7.c
! 4d6f55d2e55ef850e5912c9bb834274e  gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
  efb1c357526ad1218a7cda47ab799c9e  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_1.c
  d21de60c71043234f5e72b2fc5db1cbd  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_2.c
  ca05d4d119e7e722a18d2fcc13759d76  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_3.c
*************** e342b7fa2ce17d6cfd00030f2f3965d3  gcc/te
*** 72558,72592 ****
  b7e78bb84de099569d29a829e069cbdf  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_3_run.c
  c1b6e314ccc33e03e318141e9a67069b  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4.c
  55463c73d53ad6c6f93532abb0d0d552  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4_run.c
! af64548da7f47f6a202ea5953ca15ef1  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c
  52ad44c429dd4422f4d2b6df0bc07c76  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1_run.c
  0e39b871b01c57f14ac862a3eb53f539  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2.c
  4f4c4f4271455020fb6894fc107221cc  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2_run.c
! a9011591514f41bfbf412e1d14722ccd  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c
  ddd887045f18a8bdbd5ea03c2be74ead  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3_run.c
  ed0725bcf9e92ab9ac36431f961b9cc4  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4.c
  5d0164ab19fb2d3a475e4c49404e6d37  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4_run.c
! 255724ac8f1fd5046f2a61e3ffe96ff6  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c
  4143d896ad644326abf04f2b78eb5657  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5_run.c
  7c79e4a6bddad22f81765621d082f8f7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6.c
  6b9d997f46ff754be60685b03f7f9f9b  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6_run.c
! 50a9691073a09c419c2eb6f74d1163d9  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c
  bcbe3911107a0e5f6ec93ba07374f7cf  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7_run.c
  2582af230415294ef0fdbbce5eaf98b7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8.c
  536b8c04dedf9aea2a6d0bffbcbed9db  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8_run.c
! 122f43160b9c9681ce52d47414f6a442  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c
  985c02baa1eb3b8662cea45d283cdd8d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1_run.c
  4126dfd7f4389791ba015171cd50d14a  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2.c
  73bc939fd112bd89fb6ebcf9c2b3c1d7  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2_run.c
! c36a4e3f148f7cb41bef2e12e3c78894  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c
  43b9e59595cc7b2077539f3a4c3ed6ab  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3_run.c
  52416dc564668b88d5f9fadb4eef79a2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4.c
  5a317dfa59b3956cff5f1499b918bd91  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4_run.c
! 2ff6bcc714c4f4bfe23cad232b6323dc  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c
  85cfccab508119dd4190588ea187006d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5_run.c
  4868f87f122beefa61bfa0b0bb178c95  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6.c
  3a0da1ce19d97db921f6f2eee2a79cdb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6_run.c
! f83306845da84bdf6848aae05c5a2e09  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c
  072ae2d9a5e9d32d48faa5e62b996609  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7_run.c
  64db42388579ec976e07f51afc168086  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8.c
  cb1bf1ff48a5e6bb1ba79530c0b05adb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8_run.c
--- 72633,72667 ----
  b7e78bb84de099569d29a829e069cbdf  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_3_run.c
  c1b6e314ccc33e03e318141e9a67069b  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4.c
  55463c73d53ad6c6f93532abb0d0d552  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4_run.c
! 522b2b22a6513e32c8b3d8daea434091  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c
  52ad44c429dd4422f4d2b6df0bc07c76  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1_run.c
  0e39b871b01c57f14ac862a3eb53f539  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2.c
  4f4c4f4271455020fb6894fc107221cc  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2_run.c
! 9bdcc5492ddc34480b3276f2dd744781  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c
  ddd887045f18a8bdbd5ea03c2be74ead  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3_run.c
  ed0725bcf9e92ab9ac36431f961b9cc4  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4.c
  5d0164ab19fb2d3a475e4c49404e6d37  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4_run.c
! 5385f472173e0093e79ed44e8f754cae  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c
  4143d896ad644326abf04f2b78eb5657  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5_run.c
  7c79e4a6bddad22f81765621d082f8f7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6.c
  6b9d997f46ff754be60685b03f7f9f9b  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6_run.c
! 6415ab916f51b37ff8781f55ac80ef28  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c
  bcbe3911107a0e5f6ec93ba07374f7cf  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7_run.c
  2582af230415294ef0fdbbce5eaf98b7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8.c
  536b8c04dedf9aea2a6d0bffbcbed9db  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8_run.c
! d53074302b671ed0213d95351f985dc3  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c
  985c02baa1eb3b8662cea45d283cdd8d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1_run.c
  4126dfd7f4389791ba015171cd50d14a  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2.c
  73bc939fd112bd89fb6ebcf9c2b3c1d7  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2_run.c
! cfc1ede9abf6a933d31c314278c77af2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c
  43b9e59595cc7b2077539f3a4c3ed6ab  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3_run.c
  52416dc564668b88d5f9fadb4eef79a2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4.c
  5a317dfa59b3956cff5f1499b918bd91  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4_run.c
! 228d357fbe66d8fa4103feecf2d74d8e  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c
  85cfccab508119dd4190588ea187006d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5_run.c
  4868f87f122beefa61bfa0b0bb178c95  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6.c
  3a0da1ce19d97db921f6f2eee2a79cdb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6_run.c
! 590f584446e957a355839677680aeb32  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c
  072ae2d9a5e9d32d48faa5e62b996609  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7_run.c
  64db42388579ec976e07f51afc168086  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8.c
  cb1bf1ff48a5e6bb1ba79530c0b05adb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8_run.c
*************** e0705706a25a622a4b620338485c3a81  gcc/te
*** 72594,72600 ****
  780caf8bf7717806fd0f84c048ee97eb  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_1_run.c
  b52b14b2138a13194cbcff7473ba55c2  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2.c
  9b41da0f2564c3e3cd852e1d56df5f02  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2_run.c
! db31a01de9a664cdd1699730c8547625  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c
  b3f9c3240fdec2e7408c3b787bce4286  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3_run.c
  64405df4d9f806fb4184767b01f9c860  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4.c
  17d8db4e44cf467bc1ad2287738ba543  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4_run.c
--- 72669,72675 ----
  780caf8bf7717806fd0f84c048ee97eb  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_1_run.c
  b52b14b2138a13194cbcff7473ba55c2  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2.c
  9b41da0f2564c3e3cd852e1d56df5f02  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2_run.c
! 91360f9fed72086b784ec8ca1f5f9c23  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c
  b3f9c3240fdec2e7408c3b787bce4286  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3_run.c
  64405df4d9f806fb4184767b01f9c860  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4.c
  17d8db4e44cf467bc1ad2287738ba543  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4_run.c
*************** f2191497eb739d9ec3a96c5a36857dfd  gcc/te
*** 72603,72609 ****
  ee8d2477e2e6cf35e0492bebab2e9489  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_1_run.c
  788b065dda79085ad117d4c5ee3206af  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2.c
  b49937ef28a030ead746bd998f7615f8  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2_run.c
! c4faae715d420146a671be7133e7d2d5  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c
  1f4683a4b21ba9b1d47640e96be2a910  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3_run.c
  22726669d5957ace143b58895f3023ee  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4.c
  ef680420f6ef6266e296ac66c3bcb651  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4_run.c
--- 72678,72684 ----
  ee8d2477e2e6cf35e0492bebab2e9489  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_1_run.c
  788b065dda79085ad117d4c5ee3206af  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2.c
  b49937ef28a030ead746bd998f7615f8  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2_run.c
! acb3ec20afbb72325d43b93ff2d327da  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c
  1f4683a4b21ba9b1d47640e96be2a910  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3_run.c
  22726669d5957ace143b58895f3023ee  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4.c
  ef680420f6ef6266e296ac66c3bcb651  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4_run.c
*************** bb1234eb13ea14f4c41d1b1c3fb36a31  gcc/te
*** 72956,72962 ****
  31a237aa8702170aa5dae24d46fbd35e  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_3.c
  1a41c5a000a8569d571836bc9d072a51  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_4.c
  ed8c00bb799512fa988960af6397117a  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_5.c
! 7869ba42049d38dc9e0e673f198b615f  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c
  09ebdb04872424b83aad0af43f03dfa4  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_7.c
  6aea5bdfc452b758750b7b674e6562ae  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_8.c
  3a2b3ac68ec5a5d4dbd3ece209e5d84c  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_9.c
--- 73031,73037 ----
  31a237aa8702170aa5dae24d46fbd35e  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_3.c
  1a41c5a000a8569d571836bc9d072a51  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_4.c
  ed8c00bb799512fa988960af6397117a  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_5.c
! b960e941e12ef960b109511b7e86511b  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c
  09ebdb04872424b83aad0af43f03dfa4  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_7.c
  6aea5bdfc452b758750b7b674e6562ae  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_8.c
  3a2b3ac68ec5a5d4dbd3ece209e5d84c  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_9.c
*************** d9ca3ace725686a9292fe9e1d496d379  gcc/te
*** 72991,72997 ****
  f73856c9978f65aed41f7a5c062f010a  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1_run.c
  3767d9f5b48765e1ea663d93605a0b14  gcc/testsuite/gcc.target/aarch64/sve/part_vect_single_iter_epilog.c
  505c7a703249075fb08d211ee30ed590  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! cb38d86423d2a253bf5e46d4e7c9771b  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
  12aa85f0e82269d5ce573bf2a833c8e4  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
  ff3fcd6f14498877abd750ef54b75814  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
  687e745f899a3a5a0d1d2cf63a2eb6fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
--- 73066,73072 ----
  f73856c9978f65aed41f7a5c062f010a  gcc/testsuite/gcc.target/aarch64/sve/pack_float_1_run.c
  3767d9f5b48765e1ea663d93605a0b14  gcc/testsuite/gcc.target/aarch64/sve/part_vect_single_iter_epilog.c
  505c7a703249075fb08d211ee30ed590  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! 5ea2d21295dbde4f04dab1e20eca2bcb  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
  12aa85f0e82269d5ce573bf2a833c8e4  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
  ff3fcd6f14498877abd750ef54b75814  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
  687e745f899a3a5a0d1d2cf63a2eb6fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
*************** b2b5dbcfa7aed69254e46d82d6f5c2d2  gcc/te
*** 73096,73102 ****
  f0dd2d5d4343ff31428d7e7bb3a55ec3  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_2048.c
  fe1e09c94d386e079d80d7626ff069c0  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_256.c
  4e2761323de9604c580b45808c43d577  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_512.c
! 948fb65a89e4174aacc90a0ec566deb3  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
  884b16b34842e8df61c7b592e1b3ddbd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
  34b02df48c6dc194c54ed03f4f029fed  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
  32241c7f00245fd98f5c5f3e220e7585  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
--- 73171,73177 ----
  f0dd2d5d4343ff31428d7e7bb3a55ec3  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_2048.c
  fe1e09c94d386e079d80d7626ff069c0  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_256.c
  4e2761323de9604c580b45808c43d577  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_5_512.c
! 83965b8e59489a75de8e8f47f5458a64  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
  884b16b34842e8df61c7b592e1b3ddbd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
  34b02df48c6dc194c54ed03f4f029fed  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
  32241c7f00245fd98f5c5f3e220e7585  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
*************** a421d5e1fc09e2a43ba0b51529d4676c  gcc/te
*** 73474,73483 ****
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
  7bb9d9ea37daaacbf18621685d270327  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
  e46489e97fa0b54c4ca2d629d83b5ae0  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 0fc11e16f784b5a11d733d97272640fe  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
! 739efc32763daeb96b2e4d3126d70691  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
  21f69cb5983d978f0940cd4276f79f38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
  85e5cc4b396e8562e07edd1d651a5d11  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
  3570da632a0c77f29e0b51bb74695f19  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
--- 73549,73558 ----
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
  7bb9d9ea37daaacbf18621685d270327  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
  e46489e97fa0b54c4ca2d629d83b5ae0  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 9c4919c4f580d47a4d376141d0409833  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
! 874639c6e54b8300c1a3e278de48e09a  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
  21f69cb5983d978f0940cd4276f79f38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
  85e5cc4b396e8562e07edd1d651a5d11  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
  3570da632a0c77f29e0b51bb74695f19  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
*************** a776e5d06dee43e7816ef9453b3f3c06  gcc/te
*** 73641,73650 ****
  15d554c4d9d7f3a379a7a0ff18c71c74  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fsubr_2.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
  82b631f365f09efa84b18f9701bb4691  gcc/testsuite/gcc.target/aarch64/sve/usminmax_di.c
! 244a74375a0c2fe6ee32afc4c0cc347c  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
  d876021ee15812d1dc53c0bd7c9fc144  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1_run.c
  8ba1fc382a2b8650ed30c02eee9a7784  gcc/testsuite/gcc.target/aarch64/sve/uzp1_2.c
! 44ed091a3c7fb2d9c6fd042c02ba7c78  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c
  66e61d21118cd1e4b400b1d34e9315d1  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1_run.c
  2d21cc9ed403bcbfc4ff06c504640862  gcc/testsuite/gcc.target/aarch64/sve/uzp2_2.c
  2a54bf5c1976c784a0f37398d02e302d  gcc/testsuite/gcc.target/aarch64/sve/var_stride_1.c
--- 73716,73725 ----
  15d554c4d9d7f3a379a7a0ff18c71c74  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fsubr_2.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
  82b631f365f09efa84b18f9701bb4691  gcc/testsuite/gcc.target/aarch64/sve/usminmax_di.c
! 005f08575d1d854ae09654733efbc7f5  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
  d876021ee15812d1dc53c0bd7c9fc144  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1_run.c
  8ba1fc382a2b8650ed30c02eee9a7784  gcc/testsuite/gcc.target/aarch64/sve/uzp1_2.c
! 4e291a75fd818b8b338132694d9a2a6d  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c
  66e61d21118cd1e4b400b1d34e9315d1  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1_run.c
  2d21cc9ed403bcbfc4ff06c504640862  gcc/testsuite/gcc.target/aarch64/sve/uzp2_2.c
  2a54bf5c1976c784a0f37398d02e302d  gcc/testsuite/gcc.target/aarch64/sve/var_stride_1.c
*************** b492ca2077d7ff66c6b66f4ab082437f  gcc/te
*** 75463,75469 ****
  ee75ba585648b3f8f825cadccf3a5ef0  gcc/testsuite/gcc.target/aarch64/vect_unary_1.c
  2f90e98a90f4eb622cc3f403c199b293  gcc/testsuite/gcc.target/aarch64/vect_unary_2.c
  d8b7bf172e8cfd96979b54e10c4e2570  gcc/testsuite/gcc.target/aarch64/vect_urhadd_1.c
! d82a06405dedf4469bc29e7400f0b0c2  gcc/testsuite/gcc.target/aarch64/vector-compare-5.c
  739575d641b47c254cda6c8d642702f9  gcc/testsuite/gcc.target/aarch64/vector_initialization_nostack.c
  91822962d5a71129a8f94a0f50f2c42b  gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c
  95218e69f648c2bc58f35d3130871871  gcc/testsuite/gcc.target/aarch64/vector_intrinsics_asm.c
--- 75538,75544 ----
  ee75ba585648b3f8f825cadccf3a5ef0  gcc/testsuite/gcc.target/aarch64/vect_unary_1.c
  2f90e98a90f4eb622cc3f403c199b293  gcc/testsuite/gcc.target/aarch64/vect_unary_2.c
  d8b7bf172e8cfd96979b54e10c4e2570  gcc/testsuite/gcc.target/aarch64/vect_urhadd_1.c
! b4884357a6a8e2c986e0030d9523d970  gcc/testsuite/gcc.target/aarch64/vector-compare-5.c
  739575d641b47c254cda6c8d642702f9  gcc/testsuite/gcc.target/aarch64/vector_initialization_nostack.c
  91822962d5a71129a8f94a0f50f2c42b  gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c
  95218e69f648c2bc58f35d3130871871  gcc/testsuite/gcc.target/aarch64/vector_intrinsics_asm.c
*************** dff684f08a4dc4184ca929f14d99767e  gcc/te
*** 87025,87030 ****
--- 87100,87107 ----
  d2e0d6146b057e3b3cbcbdb57a656d82  gcc/testsuite/gcc.target/i386/pr121934-5a.c
  9049f7716994299e74114bae9313a56b  gcc/testsuite/gcc.target/i386/pr121934-5b.c
  de69502695dcbc8a5a967bb1c49ea11c  gcc/testsuite/gcc.target/i386/pr122021-0.c
+ 600ff3c5da35f468b87a23e0d1678a3e  gcc/testsuite/gcc.target/i386/pr122104.c
+ e5e8ba4f460f32c4d01f7295cd3635e6  gcc/testsuite/gcc.target/i386/pr122150.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
*************** d946887666581a01ba252e6f7f60ff15  gcc/te
*** 91569,91574 ****
--- 91646,91652 ----
  ae0e3bf279bfdc631da5f4c109d681d3  gcc/testsuite/gcc.target/mips/pr82981.c
  d16ca6ac6a955a86b18beecc197b9ccf  gcc/testsuite/gcc.target/mips/pr88349.c
  883d2c60e32348644a3be6f91c7e2b65  gcc/testsuite/gcc.target/mips/pr91769.c
+ 3dc38d66638e297cf82d822bb9ad52bb  gcc/testsuite/gcc.target/mips/pr99217-2.c
  eb60b05f029f5cbd0dbadc2472f4ed8d  gcc/testsuite/gcc.target/mips/pr99217.c
  a3d18616f89634c190f4bb31b9165dbc  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
  668f845b2b56ba796d8efa350bd5f072  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
*************** d8e76b4cd45daa82499151eedc966298  gcc/te
*** 95904,95911 ****
--- 95982,95994 ----
  772299c8bb90d3144f704368bdbc7dff  gcc/testsuite/gcc.target/riscv/pr121778-1.c
  49f89ac2be2926412e68fbe76976697f  gcc/testsuite/gcc.target/riscv/pr121778-2.c
  052b9719ef24512ba3a9a1495eebcb2a  gcc/testsuite/gcc.target/riscv/pr121878.c
+ 149f75652a924ff51d7326419cef1b1e  gcc/testsuite/gcc.target/riscv/pr121937.c
  5da4efb1b887254a32f3e50ca5a0ea7e  gcc/testsuite/gcc.target/riscv/pr121982.c
  ea89beffad7d3445e7faf4e7b1b31944  gcc/testsuite/gcc.target/riscv/pr121983.c
+ 80279953f9ce781df5f45c709bf29af0  gcc/testsuite/gcc.target/riscv/pr122051.c
+ bc59de83765bb844925a1922677b3910  gcc/testsuite/gcc.target/riscv/pr122106.c
+ 0f5f042a5df3f42e8e3634b538a557e9  gcc/testsuite/gcc.target/riscv/pr122114.c
+ cddeabddc47c1e2e434be321884dbb80  gcc/testsuite/gcc.target/riscv/pr122147.c
  37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
  db206807e7e87fc388e039471812c6e0  gcc/testsuite/gcc.target/riscv/pr58727.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
*************** ba1541c5643b49009111f281b45d0132  gcc/te
*** 96727,96732 ****
--- 96810,96817 ----
  b383a140231f763cc0d532c0ed651bc9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118182-1.c
  eba0d19494d2301c112e8ee69e4533e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118182-2.c
  e5794d88a1109065814ce4f8f2246087  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118832.c
+ 3fdfa217fb215691c225e7e02191c539  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c
+ 78bdb3d6d00c0f71bd0fa471f037d22f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c
  1064dbbae3b2f7e04909839e8152b061  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118950.c
  e7ca8fe6239410f9affbff1106fd2d15  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr119114.c
  446b0327be112ddedf3f8db6bc96d603  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr119224.c
*************** c6f64767aa5c25a649dd1df61e9fbd20  gcc/te
*** 98091,98097 ****
  7b41d73a7fa1a6ea67324e89d891ad6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf-rv64-0.c
  4287dc5c36f4d1b3c13f219eefb32c24  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv32-0.c
  4d4f4d23d65ae7086f33dd4f707b576a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv64-0.c
! 4b593e125191f392424373bfb3afd066  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c
  0c0067f26f158144c99392a59c569a4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-rint-1.c
  23aa9bd915d3c2ecfc4cc23d55c43293  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-round-1.c
  7a8c7a3a6a847f170c9d6e043d4fbbd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-roundeven-1.c
--- 98176,98182 ----
  7b41d73a7fa1a6ea67324e89d891ad6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf-rv64-0.c
  4287dc5c36f4d1b3c13f219eefb32c24  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv32-0.c
  4d4f4d23d65ae7086f33dd4f707b576a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-lroundf16-rv64-0.c
! 24204560d83a37251377881828d1d2f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c
  0c0067f26f158144c99392a59c569a4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-rint-1.c
  23aa9bd915d3c2ecfc4cc23d55c43293  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-round-1.c
  7a8c7a3a6a847f170c9d6e043d4fbbd1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-roundeven-1.c
*************** dd58b7a375ca415fa00dec0460c50c24  gcc/te
*** 98351,98375 ****
  f8449da573246d363e4443b9f32f0f06  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
  4abdc71a4d78eff367f15f9be04fb7fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
  b231dddff3540c987b251cf413e96a0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
! 9d446eb22cabc1dfb08bd794443cef0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
! bd5e97369c57c448992d20df86526338  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
! a150a331a26d65810feb5a0071535b80  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
  4bd4d8465912fd31ef999b199164b3c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
  97a4318491ad584290f2b2bef781322e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
  935c9835493916f219759aed3d339ec9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
  59608a9e1c34d3e1d054335c9a90bd97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
  b1a59a3d1b37b0c7a1ff38505ab7a17b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
! ef6aff55ed9b306e632e79ba81d75899  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
! a5dcfc3d545c71ee926964e057119ea0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
! a0077ac413c6469b39112de9f46b6986  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
  d1b35f2120d5335127cbce417dff6c98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
  769f16086c2330f7eed8a44c27fa3c3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
  e9accde0ee3be9cea5d61ed620a02fff  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
  3dcfb7e0adab0b03f0b2f2534ea342c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
  0f06236cd498b25686910d051c5a135a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
! 0b65d8ecd16acf22aa0329ab173c100c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
! 0afc0ec234f3a6798918b1f90aedd985  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
! 4b9f267a46b8335a2907d19b0e7e1426  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
  66f491f5982578d81d43f48cb849b7e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
  ddbdedd0bcd1b2f07c63e57ea3edd7f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
  ecb91086db90af95d3f46740e36b1ce2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
--- 98436,98460 ----
  f8449da573246d363e4443b9f32f0f06  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
  4abdc71a4d78eff367f15f9be04fb7fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
  b231dddff3540c987b251cf413e96a0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
! 24c7f533c9020427679588a5b02d572b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
! 6f0cc861a1f745c79874f9ac3afc73fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
! 8793b4848b8dbb482588c09e3b5e2efa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
  4bd4d8465912fd31ef999b199164b3c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
  97a4318491ad584290f2b2bef781322e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
  935c9835493916f219759aed3d339ec9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
  59608a9e1c34d3e1d054335c9a90bd97  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
  b1a59a3d1b37b0c7a1ff38505ab7a17b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
! b4f09ef517186c4e827b25e6c1867b37  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
! 7097d602526ff59c619d44fb8ebb1fcc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
! bb27b17eb016b822da88799c034af65c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
  d1b35f2120d5335127cbce417dff6c98  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
  769f16086c2330f7eed8a44c27fa3c3b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
  e9accde0ee3be9cea5d61ed620a02fff  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
  3dcfb7e0adab0b03f0b2f2534ea342c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
  0f06236cd498b25686910d051c5a135a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
! 77c8b75f4c4f9a1198ac994e7bfbd20d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
! 2c45c41d6a86061457c5104b84d2fa70  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
! 5f0ef4e39d245fd15431b0f1416ad1d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
  66f491f5982578d81d43f48cb849b7e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
  ddbdedd0bcd1b2f07c63e57ea3edd7f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
  ecb91086db90af95d3f46740e36b1ce2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
*************** a0289a49fbec6d012c69ed3175a98cc5  gcc/te
*** 98593,98601 ****
  8f2d02d5d8980d2c4e052c4379664339  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u32.c
  8d7233deaa2c5490a9767684770727ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u64.c
  840249b053ac4f1f4bb99aa3c0ecdc82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u8.c
! f4faf2a6d91b36571a745a89888413e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h
! aaca46c6ec05d6c1076d11a30954b0d8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h
  817a372ed3135f20efb96a1ef454973c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_vx_run.h
  836cc87f131d9d080542fe18ca8f7841  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c
  aeb0d50dcb40664d3bf3d024edf8eed6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c
  4643fde202857860772ea93f75bc542e  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c
--- 98678,98688 ----
  8f2d02d5d8980d2c4e052c4379664339  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u32.c
  8d7233deaa2c5490a9767684770727ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u64.c
  840249b053ac4f1f4bb99aa3c0ecdc82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u8.c
! 3221f54cff8b9e8dc2979ee6ba219551  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h
! aa0fa135a7ad284fbd7b388360d1bc61  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h
  817a372ed3135f20efb96a1ef454973c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_vx_run.h
+ 91e3cccb4807b06cfb9b970d64abd56a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h
+ 68c2c33e731d54fe3dbede7e8039c3fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c
  836cc87f131d9d080542fe18ca8f7841  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c
  aeb0d50dcb40664d3bf3d024edf8eed6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c
  4643fde202857860772ea93f75bc542e  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c
*************** b75cb93f87f099ad715aceb9cb7b1bf2  gcc/te
*** 111975,111980 ****
--- 112062,112068 ----
  1f7a9307002a1f0f2a5f8eb76998dcda  gcc/testsuite/gfortran.dg/implied_do_io_6.f90
  2b548a8a46da28ac4ce23e2509a886fc  gcc/testsuite/gfortran.dg/implied_do_io_7.f90
  1b11291348a686162c0e48c6b1b5cd66  gcc/testsuite/gfortran.dg/implied_do_io_8.f90
+ f9c9e0932087ab8751e466c8efd22612  gcc/testsuite/gfortran.dg/implied_do_io_9.f90
  a8761a2aaffb7680e80dcad5eceada12  gcc/testsuite/gfortran.dg/implied_shape_1.f08
  f9528d7042bf84bf037d6e2b109272ec  gcc/testsuite/gfortran.dg/implied_shape_2.f90
  1b2b68c816459c1a9395771e9851de87  gcc/testsuite/gfortran.dg/implied_shape_3.f08
*************** c61e4e9f6a32de1ca3041987ea6be2b8  gcc/te
*** 113208,113234 ****
  4091b0cda1b37aa9933aa0582f11916a  gcc/testsuite/gfortran.dg/past_eor.f90
  32e3a39285b3fee302b4ce0aa317c62f  gcc/testsuite/gfortran.dg/pdt_1.f03
  87a73e9cfd1a075484405f19dbac3abe  gcc/testsuite/gfortran.dg/pdt_10.f03
! bbf73734b60d2500381f37fc07248411  gcc/testsuite/gfortran.dg/pdt_11.f03
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 5e6d6f4eb70dbb7b23751aa6e68d6fdd  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
  f5e7364f447dbb0b3be07c8238f738cc  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
  1be387788d3dfc3e6ad6918a8d5f4291  gcc/testsuite/gfortran.dg/pdt_19.f03
  3d1ced13c0fde7696153e2188eee96b6  gcc/testsuite/gfortran.dg/pdt_2.f03
! 015f9483c0b890f9d696b6bde3ce5a4a  gcc/testsuite/gfortran.dg/pdt_20.f03
  28c0797012a570952b5f39fde15bd010  gcc/testsuite/gfortran.dg/pdt_21.f03
  3210a766069bc40d129607cfcfa58040  gcc/testsuite/gfortran.dg/pdt_22.f03
! 9bad4f0659fba0b650738ccdfa7a815d  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
  b7850b870694f099600d54c31ecfcd07  gcc/testsuite/gfortran.dg/pdt_26.f03
  f01af67b109adaf1b93b0098bc7de134  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
! ca0a7c2af4037446fafd071c64a60c9e  gcc/testsuite/gfortran.dg/pdt_3.f03
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
--- 113296,113322 ----
  4091b0cda1b37aa9933aa0582f11916a  gcc/testsuite/gfortran.dg/past_eor.f90
  32e3a39285b3fee302b4ce0aa317c62f  gcc/testsuite/gfortran.dg/pdt_1.f03
  87a73e9cfd1a075484405f19dbac3abe  gcc/testsuite/gfortran.dg/pdt_10.f03
! 5a0999252f018311918f94dfff91e9e1  gcc/testsuite/gfortran.dg/pdt_11.f03
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 9730185be148f14d93bd6417d80b1fbc  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
  f5e7364f447dbb0b3be07c8238f738cc  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
  1be387788d3dfc3e6ad6918a8d5f4291  gcc/testsuite/gfortran.dg/pdt_19.f03
  3d1ced13c0fde7696153e2188eee96b6  gcc/testsuite/gfortran.dg/pdt_2.f03
! 81b13391439498364f679131cdcd43ab  gcc/testsuite/gfortran.dg/pdt_20.f03
  28c0797012a570952b5f39fde15bd010  gcc/testsuite/gfortran.dg/pdt_21.f03
  3210a766069bc40d129607cfcfa58040  gcc/testsuite/gfortran.dg/pdt_22.f03
! 80859b95d06bb3b0d7f79b4a46b4e709  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
  b7850b870694f099600d54c31ecfcd07  gcc/testsuite/gfortran.dg/pdt_26.f03
  f01af67b109adaf1b93b0098bc7de134  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
! e1c1e0938f7ad887363fea7ce87c4e8f  gcc/testsuite/gfortran.dg/pdt_3.f03
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
*************** f5ecad1df1c3f9e7d4bf8d95be2b45a5  gcc/te
*** 113239,113247 ****
  2588a29b1e8d5e652dd511316facfa46  gcc/testsuite/gfortran.dg/pdt_36.f03
  9abf2f0827863994cae83f3e9a57bbe0  gcc/testsuite/gfortran.dg/pdt_37.f03
  bf9b6323f7816780db5e9b60fb1b8dee  gcc/testsuite/gfortran.dg/pdt_38.f03
! 1287b32699b5bb0a9f59485bc0969042  gcc/testsuite/gfortran.dg/pdt_39.f03
  26c6f55cb76e1a76617fc3167f296a53  gcc/testsuite/gfortran.dg/pdt_4.f03
! c8554a07d7f9f6deff3996dc8dd428e7  gcc/testsuite/gfortran.dg/pdt_40.f03
  5061f7ef70cf2d270a5ff3643419a520  gcc/testsuite/gfortran.dg/pdt_41.f03
  332622c9d68e723173599ee918559f52  gcc/testsuite/gfortran.dg/pdt_42.f03
  26458fabdc3fb974b6ac96e29effd590  gcc/testsuite/gfortran.dg/pdt_43.f03
--- 113327,113335 ----
  2588a29b1e8d5e652dd511316facfa46  gcc/testsuite/gfortran.dg/pdt_36.f03
  9abf2f0827863994cae83f3e9a57bbe0  gcc/testsuite/gfortran.dg/pdt_37.f03
  bf9b6323f7816780db5e9b60fb1b8dee  gcc/testsuite/gfortran.dg/pdt_38.f03
! 0bbb66e970e4b2cc0b23cfac47a0a1e4  gcc/testsuite/gfortran.dg/pdt_39.f03
  26c6f55cb76e1a76617fc3167f296a53  gcc/testsuite/gfortran.dg/pdt_4.f03
! 5a1a0909b561f7bfa9564d4a626d9f7c  gcc/testsuite/gfortran.dg/pdt_40.f03
  5061f7ef70cf2d270a5ff3643419a520  gcc/testsuite/gfortran.dg/pdt_41.f03
  332622c9d68e723173599ee918559f52  gcc/testsuite/gfortran.dg/pdt_42.f03
  26458fabdc3fb974b6ac96e29effd590  gcc/testsuite/gfortran.dg/pdt_43.f03
*************** c81eb638a36b687e5dc5d831b100a2ae  gcc/te
*** 113250,113255 ****
--- 113338,113349 ----
  3d693f5ae134fee41983008264ef3bb0  gcc/testsuite/gfortran.dg/pdt_46.f03
  743c13d00cb00139a1f209ced4c4ee65  gcc/testsuite/gfortran.dg/pdt_47.f03
  6300d0e63eabdd0e66d6748d290dfdd3  gcc/testsuite/gfortran.dg/pdt_48.f03
+ b89a8aa7030c869fe0210fab0f943107  gcc/testsuite/gfortran.dg/pdt_49.f03
+ 76d2005236b1088d103403938267e6e3  gcc/testsuite/gfortran.dg/pdt_50.f03
+ 1888f05e005525e88931abedd8a19054  gcc/testsuite/gfortran.dg/pdt_51.f03
+ 7d90ca2b7f479f61fde636fdfc7de7a4  gcc/testsuite/gfortran.dg/pdt_52.f03
+ 2704deb60c31f295fd0ec82e8b4a8bef  gcc/testsuite/gfortran.dg/pdt_53.f03
+ 4f8973b48c0722defa9fac5a7e1e45f0  gcc/testsuite/gfortran.dg/pdt_54.f03
  65d2ad728417ad3174fc1ce2b51a458d  gcc/testsuite/gfortran.dg/pdt_6.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
*************** a9c38f145300eee1aaca2ccee4d418fd  gcc/te
*** 115444,115449 ****
--- 115538,115544 ----
  5fcbccbbe6f25c7610a63673951af1d0  gcc/testsuite/gfortran.dg/ubound_1.f90
  3487e8fcd11181a286e307cf481c7df0  gcc/testsuite/gfortran.dg/ubsan/bind-c-intent-out-2.f90
  5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.f90
+ 1c469dba0af5ca608c386643d45c9456  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90
  ddea8e97d88b939147b22730616832d2  gcc/testsuite/gfortran.dg/ubsan/pr101624.f90
  e291127c769443ec31b3cab6dcce2f99  gcc/testsuite/gfortran.dg/ubsan/pr106062.f90
  2a2d03103f533a9231ab65f2a1ac7b69  gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
*************** d845359337435f578035928aae3a54a9  gcc/te
*** 118586,118591 ****
--- 118681,118687 ----
  710f0098af79353fbabe70716868b46c  gcc/testsuite/gnat.dg/allocator.adb
  9ce9e39be8e332ea909ef77b7a0955c0  gcc/testsuite/gnat.dg/allocator2.adb
  337bdf33957aa3def74f1c62d778d5de  gcc/testsuite/gnat.dg/allocator2.ads
+ cb13bebe3bf57c562e8c516aa539cae9  gcc/testsuite/gnat.dg/allocator3.adb
  bbc4e723041a85252bdd22da4896f11f  gcc/testsuite/gnat.dg/allocator_maxalign1.adb
  e092999a834f75b4b2227b818a8fa1bd  gcc/testsuite/gnat.dg/allocator_maxalign2.adb
  f9d8770ca5c9726aa3c53cd819807ead  gcc/testsuite/gnat.dg/allocator_maxalign2.ads
*************** d470ada2b4a8aa6d586007ab8f6e7e5f  gcc/te
*** 120189,120194 ****
--- 120285,120292 ----
  fde5d5ed0c271572ac7da0e31e22bc5c  gcc/testsuite/gnat.dg/range_check7.adb
  25b5534a4bc4502074ce6463c2f5e96b  gcc/testsuite/gnat.dg/rational_arithmetic.ads
  46cc8f530fa18a6afd30b9d241f7967e  gcc/testsuite/gnat.dg/recursive_call.adb
+ 91cab892d1898f9564d603cfa1201d11  gcc/testsuite/gnat.dg/reduce1.adb
+ 0b27bcc5788ce003bc049b34d20d5c88  gcc/testsuite/gnat.dg/reduce2.adb
  50be8d98f4f9ac99d64926a10596a2df  gcc/testsuite/gnat.dg/ref_type.adb
  5457827e708b7bfc92ffe5610655a443  gcc/testsuite/gnat.dg/ref_type.ads
  222b5d10f23a2e8e8a5e4d41e86e66ed  gcc/testsuite/gnat.dg/regpat1.adb
*************** a78709499f75b434faad5c3ce31121e8  gcc/te
*** 120874,120879 ****
--- 120972,120979 ----
  cd1ae8bd0a64f513e4a2f5cf6f3ddf35  gcc/testsuite/gnat.dg/unroll4.adb
  7d073fe12b9aad1d0208bc4837ded6fb  gcc/testsuite/gnat.dg/unroll4.ads
  9ea3823af135f00304442c546f455041  gcc/testsuite/gnat.dg/unroll4_pkg.ads
+ 0c380665cb8866e926609d97d60e74d3  gcc/testsuite/gnat.dg/use_type1.adb
+ 2ff25aab3331ed26139d02e26ef160d7  gcc/testsuite/gnat.dg/use_type2.adb
  9e88b7ce099b1d8cf08618b19708a2f3  gcc/testsuite/gnat.dg/valid1.adb
  b9b78fbd058ac9dfd657617df5ab8b4c  gcc/testsuite/gnat.dg/valid4.adb
  978b7483f1bef09979e22217b25587be  gcc/testsuite/gnat.dg/valid4_pkg.adb
*************** a447115837a98ea4ab8390ca3c1d400a  gcc/te
*** 123273,123279 ****
  2d0f3bd65b46db089989d897e60ee550  gcc/testsuite/lib/sarif-replay.exp
  cdfac88acd33dec95625eb0cca4bc571  gcc/testsuite/lib/sarif-schema-2.1.0.json
  808895f3fef94ae1653cf826a4c6c9de  gcc/testsuite/lib/sarif-schema-2.2-prerelease-2024-08-08.json
! 5ab9c47ebaf746557a8f8a5d300abfe3  gcc/testsuite/lib/sarif.py
  bab70c146620e4a007335796c78aaa8b  gcc/testsuite/lib/scanasm.exp
  83e6c25542a5f84dc92619a64a4fe0e7  gcc/testsuite/lib/scandump.exp
  67189798dcf413cd565b99dee45a8f39  gcc/testsuite/lib/scanhtml.exp
--- 123373,123379 ----
  2d0f3bd65b46db089989d897e60ee550  gcc/testsuite/lib/sarif-replay.exp
  cdfac88acd33dec95625eb0cca4bc571  gcc/testsuite/lib/sarif-schema-2.1.0.json
  808895f3fef94ae1653cf826a4c6c9de  gcc/testsuite/lib/sarif-schema-2.2-prerelease-2024-08-08.json
! 5a6cedce32c4c01005adb940226eae62  gcc/testsuite/lib/sarif.py
  bab70c146620e4a007335796c78aaa8b  gcc/testsuite/lib/scanasm.exp
  83e6c25542a5f84dc92619a64a4fe0e7  gcc/testsuite/lib/scandump.exp
  67189798dcf413cd565b99dee45a8f39  gcc/testsuite/lib/scanhtml.exp
*************** b4a6da1471f279353aaca4956c18cdea  gcc/tr
*** 125860,125866 ****
  bcff760f6710b9047412aba72a381983  gcc/tree-affine.h
  527c9fa3845b2653cafc14c109129179  gcc/tree-assume.cc
  23590c969997d33ec2e1fa1da2a89526  gcc/tree-call-cdce.cc
! b135434b624e2ec76b8241f0a7c8ada7  gcc/tree-cfg.cc
  591222e5199894b9b5d23b1822f7e309  gcc/tree-cfg.h
  0bb909d63756c23161166845fb40462b  gcc/tree-cfgcleanup.cc
  b528a0932f50504df146d112f7d01a5c  gcc/tree-cfgcleanup.h
--- 125960,125966 ----
  bcff760f6710b9047412aba72a381983  gcc/tree-affine.h
  527c9fa3845b2653cafc14c109129179  gcc/tree-assume.cc
  23590c969997d33ec2e1fa1da2a89526  gcc/tree-call-cdce.cc
! ca9ccb241a562a761635c8783f9fefbe  gcc/tree-cfg.cc
  591222e5199894b9b5d23b1822f7e309  gcc/tree-cfg.h
  0bb909d63756c23161166845fb40462b  gcc/tree-cfgcleanup.cc
  b528a0932f50504df146d112f7d01a5c  gcc/tree-cfgcleanup.h
*************** f9731b5179d6c364587220c2aea59a3e  gcc/tr
*** 125882,125888 ****
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
! 3326ca7ea2452d7368a6e78f0025d7f8  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
  430fc05a2aa5a9fe29c31d8a315fb825  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
--- 125982,125988 ----
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
! e9f860de6645d35018a087515bcfe04f  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
  430fc05a2aa5a9fe29c31d8a315fb825  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
*************** de65dfb7d298f3e879ec71e5e2e95913  gcc/tr
*** 125902,125908 ****
  b9d636bd9641f3038bbe37a70684e18e  gcc/tree-outof-ssa.h
  6a56bd09a2fc674984a48e8587c86d17  gcc/tree-parloops.cc
  beaa17685ead93eee17f6373d004c4c4  gcc/tree-parloops.h
! 1acfa496a76fe80f07144ff7d1534462  gcc/tree-pass.h
  3c7e6c651df0a795a0b1b01ca9c75a4d  gcc/tree-phinodes.cc
  460fc341cb2d78f53e0a27c81de36a7d  gcc/tree-phinodes.h
  10ba4bea4c7470735678acc6088c06d5  gcc/tree-predcom.cc
--- 126002,126008 ----
  b9d636bd9641f3038bbe37a70684e18e  gcc/tree-outof-ssa.h
  6a56bd09a2fc674984a48e8587c86d17  gcc/tree-parloops.cc
  beaa17685ead93eee17f6373d004c4c4  gcc/tree-parloops.h
! 64910ff3eb70e4b4e325fdb5466781a1  gcc/tree-pass.h
  3c7e6c651df0a795a0b1b01ca9c75a4d  gcc/tree-phinodes.cc
  460fc341cb2d78f53e0a27c81de36a7d  gcc/tree-phinodes.h
  10ba4bea4c7470735678acc6088c06d5  gcc/tree-predcom.cc
*************** c022e816e38c8f399e6a16163c56d6db  gcc/tr
*** 125917,125925 ****
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
! 1e7d1b7025bec7ac1b3ef3e07d75b4ec  gcc/tree-ssa-alias.cc
  9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
! c985687279cce7b8e312d1db5b519ac0  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
  44217fe298d550aecd4800f65391c931  gcc/tree-ssa-coalesce.h
--- 126017,126025 ----
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
! 185e75eff0ace3e984dbb5c3aa1478cd  gcc/tree-ssa-alias.cc
  9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
! bc6f720750badcd2ff68dddf544e75eb  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
  44217fe298d550aecd4800f65391c931  gcc/tree-ssa-coalesce.h
*************** adfc498b0c97a8123c02d418757df496  gcc/tr
*** 125930,125936 ****
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
  6ddd79e7a349847a539144d422bf5a49  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! 9dd9941b261d30af272484037659f32e  gcc/tree-ssa-forwprop.cc
  0915c4bbeb42abdda8799c2b27e5db12  gcc/tree-ssa-ifcombine.cc
  edab16a20512b0146482bb2120696d6a  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
--- 126030,126036 ----
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
  6ddd79e7a349847a539144d422bf5a49  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! f5d095b85c20c439c82740fb83c08041  gcc/tree-ssa-forwprop.cc
  0915c4bbeb42abdda8799c2b27e5db12  gcc/tree-ssa-ifcombine.cc
  edab16a20512b0146482bb2120696d6a  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
*************** fbcc93539b376489c1256eb8cf2d4800  gcc/tr
*** 125948,125960 ****
  57dcd3919dadb6f23e2bcefe55f7cd14  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
! 889e8ffdba46e492407a92ae3df97ceb  gcc/tree-ssa-math-opts.cc
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  8ccf736dffb311078aa79c9036502189  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 7932e23b35e7d0ecd4d4af27da96ad29  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
! 0b56ba415f4caef4c66dab3394a7f2d1  gcc/tree-ssa-pre.cc
  bc94d7017980d97ff957feb308ae771c  gcc/tree-ssa-propagate.cc
  fc4f0e674e345822394ee5645ce22429  gcc/tree-ssa-propagate.h
  128e45b0a401ad495d13d7de1062bd6e  gcc/tree-ssa-reassoc.cc
--- 126048,126060 ----
  57dcd3919dadb6f23e2bcefe55f7cd14  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
! 231a554afe906b565a0da84f7dc1179e  gcc/tree-ssa-math-opts.cc
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  8ccf736dffb311078aa79c9036502189  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 155df36727aec669960a06341e9c253d  gcc/tree-ssa-phiopt.cc
  482f2356d81c3633ca476cd6628908b8  gcc/tree-ssa-phiprop.cc
! 45bbadfd0296a849ac6eebf1a85d74ec  gcc/tree-ssa-pre.cc
  bc94d7017980d97ff957feb308ae771c  gcc/tree-ssa-propagate.cc
  fc4f0e674e345822394ee5645ce22429  gcc/tree-ssa-propagate.h
  128e45b0a401ad495d13d7de1062bd6e  gcc/tree-ssa-reassoc.cc
*************** cd9ecd37945746b6458a78b083cbe1b1  gcc/tr
*** 125977,125983 ****
  39e65868f1dbc92a93a03e6b8245660a  gcc/tree-ssa-threadupdate.cc
  276cf5fbfd0e5a710101c57effa7d7d2  gcc/tree-ssa-threadupdate.h
  fbd423299c28bb3b3577ec61aba45439  gcc/tree-ssa-uncprop.cc
! 1c04b8ffbb8738de9504d80999af12c8  gcc/tree-ssa-uninit.cc
  0cb7cabeb68ef8727724158e83e6c89e  gcc/tree-ssa.cc
  95d033c8a4bc14c898459494486fd902  gcc/tree-ssa.h
  a158ddca5c4525544dfaae5f1f6e4e1c  gcc/tree-ssanames.cc
--- 126077,126083 ----
  39e65868f1dbc92a93a03e6b8245660a  gcc/tree-ssa-threadupdate.cc
  276cf5fbfd0e5a710101c57effa7d7d2  gcc/tree-ssa-threadupdate.h
  fbd423299c28bb3b3577ec61aba45439  gcc/tree-ssa-uncprop.cc
! c071186b46f37cd7acd76a679deb3f9d  gcc/tree-ssa-uninit.cc
  0cb7cabeb68ef8727724158e83e6c89e  gcc/tree-ssa.cc
  95d033c8a4bc14c898459494486fd902  gcc/tree-ssa.h
  a158ddca5c4525544dfaae5f1f6e4e1c  gcc/tree-ssanames.cc
*************** c98debbdc978c10e8934f3b4fb7e2504  gcc/tr
*** 125994,126000 ****
  2195dd84fccf985a9e012fb29c226e1c  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  f840a486e62fde7baf6f487e0c0912bb  gcc/tree-vect-loop-manip.cc
! 14395a99ace54a81840d19607f9d79a7  gcc/tree-vect-loop.cc
  7ea0fa1340a67ccdeb68550f5c873ce3  gcc/tree-vect-patterns.cc
  f0e64752211e2caf975148f28e7b4caf  gcc/tree-vect-slp-patterns.cc
  bdbb899ad6a9db173421fa2bd75d520c  gcc/tree-vect-slp.cc
--- 126094,126100 ----
  2195dd84fccf985a9e012fb29c226e1c  gcc/tree-vect-data-refs.cc
  5d8bb0df796ceea958fd65c5aedb5bce  gcc/tree-vect-generic.cc
  f840a486e62fde7baf6f487e0c0912bb  gcc/tree-vect-loop-manip.cc
! 5b2501b33e7ca2e329beaad42d856e2d  gcc/tree-vect-loop.cc
  7ea0fa1340a67ccdeb68550f5c873ce3  gcc/tree-vect-patterns.cc
  f0e64752211e2caf975148f28e7b4caf  gcc/tree-vect-slp-patterns.cc
  bdbb899ad6a9db173421fa2bd75d520c  gcc/tree-vect-slp.cc
*************** c8efeee600d612c4bae8dda4bd45ee54  gcc/tr
*** 126007,126013 ****
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
  7e9874b523e782de35bee2676217a4a4  gcc/tree.cc
  2b3067f4ee14760d08fdfee4eb6b8a00  gcc/tree.def
! f73dafbfada467e2c9b4b1909524d7eb  gcc/tree.h
  b642c83968cda285afc700da2fb276d5  gcc/treestruct.def
  84205f5a5b424f30ce8c527b234e3f94  gcc/tristate.cc
  ea37ace5dddab6f4b2b9608516bebc35  gcc/tristate.h
--- 126107,126113 ----
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
  7e9874b523e782de35bee2676217a4a4  gcc/tree.cc
  2b3067f4ee14760d08fdfee4eb6b8a00  gcc/tree.def
! 0b1e1c6e91a730a8812656608dff535a  gcc/tree.h
  b642c83968cda285afc700da2fb276d5  gcc/treestruct.def
  84205f5a5b424f30ce8c527b234e3f94  gcc/tristate.cc
  ea37ace5dddab6f4b2b9608516bebc35  gcc/tristate.h
*************** a4370fef630f3c010a5988b36caeb61d  gcc/ve
*** 126047,126053 ****
  54a3885ae2d326266cc13ab447394d8f  gcc/vector-builder.h
  40fec2b7bbea0b654d0704244caa4e9c  gcc/vmsdbg.h
  c2784afc7476e44bc70100f7c350e07b  gcc/vmsdbgout.cc
! 41fd2e91149d2f3bc8f889ed41c2c410  gcc/vr-values.cc
  0901703123c4198bb16fc8076912bd2e  gcc/vr-values.h
  9ce284cb128dc6f9cadddec86a09bb4a  gcc/vtable-verify.cc
  cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vtable-verify.h
--- 126147,126153 ----
  54a3885ae2d326266cc13ab447394d8f  gcc/vector-builder.h
  40fec2b7bbea0b654d0704244caa4e9c  gcc/vmsdbg.h
  c2784afc7476e44bc70100f7c350e07b  gcc/vmsdbgout.cc
! b34f862ab298a951b9a0f431422e5cf1  gcc/vr-values.cc
  0901703123c4198bb16fc8076912bd2e  gcc/vr-values.h
  9ce284cb128dc6f9cadddec86a09bb4a  gcc/vtable-verify.cc
  cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vtable-verify.h
*************** c7399bbb7eadd31d7cd04991cd79c238  includ
*** 126137,126147 ****
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
  c01f38de8270d558b8d3ecac839d3bbf  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 94fcccb0a68d874f2b0b872e5d2684e8  libatomic/ChangeLog
  78b4f847f9673c9414da8064d2d6817b  libatomic/Makefile.am
! 6e273c07f6a054b0b18b59c9421f178b  libatomic/Makefile.in
  04a8eb275561484cf0d6f8c459a38177  libatomic/acinclude.m4
! d93a7644df6ecd2eda448dcb5b1baeb3  libatomic/aclocal.m4
  b741b38c451feebdcd9aedce6e37b702  libatomic/auto-config.h.in
  43e4662201ba553905a037a8ad2a470b  libatomic/cas_n.c
  49704e7e33ce53ec4c1f6d60dc504b79  libatomic/config/aarch64/aarch64-config.h
--- 126237,126247 ----
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
  c01f38de8270d558b8d3ecac839d3bbf  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 1a2c94dd3588132fc0f73ffa4a1e9522  libatomic/ChangeLog
  78b4f847f9673c9414da8064d2d6817b  libatomic/Makefile.am
! 1215bcceca94e909d96e5351c6a960c5  libatomic/Makefile.in
  04a8eb275561484cf0d6f8c459a38177  libatomic/acinclude.m4
! 65ce51ad1e77408c7dba775ba9859d1e  libatomic/aclocal.m4
  b741b38c451feebdcd9aedce6e37b702  libatomic/auto-config.h.in
  43e4662201ba553905a037a8ad2a470b  libatomic/cas_n.c
  49704e7e33ce53ec4c1f6d60dc504b79  libatomic/config/aarch64/aarch64-config.h
*************** ed3d69739cb2f35407547229f0393f92  libato
*** 126174,126180 ****
  e40da0e8515ee6996456294b571e5572  libatomic/config/x86/fenv.c
  e3229b3119558c9d6d6d8f8676d4f1ce  libatomic/config/x86/host-config.h
  6d8f1d8fc6da675bbeacfbd55dca52c9  libatomic/config/x86/init.c
! ed953719e723aa6bd01db503c1b00092  libatomic/configure
  79fceecd63e79f4dccbe6fe9dd6c997e  libatomic/configure.ac
  3af5de9020aa1a7aa503e70067cd98d8  libatomic/configure.tgt
  cffc539e08bc3149260124f3eb09e1a1  libatomic/exch_n.c
--- 126274,126280 ----
  e40da0e8515ee6996456294b571e5572  libatomic/config/x86/fenv.c
  e3229b3119558c9d6d6d8f8676d4f1ce  libatomic/config/x86/host-config.h
  6d8f1d8fc6da675bbeacfbd55dca52c9  libatomic/config/x86/init.c
! b60eddf10223a7835282dab7efa33798  libatomic/configure
  79fceecd63e79f4dccbe6fe9dd6c997e  libatomic/configure.ac
  3af5de9020aa1a7aa503e70067cd98d8  libatomic/configure.tgt
  cffc539e08bc3149260124f3eb09e1a1  libatomic/exch_n.c
*************** bc390700f9512a3b3eb690eb394d2acb  libato
*** 126201,126207 ****
  7086349c671f41e815a2d73551fe98b2  libatomic/store_n.c
  b62c913583a1c24be476956037b71a99  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
! 7f7cbf5cf0b5b7eaf13a26b895cabed6  libatomic/testsuite/Makefile.in
  ed1ed157638cd6b95884f216e3414581  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
  64915dff2d4513942794e67acc165a35  libatomic/testsuite/lib/libatomic.exp
--- 126301,126307 ----
  7086349c671f41e815a2d73551fe98b2  libatomic/store_n.c
  b62c913583a1c24be476956037b71a99  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
! e47bcf755f9a8cab0eb3815277403ff3  libatomic/testsuite/Makefile.in
  ed1ed157638cd6b95884f216e3414581  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
  64915dff2d4513942794e67acc165a35  libatomic/testsuite/lib/libatomic.exp
*************** c03a072efac9b30f8f8429ac52fd246b  libato
*** 126234,126245 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 1295e10972bdc9d3f6a242ec042f0588  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  d8ded612c0b12538d827f766c2ac1f16  libbacktrace/Makefile.am
! 069039740ab2b76bff90e7ff6c92e85d  libbacktrace/Makefile.in
  edfaf8bfb5589c6323039e8289c4bb3c  libbacktrace/README
! 9535fdd392305d7ecfe0d5a189cbd85b  libbacktrace/aclocal.m4
  c4c618c66a8dcae1c2fce9d2f88db4eb  libbacktrace/alloc.c
  e944b223042b04a3e9ea49549d30f8bb  libbacktrace/allocfail.c
  0af46fe95f2402cee7dfc388042ebe20  libbacktrace/allocfail.sh
--- 126334,126345 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 932e0eeb8ec29eba2f1381b6c2a38d71  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  d8ded612c0b12538d827f766c2ac1f16  libbacktrace/Makefile.am
! ea52a9b9117583c28940290e71a7aee5  libbacktrace/Makefile.in
  edfaf8bfb5589c6323039e8289c4bb3c  libbacktrace/README
! 4883dd3a6f42b0e31a8a56dbd4de9950  libbacktrace/aclocal.m4
  c4c618c66a8dcae1c2fce9d2f88db4eb  libbacktrace/alloc.c
  e944b223042b04a3e9ea49549d30f8bb  libbacktrace/allocfail.c
  0af46fe95f2402cee7dfc388042ebe20  libbacktrace/allocfail.sh
*************** e944b223042b04a3e9ea49549d30f8bb  libbac
*** 126249,126256 ****
  cf55a1c8cc5ab2d6e794b565d053b0f4  libbacktrace/backtrace.h
  8ea895edb6eba4b29817bd86c8a437f2  libbacktrace/btest.c
  1680f9d27c3626fb2d07ae4ee9206da6  libbacktrace/config.h.in
! 9bcbf95b40be09165470e39afbb61a3a  libbacktrace/configure
! 7b5ede0887b8a163c6c8fc60e6f0afa9  libbacktrace/configure.ac
  016c0a2e5e6e7ca45b59779f8484e07c  libbacktrace/dwarf.c
  aaf0af38ca06cc1703c89538b7bcca5b  libbacktrace/edtest.c
  5a71ff6f0fd1766e96f55eb563d3ebd5  libbacktrace/edtest2.c
--- 126349,126356 ----
  cf55a1c8cc5ab2d6e794b565d053b0f4  libbacktrace/backtrace.h
  8ea895edb6eba4b29817bd86c8a437f2  libbacktrace/btest.c
  1680f9d27c3626fb2d07ae4ee9206da6  libbacktrace/config.h.in
! 95796f8f1c736f7cf01c84a0f5ef59b6  libbacktrace/configure
! 5dd5da9deed8e61384200b23c67b817b  libbacktrace/configure.ac
  016c0a2e5e6e7ca45b59779f8484e07c  libbacktrace/dwarf.c
  aaf0af38ca06cc1703c89538b7bcca5b  libbacktrace/edtest.c
  5a71ff6f0fd1766e96f55eb563d3ebd5  libbacktrace/edtest2.c
*************** c0fa0a593b3a9b1ffd2f84bc40a22980  libbac
*** 126283,126299 ****
  69e738d1cd72baaeda073609f133f005  libbacktrace/xztest.c
  4d7dab09ddbe953244044c8a60434ad9  libbacktrace/zstdtest.c
  08e64385c7a2a6f5a8d0e25f4c237e51  libbacktrace/ztest.c
! 30400f2d73a014121d52bf99768e01cb  libcc1/ChangeLog
  e396ef427fc1a75d765f69ea2b48aef9  libcc1/Makefile.am
! 0c197f689319d609a20206994cd5eb7e  libcc1/Makefile.in
! b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
  a7921a04b41c3295dbab2dd307ae1794  libcc1/callbacks.cc
  4f6c2ccf3b49364f7c5628cca8a9ddcb  libcc1/callbacks.hh
  9d81ce1461f24e4af7c8639d94f06789  libcc1/cc1plugin-config.h.in
  c82e9b4d1b92d009ed3f69590b3ab9b8  libcc1/compiler-name.hh
  fe09cc65e2242b1f5e5ec3dc3da54c20  libcc1/compiler.cc
  717133d037105479c95708d7362528cf  libcc1/compiler.hh
! 3f162347d86da65cd14fe4430d2e799c  libcc1/configure
  a3cb3c5aa8181bef86a5a5e4e03235c3  libcc1/configure.ac
  ef80637fedf68c1802c638751df08472  libcc1/connection.cc
  5c6231697372fed74cf47657b57a1009  libcc1/connection.hh
--- 126383,126399 ----
  69e738d1cd72baaeda073609f133f005  libbacktrace/xztest.c
  4d7dab09ddbe953244044c8a60434ad9  libbacktrace/zstdtest.c
  08e64385c7a2a6f5a8d0e25f4c237e51  libbacktrace/ztest.c
! 7269416886629eacf0b02823265cb7b1  libcc1/ChangeLog
  e396ef427fc1a75d765f69ea2b48aef9  libcc1/Makefile.am
! 270e13d9f539c9eacc16d848641ecb9d  libcc1/Makefile.in
! e6c98f41e0035dd3e80d4c55a6301318  libcc1/aclocal.m4
  a7921a04b41c3295dbab2dd307ae1794  libcc1/callbacks.cc
  4f6c2ccf3b49364f7c5628cca8a9ddcb  libcc1/callbacks.hh
  9d81ce1461f24e4af7c8639d94f06789  libcc1/cc1plugin-config.h.in
  c82e9b4d1b92d009ed3f69590b3ab9b8  libcc1/compiler-name.hh
  fe09cc65e2242b1f5e5ec3dc3da54c20  libcc1/compiler.cc
  717133d037105479c95708d7362528cf  libcc1/compiler.hh
! 227f83febc768071e945e7f12e02cd33  libcc1/configure
  a3cb3c5aa8181bef86a5a5e4e03235c3  libcc1/configure.ac
  ef80637fedf68c1802c638751df08472  libcc1/connection.cc
  5c6231697372fed74cf47657b57a1009  libcc1/connection.hh
*************** a97c47969dfc92a7666dfe3c2e1e1448  libdec
*** 126467,126473 ****
  beb433e3e74659ef6595bb7dc6760d90  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 5d99a9d180fb9c2c1d319b97952ac0de  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
--- 126567,126573 ----
  beb433e3e74659ef6595bb7dc6760d90  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 0ed4276d159b4ff7141162f4eeab338a  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
*************** cc4552d9286c17a905988bf55f96def7  libffi
*** 126477,126488 ****
  835b22825bd53e411ac26c18666e1ae5  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
  1685fa58ee6d09dbcf84f25f1ed2be42  libffi/Makefile.am
! 2a20044717e4c10c4f0c45b38b9973c3  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
! d591981dfeccb8df500213a4baa6bb7e  libffi/aclocal.m4
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! b129629db06d710e4bc7ff5b8719756a  libffi/configure
  0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
  54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
--- 126577,126588 ----
  835b22825bd53e411ac26c18666e1ae5  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
  1685fa58ee6d09dbcf84f25f1ed2be42  libffi/Makefile.am
! 8072bae95b6d87464408fa1f8dbbef3f  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
! 54e1bb9dc8859b05ce3d3bb15c85704c  libffi/aclocal.m4
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! a204e783f90a87a791483842ce8d7596  libffi/configure
  0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
  54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
*************** db28be3951c18d6db6e90f7e612bc67b  libffi
*** 126491,126497 ****
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! e76936a8cfe1f7636b1f5349e16810c4  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  a07e638debebcc001e7a73eb4a90ddba  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
--- 126591,126597 ----
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! 545982dc8250d34ea0698384cce2648f  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  a07e638debebcc001e7a73eb4a90ddba  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
*************** ad82c93bb7f9710ee5d0f0e9af25e51d  libffi
*** 126501,126507 ****
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! dfede02d89dd358b2129ac5e9717fb69  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
--- 126601,126607 ----
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! c589e94738aa0a50780157c2a43ea3ac  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
*************** e6a372c1ab34c8f1f71396d597076973  libffi
*** 126649,126655 ****
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 7c3a4cb5a7d31e4021685ac6de71be1b  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
  aa258e4878fe20cf3490deabacccb583  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
--- 126749,126755 ----
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 411fd444178f93d4c680a7970cd12ed4  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
  aa258e4878fe20cf3490deabacccb583  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
*************** a3eb5dee2788fe0a6c42502ba658eddd  libffi
*** 126863,126869 ****
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 5d6dbaf9986a327d801d022b27a6371b  libgcc/ChangeLog
  e63b544f83f9b69bd08ddb095b34235a  libgcc/Makefile.in
  3909078d285165298c78eb97ea152e90  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
--- 126963,126969 ----
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 634b4c5a1c80b710a9596c7fbfbe061b  libgcc/ChangeLog
  e63b544f83f9b69bd08ddb095b34235a  libgcc/Makefile.in
  3909078d285165298c78eb97ea152e90  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
*************** eb3161bf886026cdcf8a78cea885fdd2  libgcc
*** 128152,128158 ****
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 7116c3b0824ae4ff7d3e58ab2e390fda  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
--- 128252,128258 ----
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 48d86c5f1823cd2314279314f2cfb618  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
*************** f017ba40c4699f1549cd341ad688007f  libgcc
*** 128428,128445 ****
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! da5010aeeb502921d9f611bf337d149e  libgcobol/ChangeLog
  b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
  e5a4ad84e4fa547c96f01437e14de6aa  libgcobol/Makefile.am
! db13e8bd0049adad97c22f1066ab8e2c  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
! 0bf6afe766a6886d2ac1f175300477f2  libgcobol/aclocal.m4
  3d3a800933c22566d11e09ab88c455e1  libgcobol/charmaps.cc
  08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
  f56b713cf2ef2788fc0741054c12d8fe  libgcobol/common-defs.h
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! 5d258f446afad49c8f86f2fe4ca9a700  libgcobol/configure
  faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
  5fe397a7431be5504323e358a0a524b7  libgcobol/constants.cc
--- 128528,128545 ----
  804399bda5c6c23cd3e0cd78c21bc2fd  libgcc/vtv_end_preinit.c
  407de23229097d9b9a4d00e2e9c60c70  libgcc/vtv_start.c
  ba13e8c1385837f9a736ead153be6251  libgcc/vtv_start_preinit.c
! 8859b1816231793ea07bc1a0fe0ede30  libgcobol/ChangeLog
  b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
  e5a4ad84e4fa547c96f01437e14de6aa  libgcobol/Makefile.am
! 1764de733c5ca0d6118cc91d5244e750  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
  8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
! edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
  3d3a800933c22566d11e09ab88c455e1  libgcobol/charmaps.cc
  08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
  f56b713cf2ef2788fc0741054c12d8fe  libgcobol/common-defs.h
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! d23a12226b48001cabd28a835c3cb5fc  libgcobol/configure
  faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
  5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
  5fe397a7431be5504323e358a0a524b7  libgcobol/constants.cc
*************** d181dc4dc5c9d99e0a67ac8560f85d88  libgco
*** 128461,128467 ****
  2144463ed36044d228061579e53cbddc  libgcobol/stringbin.h
  7921a81e3cbf784d960d70db7bc6e242  libgcobol/valconv.cc
  c7d27fb7e36a42567d7cc4d14e7ed3fe  libgcobol/valconv.h
! d7bce248a2e4d660c3e4171e9cda6fc8  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 128561,128567 ----
  2144463ed36044d228061579e53cbddc  libgcobol/stringbin.h
  7921a81e3cbf784d960d70db7bc6e242  libgcobol/valconv.cc
  c7d27fb7e36a42567d7cc4d14e7ed3fe  libgcobol/valconv.h
! 6520ed01bbed88782faed4ce1922e024  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** aa424ddf6a9e4e08b8023d3d5b371a0d  libgfo
*** 128487,128495 ****
  09537a69736f655d1e0ccf28367d3ddf  libgfortran/ChangeLog-2024
  16ba29cf4184ed00d26fe02df17c83d7  libgfortran/ISO_Fortran_binding.h
  37aad15f30e8f1452a0429ca441024de  libgfortran/Makefile.am
! 6e7ae7f41c7aaa5dabe267566223bf71  libgfortran/Makefile.in
  43f0b2981fb15d556a8ee8292ef70ba8  libgfortran/acinclude.m4
! 77dad7b87b2adfbfda676696055ef90f  libgfortran/aclocal.m4
  c89d50fda6cbf50698f2d324f8a6ec7e  libgfortran/c99_protos.h
  58e74253159f338caa7fd218f4d86e42  libgfortran/caf/libcaf.h
  482902a583e35b98bb90348a36ac4974  libgfortran/caf/mpi.c
--- 128587,128595 ----
  09537a69736f655d1e0ccf28367d3ddf  libgfortran/ChangeLog-2024
  16ba29cf4184ed00d26fe02df17c83d7  libgfortran/ISO_Fortran_binding.h
  37aad15f30e8f1452a0429ca441024de  libgfortran/Makefile.am
! 9e8eaa74116fa47893a24824cffb5bed  libgfortran/Makefile.in
  43f0b2981fb15d556a8ee8292ef70ba8  libgfortran/acinclude.m4
! 3c4dcfb556f7b670b9c4be79d6f91022  libgfortran/aclocal.m4
  c89d50fda6cbf50698f2d324f8a6ec7e  libgfortran/c99_protos.h
  58e74253159f338caa7fd218f4d86e42  libgfortran/caf/libcaf.h
  482902a583e35b98bb90348a36ac4974  libgfortran/caf/mpi.c
*************** a55ccf6890d641d3f0db92bf916d7acb  libgfo
*** 128504,128510 ****
  8b13cc70e0c48ec76d9238e229cfd587  libgfortran/config/fpu-sysv.h
  f9917563df7bac5d534cef935bdce401  libgfortran/config/t-aix
  3e9dd2029734b8f2c6a1eb2a364d1cbf  libgfortran/config/t-nvptx
! bdc43317247d047df00e316d679c2543  libgfortran/configure
  cd8acb64f38bebd22d33837be9bd242e  libgfortran/configure.ac
  78e88d1cf66770f3359f0a232708eb4b  libgfortran/configure.host
  c30239885274f03fa180aff610914b66  libgfortran/generated/_abs_c10.F90
--- 128604,128610 ----
  8b13cc70e0c48ec76d9238e229cfd587  libgfortran/config/fpu-sysv.h
  f9917563df7bac5d534cef935bdce401  libgfortran/config/t-aix
  3e9dd2029734b8f2c6a1eb2a364d1cbf  libgfortran/config/t-nvptx
! ad6a0afef48442917d573525be9ff911  libgfortran/configure
  cd8acb64f38bebd22d33837be9bd242e  libgfortran/configure.ac
  78e88d1cf66770f3359f0a232708eb4b  libgfortran/configure.host
  c30239885274f03fa180aff610914b66  libgfortran/generated/_abs_c10.F90
*************** f63a06d746592d67d8c161bc2461a24e  libgfo
*** 129487,129508 ****
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 74695767bad36e095b2dc5a497a86c52  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! 38778826306c4efe1f6a33cb21cece23  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! b0383b92fc4bd0e9d6f2c894d2fc961d  libgm2/aclocal.m4
  ec51f8ac3552cbacd95bf08e21a6568a  libgm2/config.h.in
! eaa7b6fd021fa8b1539d65d8d58db3b0  libgm2/configure
  a1615402f37d3412d1901ee58bebbc2c  libgm2/configure.ac
  8cc7e77ebeeff228932145d5e583e1f7  libgm2/configure.host
  2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
  f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! 1c81daa01520f3a05da1ff4d530f5873  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  87d5ba33acc7d56c7dd0f43a7d6660ca  libgm2/libm2iso/ErrnoCategory.cc
  093abbe1256afaed6cf0bf9588c74678  libgm2/libm2iso/Makefile.am
! 0ed2871eb2c8ea782bdcd9005036a7db  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
--- 129587,129608 ----
  e90afde1ec8653f66d433a7cc5e070a7  libgfortran/runtime/select_inc.c
  fa1f81a5ee204308c775545490d24fbd  libgfortran/runtime/stop.c
  08f6570c94f64b0aaf21fb2ec9aa10e9  libgfortran/runtime/string.c
! 8e7e3fd95cc878f99ce56b560e9a7048  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! f26132364738756eeee0acf44fb5aadf  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! d4629d8a3f44bc8f1060e37d381418f6  libgm2/aclocal.m4
  ec51f8ac3552cbacd95bf08e21a6568a  libgm2/config.h.in
! ca71be4b582f000ba36866af5283628e  libgm2/configure
  a1615402f37d3412d1901ee58bebbc2c  libgm2/configure.ac
  8cc7e77ebeeff228932145d5e583e1f7  libgm2/configure.host
  2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
  f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! cfc25cb3101a1a8d7b997af2cb96ee97  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  87d5ba33acc7d56c7dd0f43a7d6660ca  libgm2/libm2iso/ErrnoCategory.cc
  093abbe1256afaed6cf0bf9588c74678  libgm2/libm2iso/Makefile.am
! 0988b519b7c398c84cdb2c2410967b9c  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
  60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
*************** e3037b97506181892bc760a12d9c5f69  libgm2
*** 129510,129522 ****
  33246d6ec18583a1eb0fc89ca61f4fd8  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
  2174db736f05842c30f16bf53515adf5  libgm2/libm2log/Makefile.am
! 03694b1aa63b0fb8ee180e8f2fed57d0  libgm2/libm2log/Makefile.in
  ba2db7fd78510ae0ff3e50d0d57c1b8d  libgm2/libm2min/Makefile.am
! 7f4aeaf0c74fa83422c651bcac4573ea  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
  672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
  2c2dfd30d20bfb2b232b7518576739a2  libgm2/libm2pim/Makefile.am
! 18f74b00a77f727a43e2b350dba6738e  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
--- 129610,129622 ----
  33246d6ec18583a1eb0fc89ca61f4fd8  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
  2174db736f05842c30f16bf53515adf5  libgm2/libm2log/Makefile.am
! a8994ae77fcf3a779f831dbe43826e0d  libgm2/libm2log/Makefile.in
  ba2db7fd78510ae0ff3e50d0d57c1b8d  libgm2/libm2min/Makefile.am
! 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
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 135024,135036 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! abb36b32dec570864d827d16beb78b6b  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
! 54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
  f931a90a01b7668928d9f7fcd5c7f3fb  libgomp/acc_prof.h
  d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
! 30a64ccfecfa60e8b5098e9fe26ea707  libgomp/aclocal.m4
  d8aa8371c40b734ac5451e05f1ec3ffd  libgomp/affinity-fmt.c
  01378bd902513e181046d9e2c91aaaf0  libgomp/affinity.c
  8fe4775ad9d79a2f006b290db4abdfa5  libgomp/alloc.c
--- 135124,135136 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! f5e77662a89779231a4fdd742650b096  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
  d8aa8371c40b734ac5451e05f1ec3ffd  libgomp/affinity-fmt.c
  01378bd902513e181046d9e2c91aaaf0  libgomp/affinity.c
  8fe4775ad9d79a2f006b290db4abdfa5  libgomp/alloc.c
*************** efc434763cbe71b67359f1858f6c9480  libgom
*** 135150,135156 ****
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
  ef94b568eb279611f49cecc20fb11baa  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! da4592e6dad8e12428ff7004ab1d6b6b  libgomp/configure
  250e49a5865485507899765bf69913a0  libgomp/configure.ac
  0eb9aa41c92e30c6fb1494575b1c8daa  libgomp/configure.tgt
  bdbd19a4ded46698d600a262cfc20343  libgomp/critical.c
--- 135250,135256 ----
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
  ef94b568eb279611f49cecc20fb11baa  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! 65e867498b592f57b55df34fb9657f35  libgomp/configure
  250e49a5865485507899765bf69913a0  libgomp/configure.ac
  0eb9aa41c92e30c6fb1494575b1c8daa  libgomp/configure.tgt
  bdbd19a4ded46698d600a262cfc20343  libgomp/critical.c
*************** a8a23ca7c25ca51062b636b0c099096a  libgom
*** 135214,135220 ****
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
  7a0631a1b4913956e7ec7b6dc96fbc8f  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
! 8a802d519aa310eef9d41867d80ce779  libgomp/testsuite/Makefile.in
  83cc7a56dc29f0c258b4b9e13798b8ec  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
--- 135314,135320 ----
  f540431686cf02c11ae33b1cd66e01ca  libgomp/team.c
  7a0631a1b4913956e7ec7b6dc96fbc8f  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
! 59b9e2c04e8d606a4b64c7778f3dbebf  libgomp/testsuite/Makefile.in
  83cc7a56dc29f0c258b4b9e13798b8ec  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
*************** e8a3245c095430c8ef2413afe2ee4c48  libgom
*** 137782,137798 ****
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
  9b8b2dd0e3a57784ab6771591edb6c3b  libgomp/work.c
! 35987bd001c4f39ec26050c7fc532ffa  libgrust/ChangeLog
  e61ce18b1a86e6764b3436d0638ec4d2  libgrust/Makefile.am
! d670b72d54b9c3daeabf87ef1a8f629b  libgrust/Makefile.in
! ec9513341b9bd1ba3b60bf6fec70f852  libgrust/aclocal.m4
! 9d6846b42aab6b266bf0957901fe72dd  libgrust/configure
  6e88162c13e29e24bf10ce9dcf460234  libgrust/configure.ac
  d4c7febd30951f7fbd584476dbb2dd70  libgrust/libformat_parser/.cargo/config.toml
  2fa265f924108a04b2f2c90b0a4354e0  libgrust/libformat_parser/Cargo.lock
  8cec9880de601ee65e80046d74137ca6  libgrust/libformat_parser/Cargo.toml
  28795ddc18c70a5df3f4c938c53759f3  libgrust/libformat_parser/Makefile.am
! c28b50f3927aed96b2d8ad6111650b28  libgrust/libformat_parser/Makefile.in
  d41d8cd98f00b204e9800998ecf8427e  libgrust/libformat_parser/cbindgen.toml
  d46e74a82de14dbc715373e35f96f887  libgrust/libformat_parser/generic_format_parser/Cargo.toml
  4e430c3e81671de7622b56885413e152  libgrust/libformat_parser/generic_format_parser/src/lib.rs
--- 137882,137898 ----
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
  9b8b2dd0e3a57784ab6771591edb6c3b  libgomp/work.c
! 52e3bd1986d2034786048b6cf001cf2a  libgrust/ChangeLog
  e61ce18b1a86e6764b3436d0638ec4d2  libgrust/Makefile.am
! 4d65d186378f0d15c49ae12508c6f970  libgrust/Makefile.in
! 721420f55c97c79b3d7ecacfc67a0714  libgrust/aclocal.m4
! 93ed947403e3728b5c9a9699f79e02c8  libgrust/configure
  6e88162c13e29e24bf10ce9dcf460234  libgrust/configure.ac
  d4c7febd30951f7fbd584476dbb2dd70  libgrust/libformat_parser/.cargo/config.toml
  2fa265f924108a04b2f2c90b0a4354e0  libgrust/libformat_parser/Cargo.lock
  8cec9880de601ee65e80046d74137ca6  libgrust/libformat_parser/Cargo.toml
  28795ddc18c70a5df3f4c938c53759f3  libgrust/libformat_parser/Makefile.am
! df6c1263ab2db14a637312fc1391843e  libgrust/libformat_parser/Makefile.in
  d41d8cd98f00b204e9800998ecf8427e  libgrust/libformat_parser/cbindgen.toml
  d46e74a82de14dbc715373e35f96f887  libgrust/libformat_parser/generic_format_parser/Cargo.toml
  4e430c3e81671de7622b56885413e152  libgrust/libformat_parser/generic_format_parser/src/lib.rs
*************** fbb8cff14e00f383bb95e7d9f2f71ab2  libgru
*** 138069,138075 ****
  a85db29c02a50c5bbcb488cd0c0e158d  libgrust/libproc_macro/span.rs
  e8e9e09fb8c492e89bece7a03c1cc174  libgrust/libproc_macro/token_stream.rs
  03f3ce72cfe395ae342a58df2c9c3776  libgrust/libproc_macro_internal/Makefile.am
! a26f7470639f9b790e0a7d65e9b034e9  libgrust/libproc_macro_internal/Makefile.in
  dcc40e0fb277ebcfd4af1ac479ac47a6  libgrust/libproc_macro_internal/bridge.h
  483dca7c6b78d72286cc5c9a2f5d2332  libgrust/libproc_macro_internal/ffistring.cc
  c2b8c2ce134c8e5f5009aa19237ed37d  libgrust/libproc_macro_internal/ffistring.h
--- 138169,138175 ----
  a85db29c02a50c5bbcb488cd0c0e158d  libgrust/libproc_macro/span.rs
  e8e9e09fb8c492e89bece7a03c1cc174  libgrust/libproc_macro/token_stream.rs
  03f3ce72cfe395ae342a58df2c9c3776  libgrust/libproc_macro_internal/Makefile.am
! d984e8f54d6ba653ab6f71d2723b2cb8  libgrust/libproc_macro_internal/Makefile.in
  dcc40e0fb277ebcfd4af1ac479ac47a6  libgrust/libproc_macro_internal/bridge.h
  483dca7c6b78d72286cc5c9a2f5d2332  libgrust/libproc_macro_internal/ffistring.cc
  c2b8c2ce134c8e5f5009aa19237ed37d  libgrust/libproc_macro_internal/ffistring.h
*************** c3634c948119513d0f58255c48992ca2  libgru
*** 138092,138104 ****
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! d47ace7d123148fb4c4d41e2b18750d6  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  65c8c72721eb29b2e2b42968dc6aaee6  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
  57170f426e7b9838fb2a2729edcfe532  libiberty/_doprnt.c
  ec41147049df7fae22ac8cf185312842  libiberty/acinclude.m4
! 49e4e53c90bd47bd515e4f0493037ae8  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
  67bbe09d2cf960ceda8dff6812543d18  libiberty/argv.c
  4fe1987a3a6748597aabeebe75919ade  libiberty/asprintf.c
--- 138192,138204 ----
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 9d555625ec32f4f8ac536b5e9cc8098d  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  65c8c72721eb29b2e2b42968dc6aaee6  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
  57170f426e7b9838fb2a2729edcfe532  libiberty/_doprnt.c
  ec41147049df7fae22ac8cf185312842  libiberty/acinclude.m4
! 9c7c0833924a60c564bf194e11b22795  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
  67bbe09d2cf960ceda8dff6812543d18  libiberty/argv.c
  4fe1987a3a6748597aabeebe75919ade  libiberty/asprintf.c
*************** d3c732c9041e2a09c3ba6cac89cb8be5  libibe
*** 138121,138128 ****
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 8e6f57b4ce0f9cf33c16ff51cffae96a  libiberty/configure
! 9507dbdb77adcbf83c2d278a3540d0b2  libiberty/configure.ac
  193826e77c2cb5ea7289dc272ec23d5d  libiberty/configure.com
  940def8f6a40746adb3dd8dc42307b38  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
--- 138221,138228 ----
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 7e191e1d2a47caef1a96f70964eb2952  libiberty/configure
! 1d7f800450530d9dc9d466cd67204867  libiberty/configure.ac
  193826e77c2cb5ea7289dc272ec23d5d  libiberty/configure.com
  940def8f6a40746adb3dd8dc42307b38  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
*************** e52d95644dc6f186070f349a5903ca72  libibe
*** 138262,138274 ****
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  9ee73c41e33c5385829971172a184c87  libiberty/xstrndup.c
  264565e1673eec920dc95fb09d4605ea  libiberty/xvasprintf.c
! dd1cde83cbe935c303b7310da34fd85a  libitm/ChangeLog
  763fe82c2e5c5ae9547defb28107952a  libitm/Makefile.am
! 9615a863768090f60933c0f1de86e7b0  libitm/Makefile.in
  354a4dc018f4a1bb610d11d1743d3cb1  libitm/aatree.cc
  54cdad066114166b775abe8ce0248178  libitm/aatree.h
  724846b555020a9e223c8322082e775a  libitm/acinclude.m4
! c98774b09e6486e6a0818631af2fd088  libitm/aclocal.m4
  c79b5415bda61c24f12edba44415f5de  libitm/alloc.cc
  2feec512a7f36ab1cf5f1765e2ed4396  libitm/alloc_c.cc
  5c5c1a6d250a472b730e249ef0033298  libitm/alloc_cpp.cc
--- 138362,138374 ----
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  9ee73c41e33c5385829971172a184c87  libiberty/xstrndup.c
  264565e1673eec920dc95fb09d4605ea  libiberty/xvasprintf.c
! 632640ad3d57ca7c3917da13c9ea56c1  libitm/ChangeLog
  763fe82c2e5c5ae9547defb28107952a  libitm/Makefile.am
! ef89f818c0c39a850af7e33129d6ba50  libitm/Makefile.in
  354a4dc018f4a1bb610d11d1743d3cb1  libitm/aatree.cc
  54cdad066114166b775abe8ce0248178  libitm/aatree.h
  724846b555020a9e223c8322082e775a  libitm/acinclude.m4
! 166ea233e8cc9f2178a46bc446643c3f  libitm/aclocal.m4
  c79b5415bda61c24f12edba44415f5de  libitm/alloc.cc
  2feec512a7f36ab1cf5f1765e2ed4396  libitm/alloc_c.cc
  5c5c1a6d250a472b730e249ef0033298  libitm/alloc_cpp.cc
*************** f81355820da74dc94b07e34e2ece3f1a  libitm
*** 138319,138325 ****
  88291da5386602b58a3f67b668a56f5a  libitm/config/x86/target.h
  6bd3c1b6db5455792f68d3a596a638ef  libitm/config/x86/x86_avx.cc
  a2e7f532ae9211e9a75853093fee54f5  libitm/config/x86/x86_sse.cc
! 989995ce0fd3c21357d949fc3e926af3  libitm/configure
  a700d8399f54398174287f2a037d2040  libitm/configure.ac
  a166279bd4ae89049c2f7054633c2526  libitm/configure.tgt
  e25455914644f3311064669e1ce05e86  libitm/containers.h
--- 138419,138425 ----
  88291da5386602b58a3f67b668a56f5a  libitm/config/x86/target.h
  6bd3c1b6db5455792f68d3a596a638ef  libitm/config/x86/x86_avx.cc
  a2e7f532ae9211e9a75853093fee54f5  libitm/config/x86/x86_sse.cc
! 06a91fdd95c2c3395b41f0717bca7792  libitm/configure
  a700d8399f54398174287f2a037d2040  libitm/configure.ac
  a166279bd4ae89049c2f7054633c2526  libitm/configure.tgt
  e25455914644f3311064669e1ce05e86  libitm/containers.h
*************** ed458d8c7ab1ec6b1715cb658a7b794e  libitm
*** 138338,138344 ****
  5a410abafddf12b85079c5ddb93791af  libitm/query.cc
  2ff81ff7222e30e75c384187577bc18f  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
! 797cc50d34c62697d9fd84bbc39b5a6b  libitm/testsuite/Makefile.in
  ed1ed157638cd6b95884f216e3414581  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
  7b5554a28cbafcb4a556d48dcc492325  libitm/testsuite/lib/libitm.exp
--- 138438,138444 ----
  5a410abafddf12b85079c5ddb93791af  libitm/query.cc
  2ff81ff7222e30e75c384187577bc18f  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
! 556e27be3e87082db63480f176a868be  libitm/testsuite/Makefile.in
  ed1ed157638cd6b95884f216e3414581  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
  7b5554a28cbafcb4a556d48dcc492325  libitm/testsuite/lib/libitm.exp
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 138371,138377 ****
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  5eec74b1eee8d819e88b284abf80ec7c  libitm/useraction.cc
  6aa0b92295a7511a2af5672f4ad1cec4  libitm/util.cc
! 7a4d619a97b6c18fbbbcbe00a761ac9e  libobjc/ChangeLog
  da63bef4f8e0d2401aecc4ea0b7a15bd  libobjc/Makefile.in
  f641586fd7145ce4812e780e634634c0  libobjc/NXConstStr.m
  1c7a98dcda1e595d5dfefb22b7ac0cd0  libobjc/Object.m
--- 138471,138477 ----
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  5eec74b1eee8d819e88b284abf80ec7c  libitm/useraction.cc
  6aa0b92295a7511a2af5672f4ad1cec4  libitm/util.cc
! bf066293a68b1cdce589eefc42021ea9  libobjc/ChangeLog
  da63bef4f8e0d2401aecc4ea0b7a15bd  libobjc/Makefile.in
  f641586fd7145ce4812e780e634634c0  libobjc/NXConstStr.m
  1c7a98dcda1e595d5dfefb22b7ac0cd0  libobjc/Object.m
*************** d5edaeee0d84e4305368367019952ba7  libobj
*** 138380,138389 ****
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
  e1510f8930909849e68a28748631d8f0  libobjc/accessors.m
  3236bec3516ce337d0f17528816f2858  libobjc/acinclude.m4
! 005cfc1ff705e51549970f72513c195a  libobjc/aclocal.m4
  2aa2f11dd2c10338cfef038cf3b4efbb  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
! 9b45035ec61a96a771e521f9944b0e1d  libobjc/configure
  c3dbf35dac4349f4521b471fcb0a843e  libobjc/configure.ac
  ab9f64ff2e016fc5b89d143c9aec2e12  libobjc/encoding.c
  76293018b84428f6f31f5a5074f9d1a7  libobjc/error.c
--- 138480,138489 ----
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
  e1510f8930909849e68a28748631d8f0  libobjc/accessors.m
  3236bec3516ce337d0f17528816f2858  libobjc/acinclude.m4
! ddc881248a93893607a35d7d02eec385  libobjc/aclocal.m4
  2aa2f11dd2c10338cfef038cf3b4efbb  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
! 8d0d516e29e00b4372c7358446578ad9  libobjc/configure
  c3dbf35dac4349f4521b471fcb0a843e  libobjc/configure.ac
  ab9f64ff2e016fc5b89d143c9aec2e12  libobjc/encoding.c
  76293018b84428f6f31f5a5074f9d1a7  libobjc/error.c
*************** a50aaef4b803051d8c8de65277787205  libobj
*** 138428,138448 ****
  1529c9317f23aa02b19c43cda7528d66  libobjc/selector.c
  e48bb3c47cdcb1bfade3ef0007f5a149  libobjc/sendmsg.c
  06be35842165837797461a0db264aeea  libobjc/thr.c
! 3eb5b6e2ececebfbaabd01a8019d945d  libphobos/ChangeLog
  e188e263b43a1566b83ecb298034d491  libphobos/Makefile.am
! 156e9416d3f91f179bb662effed69086  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
  75f58302c64c916889366449a6c1e928  libphobos/acinclude.m4
! fbb3c30724cb241010afacb0505c53e7  libphobos/aclocal.m4
  0c33f8a64a5c7307de4f56c482966852  libphobos/config.h.in
! 0fbc6aac226228d33e1f5810b09eee59  libphobos/configure
  122f630ac036808d09fb88947d310aff  libphobos/configure.ac
  782c279b3071b4e4641bddc2b665efbd  libphobos/configure.tgt
  63ec818a02a0e071420a85b12fbfd563  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
  ddebe4c1ba53d5a98f1cbfe28019c009  libphobos/libdruntime/MERGE
  a9413400aa43991091e8e40296dbf923  libphobos/libdruntime/Makefile.am
! 8118f4ed246deb968800950939cf18f1  libphobos/libdruntime/Makefile.in
  18eff990c3f2f99b151070e711027bf8  libphobos/libdruntime/__importc_builtins.di
  048decfe12b134a0782fd37595a6678d  libphobos/libdruntime/__main.di
  0ae9f8d677ef38608a593dba93923fc6  libphobos/libdruntime/config/aarch64/switchcontext.S
--- 138528,138548 ----
  1529c9317f23aa02b19c43cda7528d66  libobjc/selector.c
  e48bb3c47cdcb1bfade3ef0007f5a149  libobjc/sendmsg.c
  06be35842165837797461a0db264aeea  libobjc/thr.c
! bd1209da9f08e052abcdc86493fcf69e  libphobos/ChangeLog
  e188e263b43a1566b83ecb298034d491  libphobos/Makefile.am
! af795288599910bce0a497deb673a78f  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
  75f58302c64c916889366449a6c1e928  libphobos/acinclude.m4
! 5d61fe3538c61043be580f44d89a0ccd  libphobos/aclocal.m4
  0c33f8a64a5c7307de4f56c482966852  libphobos/config.h.in
! 12ec552df9c8aed74e1283361050b8c2  libphobos/configure
  122f630ac036808d09fb88947d310aff  libphobos/configure.ac
  782c279b3071b4e4641bddc2b665efbd  libphobos/configure.tgt
  63ec818a02a0e071420a85b12fbfd563  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
  ddebe4c1ba53d5a98f1cbfe28019c009  libphobos/libdruntime/MERGE
  a9413400aa43991091e8e40296dbf923  libphobos/libdruntime/Makefile.am
! ce0e6e5bf6158df24f44de89c0a360ff  libphobos/libdruntime/Makefile.in
  18eff990c3f2f99b151070e711027bf8  libphobos/libdruntime/__importc_builtins.di
  048decfe12b134a0782fd37595a6678d  libphobos/libdruntime/__main.di
  0ae9f8d677ef38608a593dba93923fc6  libphobos/libdruntime/config/aarch64/switchcontext.S
*************** b3025f8fcdacfcfd19b2f680771e0d5b  libpho
*** 139032,139038 ****
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
  3e51c8ba46243d4f9c30bbc59e471dcc  libphobos/src/MERGE
  47924396fe422d66dead5afe3f5ffbaf  libphobos/src/Makefile.am
! 852e2ad27b23e7bef2560c283abc442a  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
  145c3df6886ff3a292f7e57902766615  libphobos/src/etc/c/curl.d
  5b3f5b02dca77e030bb07df6acaa9066  libphobos/src/etc/c/odbc/odbc32.d
--- 139132,139138 ----
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
  3e51c8ba46243d4f9c30bbc59e471dcc  libphobos/src/MERGE
  47924396fe422d66dead5afe3f5ffbaf  libphobos/src/Makefile.am
! 93a3771839df668433ac47fb7dd63d36  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
  145c3df6886ff3a292f7e57902766615  libphobos/src/etc/c/curl.d
  5b3f5b02dca77e030bb07df6acaa9066  libphobos/src/etc/c/odbc/odbc32.d
*************** c1a103b661be58e2c1a62e8aab13650e  libpho
*** 139210,139216 ****
  87f26ae34d849b4750d292a331ff26aa  libphobos/src/std/zip.d
  4e04d19560e31a1b8b799dd43fcd51f8  libphobos/src/std/zlib.d
  b81634158692fb497ef681c9278150b2  libphobos/testsuite/Makefile.am
! 97770c81eecf58810bba1406e17155af  libphobos/testsuite/Makefile.in
  afab865e426381d138e76896579cb353  libphobos/testsuite/config/default.exp
  74550539b96033d70dbe2edccbe033ad  libphobos/testsuite/lib/libphobos-dg.exp
  1999f40e93f2b276e103ac8dfdac5a06  libphobos/testsuite/lib/libphobos.exp
--- 139310,139316 ----
  87f26ae34d849b4750d292a331ff26aa  libphobos/src/std/zip.d
  4e04d19560e31a1b8b799dd43fcd51f8  libphobos/src/std/zlib.d
  b81634158692fb497ef681c9278150b2  libphobos/testsuite/Makefile.am
! 7f7161eb630140e72abcdc2c3f7a66a3  libphobos/testsuite/Makefile.in
  afab865e426381d138e76896579cb353  libphobos/testsuite/config/default.exp
  74550539b96033d70dbe2edccbe033ad  libphobos/testsuite/lib/libphobos-dg.exp
  1999f40e93f2b276e103ac8dfdac5a06  libphobos/testsuite/lib/libphobos.exp
*************** b394cf23a598d3271d7bd5c679c7febd  libpho
*** 139422,139434 ****
  fc53a03ee850127a74ad6bd174963745  libphobos/testsuite/libphobos.unittest/unittest.exp
  a8de1f183b347afc269d237f3fd14b61  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! d2120ca54c7254053709e1d3eec98588  libquadmath/ChangeLog
  d981cb45023d55b1fe9629d54c616528  libquadmath/Makefile.am
! a3052de69d6eb9f6a29ceb534e231eda  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
! 1a1d1b5a61d685d544d98ec2e4b86d5a  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! 724e7207c7bb5491c48ddf95aa824c04  libquadmath/configure
  c16d6073d91cefda754d990ede4d9e9f  libquadmath/configure.ac
  93e59a240cab0611f80fc5d34139c86a  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
--- 139522,139534 ----
  fc53a03ee850127a74ad6bd174963745  libphobos/testsuite/libphobos.unittest/unittest.exp
  a8de1f183b347afc269d237f3fd14b61  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! c4c8f583a5025f32eda2a6d58be4ae27  libquadmath/ChangeLog
  d981cb45023d55b1fe9629d54c616528  libquadmath/Makefile.am
! 8b9db4fd541847f61d62cd2525d1554f  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
! 60e3e895657a5d17916b45bef8520907  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! 2a5d8e9edcd17a353ac09eeaa1fa8c02  libquadmath/configure
  c16d6073d91cefda754d990ede4d9e9f  libquadmath/configure.ac
  93e59a240cab0611f80fc5d34139c86a  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
*************** a73fdec6746eaad8ccdc8e8403aac562  libqua
*** 139562,139579 ****
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! 872f64a150369d1a953d691dfa3865ef  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  1a2ca7cd408b1705dc84c19070a7049b  libsanitizer/LOCAL_PATCHES
  e21ca1bb3d06f01f82229263eaae434d  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
! 11560950ba3e49bd41fc955a158263e6  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
! 9157157843ddc468aad53af489d0645c  libsanitizer/aclocal.m4
  9f9ad5f48e64ac70c9dcfb129fc1a890  libsanitizer/asan/Makefile.am
! 4bf9868966604459476e199b534c72de  libsanitizer/asan/Makefile.in
  d07e95f3fda97a66cd02b78623fb2c53  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
--- 139662,139679 ----
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! 0c71b0f3db6c23412aa4c896679f8f8e  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  1a2ca7cd408b1705dc84c19070a7049b  libsanitizer/LOCAL_PATCHES
  e21ca1bb3d06f01f82229263eaae434d  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
! 039dcea53673bf748693f1a5817c9880  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
! a90b34f1e50aad380aefdff221374180  libsanitizer/aclocal.m4
  9f9ad5f48e64ac70c9dcfb129fc1a890  libsanitizer/asan/Makefile.am
! 18233f272904843a0a491e7660266586  libsanitizer/asan/Makefile.in
  d07e95f3fda97a66cd02b78623fb2c53  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
*************** f6023fedacb2c033b902f237dfb478e6  libsan
*** 139640,139650 ****
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
  ca2b59491c60b319280078740aa575b8  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! 37743cee23ef1c96f28a59dafcba2562  libsanitizer/configure
  4fb8fe43cd5510b08a3abc9a38bc4ea3  libsanitizer/configure.ac
  56772d73b7fdd0b7fdb1c25ed2202e65  libsanitizer/configure.tgt
  c5fe0662e5d5bbb3d31d1a11669cdbb8  libsanitizer/hwasan/Makefile.am
! 597b48c46e19954b922ff910b610ae54  libsanitizer/hwasan/Makefile.in
  5c84e505b2eb11919a599ee7b2f6c763  libsanitizer/hwasan/hwasan.cpp
  3a85b60821e128b16c3e43236f324b7d  libsanitizer/hwasan/hwasan.h
  585fd62c519e70893541ff8779d088ff  libsanitizer/hwasan/hwasan_allocation_functions.cpp
--- 139740,139750 ----
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
  ca2b59491c60b319280078740aa575b8  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! d040794faf72614b530f74edf38810cc  libsanitizer/configure
  4fb8fe43cd5510b08a3abc9a38bc4ea3  libsanitizer/configure.ac
  56772d73b7fdd0b7fdb1c25ed2202e65  libsanitizer/configure.tgt
  c5fe0662e5d5bbb3d31d1a11669cdbb8  libsanitizer/hwasan/Makefile.am
! 7c6905ddf409ba02f8a5b7b2cf41f46c  libsanitizer/hwasan/Makefile.in
  5c84e505b2eb11919a599ee7b2f6c763  libsanitizer/hwasan/hwasan.cpp
  3a85b60821e128b16c3e43236f324b7d  libsanitizer/hwasan/hwasan.h
  585fd62c519e70893541ff8779d088ff  libsanitizer/hwasan/hwasan_allocation_functions.cpp
*************** e0f26bb761d75b6aac187f2c8d755c0b  libsan
*** 139710,139716 ****
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
  158a29394be4331a9d1cde51aacb1284  libsanitizer/interception/Makefile.am
! 224e460ec603f275b6bf452f596772e0  libsanitizer/interception/Makefile.in
  6f7e1851b2e602eb110c4fb38d0db117  libsanitizer/interception/interception.h
  a369bda2bdee55815c0587eeb2041947  libsanitizer/interception/interception_linux.cpp
  9a8de98a4d965528037c0929968ceb5e  libsanitizer/interception/interception_linux.h
--- 139810,139816 ----
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
  158a29394be4331a9d1cde51aacb1284  libsanitizer/interception/Makefile.am
! f8ce5ff423deff429bad7fceecc648c8  libsanitizer/interception/Makefile.in
  6f7e1851b2e602eb110c4fb38d0db117  libsanitizer/interception/interception.h
  a369bda2bdee55815c0587eeb2041947  libsanitizer/interception/interception_linux.cpp
  9a8de98a4d965528037c0929968ceb5e  libsanitizer/interception/interception_linux.h
*************** a369bda2bdee55815c0587eeb2041947  libsan
*** 139720,139732 ****
  beed38444f9ea027548f06680db73e3e  libsanitizer/interception/interception_win.cpp
  6f3d21b72d6739cd636c58314329da52  libsanitizer/interception/interception_win.h
  432dc1db22008a6a94b6906dffd76915  libsanitizer/libbacktrace/Makefile.am
! 8773d915798960dbc290cf6aa81211ad  libsanitizer/libbacktrace/Makefile.in
  3ac69d9fb43e338ecc043296461ef01e  libsanitizer/libbacktrace/backtrace-rename.h
  ea35b83ff2eb2bff286f2781693b0cc7  libsanitizer/libbacktrace/backtrace-supported.h.in
  35b2978dd28dbb4048032ad8db998f5c  libsanitizer/libbacktrace/bridge.cc
  afbb83670aebea5034bc386604a01397  libsanitizer/libsanitizer.spec.in
  96c6cc59ecd5d406880d1473236ccae0  libsanitizer/lsan/Makefile.am
! a234b1facdd57044b00c0c52f20fc896  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
  c7cb472161bc9fd3b41f1a71266a9090  libsanitizer/lsan/lsan.cpp
  2cad573e8f16d3af1d83656591cf952c  libsanitizer/lsan/lsan.h
--- 139820,139832 ----
  beed38444f9ea027548f06680db73e3e  libsanitizer/interception/interception_win.cpp
  6f3d21b72d6739cd636c58314329da52  libsanitizer/interception/interception_win.h
  432dc1db22008a6a94b6906dffd76915  libsanitizer/libbacktrace/Makefile.am
! d7bf098d8629e6c9ed6d5c41e3a89886  libsanitizer/libbacktrace/Makefile.in
  3ac69d9fb43e338ecc043296461ef01e  libsanitizer/libbacktrace/backtrace-rename.h
  ea35b83ff2eb2bff286f2781693b0cc7  libsanitizer/libbacktrace/backtrace-supported.h.in
  35b2978dd28dbb4048032ad8db998f5c  libsanitizer/libbacktrace/bridge.cc
  afbb83670aebea5034bc386604a01397  libsanitizer/libsanitizer.spec.in
  96c6cc59ecd5d406880d1473236ccae0  libsanitizer/lsan/Makefile.am
! 89e9054201dc072cfb540a7724069295  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
  c7cb472161bc9fd3b41f1a71266a9090  libsanitizer/lsan/lsan.cpp
  2cad573e8f16d3af1d83656591cf952c  libsanitizer/lsan/lsan.h
*************** a2bb4ce82517490a473b4f4a78a0a925  libsan
*** 139751,139757 ****
  40250a40045098844f2cb7c1830cfa8d  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
  c301ea6a9cda0da0cfe222dc46b34e94  libsanitizer/sanitizer_common/Makefile.am
! e283e4c8ec2d85f2113e579c4f1d6385  libsanitizer/sanitizer_common/Makefile.in
  2b6304aafd354b4cfee6b31273b04192  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
--- 139851,139857 ----
  40250a40045098844f2cb7c1830cfa8d  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
  c301ea6a9cda0da0cfe222dc46b34e94  libsanitizer/sanitizer_common/Makefile.am
! 1d256563c2de7ed098e5a95953422048  libsanitizer/sanitizer_common/Makefile.in
  2b6304aafd354b4cfee6b31273b04192  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
*************** aa4b962e69be86919c293ae4a3c82a2b  libsan
*** 139955,139961 ****
  fc5cf9bed40d4cacc9d6d99a9732c5b0  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.cpp
  d96a79aae86361640da54337862c2369  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.h
  a3fb2da1f02bba234ad5bb2a01f67db9  libsanitizer/tsan/Makefile.am
! fb84c5672f20a95a592e7069738c51f7  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
  c9463f7672b8955c8c5a62008e50d172  libsanitizer/tsan/tsan_debugging.cpp
  d90b2e24518aaa7ec11d4a260ca2529d  libsanitizer/tsan/tsan_defs.h
--- 140055,140061 ----
  fc5cf9bed40d4cacc9d6d99a9732c5b0  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.cpp
  d96a79aae86361640da54337862c2369  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.h
  a3fb2da1f02bba234ad5bb2a01f67db9  libsanitizer/tsan/Makefile.am
! 20a4dfd3c2600d66d89915db53a4c40a  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
  c9463f7672b8955c8c5a62008e50d172  libsanitizer/tsan/tsan_debugging.cpp
  d90b2e24518aaa7ec11d4a260ca2529d  libsanitizer/tsan/tsan_defs.h
*************** ac99e2a1604f10691ceb3d4a4600d0ed  libsan
*** 140028,140034 ****
  7043f9d2d6d55a4a9dad3179e81ac578  libsanitizer/tsan/tsan_vector_clock.cpp
  d08cd7318d9fa76e2ca9b3ee6008735f  libsanitizer/tsan/tsan_vector_clock.h
  abd71f0fd55b25d20057f5dfe13144b1  libsanitizer/ubsan/Makefile.am
! bd2e1d95b9a539454176ac6c46c1c582  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
  09adf5cec3b2e75084c18928b377c4f3  libsanitizer/ubsan/ubsan_checks.inc
  2b10b2299cf1e4446204362c49c8763a  libsanitizer/ubsan/ubsan_diag.cpp
--- 140128,140134 ----
  7043f9d2d6d55a4a9dad3179e81ac578  libsanitizer/tsan/tsan_vector_clock.cpp
  d08cd7318d9fa76e2ca9b3ee6008735f  libsanitizer/tsan/tsan_vector_clock.h
  abd71f0fd55b25d20057f5dfe13144b1  libsanitizer/ubsan/Makefile.am
! d6c1a78f08263ec1fee4e3bc43f40392  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
  09adf5cec3b2e75084c18928b377c4f3  libsanitizer/ubsan/ubsan_checks.inc
  2b10b2299cf1e4446204362c49c8763a  libsanitizer/ubsan/ubsan_diag.cpp
*************** f01966720c236be4a6f849bb79c2e3a0  libsan
*** 140058,140069 ****
  36c349526a8bcc6a104185c4571b5363  libsanitizer/ubsan/ubsan_value.cpp
  f95aed5d713e73ada16956190fa4ac58  libsanitizer/ubsan/ubsan_value.h
  f44dc970bc1adae9a128b178a339fd0e  libsanitizer/ubsan/ubsan_win_runtime_thunk.cpp
! 84f9d4b90e35eb4548e66858504ca50a  libssp/ChangeLog
  3c64b74eec15b8c16d5cfabfe903d655  libssp/Makefile.am
! 2223a5c6fc2f0f67afde93329459a92e  libssp/Makefile.in
! f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
  91a807dee830170e3dc7cde11ae0662d  libssp/config.h.in
! ba49ad9141182570be4775bbda8fa6ed  libssp/configure
  89a15c32762c1812155bed2afe5a0ad0  libssp/configure.ac
  f7c6a5833f4ed82dcae4c6471b0e5968  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
--- 140158,140169 ----
  36c349526a8bcc6a104185c4571b5363  libsanitizer/ubsan/ubsan_value.cpp
  f95aed5d713e73ada16956190fa4ac58  libsanitizer/ubsan/ubsan_value.h
  f44dc970bc1adae9a128b178a339fd0e  libsanitizer/ubsan/ubsan_win_runtime_thunk.cpp
! c76554a95a7ca0d8dc8c336ffe8fb90f  libssp/ChangeLog
  3c64b74eec15b8c16d5cfabfe903d655  libssp/Makefile.am
! caac5761d3acfaa5d0d86a84253ad38b  libssp/Makefile.in
! f1ead518e8acee1f9c1e0e49fd4fa51d  libssp/aclocal.m4
  91a807dee830170e3dc7cde11ae0662d  libssp/config.h.in
! a29d2346b0641ce7bb3e0d322a2082db  libssp/configure
  89a15c32762c1812155bed2afe5a0ad0  libssp/configure.ac
  f7c6a5833f4ed82dcae4c6471b0e5968  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 140088,140094 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 754b11f378e3aa2f82e1e470a1c466c5  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 140188,140194 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 03d32ab32ac99b442a5755eed4db18a5  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a8f4290dba5b481ad426148a03c75dd0  libstd
*** 140117,140126 ****
  73b3f28a75dc2722a3bbd6d45e6170c1  libstdc++-v3/ChangeLog-2023
  a94321c8d0dbbc71741ebf0f1cc9828c  libstdc++-v3/ChangeLog-2024
  b569b721263ae74c6a8e285903fb9906  libstdc++-v3/Makefile.am
! 5ae0a394d413d225772c3b38a114cce2  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
  7395b154864a034d7f9715c316bd253b  libstdc++-v3/acinclude.m4
! 13f29ef95664bfe876c83f7743ca504d  libstdc++-v3/aclocal.m4
  1be87330bd04ba01150372d6c11f1567  libstdc++-v3/config.h.in
  9e25b4e524e0d639f272a9e96bab0ce3  libstdc++-v3/config/abi/compatibility.h
  0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
--- 140217,140226 ----
  73b3f28a75dc2722a3bbd6d45e6170c1  libstdc++-v3/ChangeLog-2023
  a94321c8d0dbbc71741ebf0f1cc9828c  libstdc++-v3/ChangeLog-2024
  b569b721263ae74c6a8e285903fb9906  libstdc++-v3/Makefile.am
! 4f2ea793c6b34934133e8e7e01601c7e  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
  7395b154864a034d7f9715c316bd253b  libstdc++-v3/acinclude.m4
! 66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  1be87330bd04ba01150372d6c11f1567  libstdc++-v3/config.h.in
  9e25b4e524e0d639f272a9e96bab0ce3  libstdc++-v3/config/abi/compatibility.h
  0be6fea010f86e442ad030f82858fb73  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
*************** ed199f6700a016816d625b286bf25ead  libstd
*** 140313,140324 ****
  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
! a2693097931667cd5e0bbcf7bb645c53  libstdc++-v3/configure
  92611cf11c10cbce1353597b2b88134e  libstdc++-v3/configure.ac
  22c2981483d92dbe80dc732e50bfdbcd  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
  55ecb88d091a7c97abd35f475cf97c2b  libstdc++-v3/doc/Makefile.am
! d66f986053e4755f0517ff5cfe90b2b5  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  8ddc98aa9ea49005b27aed1d2798e2fc  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
--- 140413,140424 ----
  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
! fb4f84e5ae0d767b4a91584da62be133  libstdc++-v3/configure
  92611cf11c10cbce1353597b2b88134e  libstdc++-v3/configure.ac
  22c2981483d92dbe80dc732e50bfdbcd  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
  55ecb88d091a7c97abd35f475cf97c2b  libstdc++-v3/doc/Makefile.am
! 015a7bc96be2528c79352941cf0f8da0  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  8ddc98aa9ea49005b27aed1d2798e2fc  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
*************** ffd5e74a40bbf6623b8ccf687eb584d8  libstd
*** 140456,140462 ****
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
  b404abb1e78a27e8a8980eb14ec27bab  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
! 174516641f92b7ed9a952010212df234  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  89f96b13d0525d86ec6cd96b462130cf  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
--- 140556,140562 ----
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
  b404abb1e78a27e8a8980eb14ec27bab  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
! bfdb80842e9876f39424e27dd1e6f8a0  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  89f96b13d0525d86ec6cd96b462130cf  libstdc++-v3/doc/html/manual/intro.html
  46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
*************** d973b7693c2b6c717784b81d549c61e5  libstd
*** 140488,140494 ****
  d0d45f15e189e6eac6d7b09d58e62126  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
! f3141eae208456e418ec0ae56625b9bf  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
  50160fa9f92780aaa6fc7a4ef13fc897  libstdc++-v3/doc/html/manual/streambufs.html
  3cb55f3f54e0a98471bffdf9f533a8a2  libstdc++-v3/doc/html/manual/strings.html
--- 140588,140594 ----
  d0d45f15e189e6eac6d7b09d58e62126  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
! 99ac727732516b8cc786bfcc7d06576a  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
  50160fa9f92780aaa6fc7a4ef13fc897  libstdc++-v3/doc/html/manual/streambufs.html
  3cb55f3f54e0a98471bffdf9f533a8a2  libstdc++-v3/doc/html/manual/strings.html
*************** d7f222c42325cd44eadad2c59eef7e6f  libstd
*** 140734,140740 ****
  c9b4dfcbbb3aa2ab7b1e0df423f53f8f  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  1e5265ce142bba4140e33ee4187dd0cd  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
  c3b7e65f376e0bce1a2242546f383d31  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 942f961666f55f04949d8c572d6b05d0  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
  6c161323ae7976408e2b3dbbf4464176  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  24e5c202f6a55504167ccc0c8395b881  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
--- 140834,140840 ----
  c9b4dfcbbb3aa2ab7b1e0df423f53f8f  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  1e5265ce142bba4140e33ee4187dd0cd  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
  c3b7e65f376e0bce1a2242546f383d31  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 38939c1043547c387ca20141894fd4c3  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
  6c161323ae7976408e2b3dbbf4464176  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  24e5c202f6a55504167ccc0c8395b881  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
*************** c587674e0c370a2d6ccc5213ab3e4e65  libstd
*** 140750,140756 ****
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
  d38876d5dc082b8fda24331aee421400  libstdc++-v3/include/Makefile.am
! ca75e2514af0756617fd5739f02ca06b  libstdc++-v3/include/Makefile.in
  9909a8468983e231e92c9e286c9765fb  libstdc++-v3/include/backward/auto_ptr.h
  83254dbbadebf6a7aeb58f3cdbf117e9  libstdc++-v3/include/backward/backward_warning.h
  38985095b8ea422bf8bfa31ec65d803c  libstdc++-v3/include/backward/binders.h
--- 140850,140856 ----
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
  d38876d5dc082b8fda24331aee421400  libstdc++-v3/include/Makefile.am
! f3bc82135dfcb3341457a729d2972838  libstdc++-v3/include/Makefile.in
  9909a8468983e231e92c9e286c9765fb  libstdc++-v3/include/backward/auto_ptr.h
  83254dbbadebf6a7aeb58f3cdbf117e9  libstdc++-v3/include/backward/backward_warning.h
  38985095b8ea422bf8bfa31ec65d803c  libstdc++-v3/include/backward/binders.h
*************** c422f42aab865e6ef70233d1d512473c  libstd
*** 140896,140902 ****
  c48928d63732da42056105c33cf860ff  libstdc++-v3/include/bits/stl_stack.h
  e77200e337d1f4695ed04b8f6fd9991d  libstdc++-v3/include/bits/stl_tempbuf.h
  eaceb582a18a6a7ee11227f1fc82b069  libstdc++-v3/include/bits/stl_tree.h
! d8f0e6973adaf965ee91100bb764bb23  libstdc++-v3/include/bits/stl_uninitialized.h
  a289051282846bf52bb1917bcbbf3673  libstdc++-v3/include/bits/stl_vector.h
  c021eea8ffb782c5cae76e39deaa7369  libstdc++-v3/include/bits/stream_iterator.h
  69fecd7181ec71c850dba6e19cf9a58c  libstdc++-v3/include/bits/streambuf.tcc
--- 140996,141002 ----
  c48928d63732da42056105c33cf860ff  libstdc++-v3/include/bits/stl_stack.h
  e77200e337d1f4695ed04b8f6fd9991d  libstdc++-v3/include/bits/stl_tempbuf.h
  eaceb582a18a6a7ee11227f1fc82b069  libstdc++-v3/include/bits/stl_tree.h
! acafb6ad2e0035c5b84058721e364dca  libstdc++-v3/include/bits/stl_uninitialized.h
  a289051282846bf52bb1917bcbbf3673  libstdc++-v3/include/bits/stl_vector.h
  c021eea8ffb782c5cae76e39deaa7369  libstdc++-v3/include/bits/stream_iterator.h
  69fecd7181ec71c850dba6e19cf9a58c  libstdc++-v3/include/bits/streambuf.tcc
*************** e790ae6877466aa86b47f36d201e8563  libstd
*** 141494,141500 ****
  2e2a3e068304b1e949291e4e2e32c780  libstdc++-v3/include/std/functional
  d472ad4b1b5c12e2f731980802d15b50  libstdc++-v3/include/std/future
  d91bc94f2a9c1ff7f642d23c27ec66ae  libstdc++-v3/include/std/generator
! 37226c50eb4ef0d66b4715fc86748c79  libstdc++-v3/include/std/inplace_vector
  90e01b4e65cec5c0a3786580b2529edb  libstdc++-v3/include/std/iomanip
  bf5ea5fbda7bfdc1dc462f0303fc4e99  libstdc++-v3/include/std/ios
  4623e874877c5e927587c4bfe1a03c84  libstdc++-v3/include/std/iosfwd
--- 141594,141600 ----
  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
  90e01b4e65cec5c0a3786580b2529edb  libstdc++-v3/include/std/iomanip
  bf5ea5fbda7bfdc1dc462f0303fc4e99  libstdc++-v3/include/std/ios
  4623e874877c5e927587c4bfe1a03c84  libstdc++-v3/include/std/iosfwd
*************** ceee5b8e3956e8b0b5cf0c37821eb61a  libstd
*** 141534,141540 ****
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
  23b5b63af5cceb0d44d8c2aab32c8e30  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
! 21546d9b4293395d638636284ce392ac  libstdc++-v3/include/std/string
  c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
  b9cf79d1edae688927d40109f321047a  libstdc++-v3/include/std/syncstream
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
--- 141634,141640 ----
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
  23b5b63af5cceb0d44d8c2aab32c8e30  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
! eb4b43503dd02f6baa6785de6e466e55  libstdc++-v3/include/std/string
  c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
  b9cf79d1edae688927d40109f321047a  libstdc++-v3/include/std/syncstream
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
*************** c82be32edefaa23cc1228b092d319315  libstd
*** 141548,141554 ****
  a05198d154ee4b152da6854fa6433ee7  libstdc++-v3/include/std/utility
  e0096e013b19127692d1ed454892142d  libstdc++-v3/include/std/valarray
  6dfedd974a960950b7ce23a1bbb999f2  libstdc++-v3/include/std/variant
! b00bcad4d043e764b5c328173f5bd92b  libstdc++-v3/include/std/vector
  1c10633087657ad7a31f6c3569a3ebe0  libstdc++-v3/include/std/version
  e0951486c7e6c5afe3105fe5004effb9  libstdc++-v3/include/tr1/array
  d26e5ca1b5598f236aebe125082c5efb  libstdc++-v3/include/tr1/bessel_function.tcc
--- 141648,141654 ----
  a05198d154ee4b152da6854fa6433ee7  libstdc++-v3/include/std/utility
  e0096e013b19127692d1ed454892142d  libstdc++-v3/include/std/valarray
  6dfedd974a960950b7ce23a1bbb999f2  libstdc++-v3/include/std/variant
! 0b01f8a05f86062640dd5d19546fe8af  libstdc++-v3/include/std/vector
  1c10633087657ad7a31f6c3569a3ebe0  libstdc++-v3/include/std/version
  e0951486c7e6c5afe3105fe5004effb9  libstdc++-v3/include/tr1/array
  d26e5ca1b5598f236aebe125082c5efb  libstdc++-v3/include/tr1/bessel_function.tcc
*************** b5033bc12fc1667581a589f0b0816848  libstd
*** 141619,141625 ****
  7dd87c5c55dd5cc161e8bbde1bf48c0e  libstdc++-v3/include/tr2/ratio
  5e8b74468be045996135279f106b9cf0  libstdc++-v3/include/tr2/type_traits
  00161500f1584e38dc5b83485c9cfed8  libstdc++-v3/libsupc++/Makefile.am
! 00fa28ea5345773656eecc22cfc827ce  libstdc++-v3/libsupc++/Makefile.in
  0fe1047f2631852aac2f59f516cdf91a  libstdc++-v3/libsupc++/array_type_info.cc
  f86dfaba443201defcd622bf120d5cb2  libstdc++-v3/libsupc++/atexit_arm.cc
  c51642b22c737ba47db904e6e0534fd5  libstdc++-v3/libsupc++/atexit_thread.cc
--- 141719,141725 ----
  7dd87c5c55dd5cc161e8bbde1bf48c0e  libstdc++-v3/include/tr2/ratio
  5e8b74468be045996135279f106b9cf0  libstdc++-v3/include/tr2/type_traits
  00161500f1584e38dc5b83485c9cfed8  libstdc++-v3/libsupc++/Makefile.am
! 5a8350507b51b85ea9e5e0025e80a07e  libstdc++-v3/libsupc++/Makefile.in
  0fe1047f2631852aac2f59f516cdf91a  libstdc++-v3/libsupc++/array_type_info.cc
  f86dfaba443201defcd622bf120d5cb2  libstdc++-v3/libsupc++/atexit_arm.cc
  c51642b22c737ba47db904e6e0534fd5  libstdc++-v3/libsupc++/atexit_thread.cc
*************** eb7c05a57ed802e0ad08f707733b00cf  libstd
*** 141704,141717 ****
  cc11cc5be516271e91b371196ee9b6bb  libstdc++-v3/libsupc++/vtv_stubs.cc
  e88dc2fa68ea978011d41472f6dab4fa  libstdc++-v3/linkage.m4
  3461e7a99784f1559e27ca429f1070ac  libstdc++-v3/po/Makefile.am
! a5457e41b18fa84291efc712d8c7db06  libstdc++-v3/po/Makefile.in
  6dc5ac29c91f7f0a0377960e7fe6196b  libstdc++-v3/po/POTFILES.in
  ecd9b32fe506c9684b6ab3f8bb74b0ac  libstdc++-v3/po/de.po
  cba1356a5d30bc9057a2e5d0925657f8  libstdc++-v3/po/fr.po
  85eb51cf938eaac345a949ac089ef926  libstdc++-v3/po/libstdc++.pot
  58ef72ff76e08a9e2334c9f759fabf05  libstdc++-v3/po/string_literals.cc
  81b005b8577085db4fe217171a3c5253  libstdc++-v3/python/Makefile.am
! c94ad903b4e7baf364cdc3ef5e9f58a8  libstdc++-v3/python/Makefile.in
  4cb74e4755d2e3e58503a243d7ae042b  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  f3661044e04e7499daef1e53bba37dc7  libstdc++-v3/python/libstdcxx/v6/__init__.py
--- 141804,141817 ----
  cc11cc5be516271e91b371196ee9b6bb  libstdc++-v3/libsupc++/vtv_stubs.cc
  e88dc2fa68ea978011d41472f6dab4fa  libstdc++-v3/linkage.m4
  3461e7a99784f1559e27ca429f1070ac  libstdc++-v3/po/Makefile.am
! 6321c23acc02ce612d563a8c52873f4d  libstdc++-v3/po/Makefile.in
  6dc5ac29c91f7f0a0377960e7fe6196b  libstdc++-v3/po/POTFILES.in
  ecd9b32fe506c9684b6ab3f8bb74b0ac  libstdc++-v3/po/de.po
  cba1356a5d30bc9057a2e5d0925657f8  libstdc++-v3/po/fr.po
  85eb51cf938eaac345a949ac089ef926  libstdc++-v3/po/libstdc++.pot
  58ef72ff76e08a9e2334c9f759fabf05  libstdc++-v3/po/string_literals.cc
  81b005b8577085db4fe217171a3c5253  libstdc++-v3/python/Makefile.am
! 3831c71a7229219ba9bc83aab005fd63  libstdc++-v3/python/Makefile.in
  4cb74e4755d2e3e58503a243d7ae042b  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  f3661044e04e7499daef1e53bba37dc7  libstdc++-v3/python/libstdcxx/v6/__init__.py
*************** c3455b8d87dcefd65c7fdcd24e4ce3a4  libstd
*** 141734,141742 ****
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
  6e3445b3780c05b37f42c740c90e740d  libstdc++-v3/scripts/update_release_branch.sh
  4ec7a5f54985f662dc2df5a1edc8557b  libstdc++-v3/src/Makefile.am
! 508ec9314c443e521cf942b58dcd949c  libstdc++-v3/src/Makefile.in
  f042ac3384d8e9b695a73b10cc0d606a  libstdc++-v3/src/c++11/Makefile.am
! 9d3a3c05b5fed7a47cdb838581cb9e59  libstdc++-v3/src/c++11/Makefile.in
  5e7e5838476ce51cd21bf53cf514b4dc  libstdc++-v3/src/c++11/assert_fail.cc
  f905c9797eaffe44e02f500ad5b1db2d  libstdc++-v3/src/c++11/chrono.cc
  0d15e07b457608744242a2e96701fefd  libstdc++-v3/src/c++11/codecvt.cc
--- 141834,141842 ----
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
  6e3445b3780c05b37f42c740c90e740d  libstdc++-v3/scripts/update_release_branch.sh
  4ec7a5f54985f662dc2df5a1edc8557b  libstdc++-v3/src/Makefile.am
! 56842829179db773783f8c14082b56e8  libstdc++-v3/src/Makefile.in
  f042ac3384d8e9b695a73b10cc0d606a  libstdc++-v3/src/c++11/Makefile.am
! 3ea8e5edc8c8af41c26f5b1dadb82964  libstdc++-v3/src/c++11/Makefile.in
  5e7e5838476ce51cd21bf53cf514b4dc  libstdc++-v3/src/c++11/assert_fail.cc
  f905c9797eaffe44e02f500ad5b1db2d  libstdc++-v3/src/c++11/chrono.cc
  0d15e07b457608744242a2e96701fefd  libstdc++-v3/src/c++11/codecvt.cc
*************** b8e7b1593e5ed3dee7f0c98b40666a11  libstd
*** 141806,141812 ****
  9a2f4bc77bc2e1c94a8b5cefd3821420  libstdc++-v3/src/c++11/wstring-inst.cc
  c784e7e5223a16cc62f12abfdb1fe126  libstdc++-v3/src/c++11/wstring-io-inst.cc
  d42cf9bd575f948dd5f06810ff253a13  libstdc++-v3/src/c++17/Makefile.am
! c60ab2dc53b3bc5de99fc26b7088e562  libstdc++-v3/src/c++17/Makefile.in
  2ec69472c6e38bac5c67061102805aca  libstdc++-v3/src/c++17/cow-fs_dir.cc
  eb8b6bcc9da890da72aba9b42b723288  libstdc++-v3/src/c++17/cow-fs_ops.cc
  d05a33db2dc74b3ed2b5a7a8567de31c  libstdc++-v3/src/c++17/cow-fs_path.cc
--- 141906,141912 ----
  9a2f4bc77bc2e1c94a8b5cefd3821420  libstdc++-v3/src/c++11/wstring-inst.cc
  c784e7e5223a16cc62f12abfdb1fe126  libstdc++-v3/src/c++11/wstring-io-inst.cc
  d42cf9bd575f948dd5f06810ff253a13  libstdc++-v3/src/c++17/Makefile.am
! c1a6aa4acd9ae9d8dcfeb7eb871e733a  libstdc++-v3/src/c++17/Makefile.in
  2ec69472c6e38bac5c67061102805aca  libstdc++-v3/src/c++17/cow-fs_dir.cc
  eb8b6bcc9da890da72aba9b42b723288  libstdc++-v3/src/c++17/cow-fs_ops.cc
  d05a33db2dc74b3ed2b5a7a8567de31c  libstdc++-v3/src/c++17/cow-fs_path.cc
*************** fbb127f006c65ae37d591c627cc6235c  libstd
*** 141839,141845 ****
  e66e202fb59625eb933c316b0bf9ee34  libstdc++-v3/src/c++17/string-inst.cc
  6bbe101ec337afce54e0c8dee6fdd6d3  libstdc++-v3/src/c++17/uint128_t.h
  4d414718915223bfe45a3a197501ea1d  libstdc++-v3/src/c++20/Makefile.am
! 15aa6a31c49989bd05e3a3b784a54e90  libstdc++-v3/src/c++20/Makefile.in
  44b19f393472c9494f63f59cbe9fe25f  libstdc++-v3/src/c++20/atomic.cc
  ac664105ccfd50a2a092e98df11864a3  libstdc++-v3/src/c++20/clock.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
--- 141939,141945 ----
  e66e202fb59625eb933c316b0bf9ee34  libstdc++-v3/src/c++17/string-inst.cc
  6bbe101ec337afce54e0c8dee6fdd6d3  libstdc++-v3/src/c++17/uint128_t.h
  4d414718915223bfe45a3a197501ea1d  libstdc++-v3/src/c++20/Makefile.am
! 8992329b44e206ac3d5b63e10bf82246  libstdc++-v3/src/c++20/Makefile.in
  44b19f393472c9494f63f59cbe9fe25f  libstdc++-v3/src/c++20/atomic.cc
  ac664105ccfd50a2a092e98df11864a3  libstdc++-v3/src/c++20/clock.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
*************** e9e89f4578e59d252e4caaf0b63d6dfb  libstd
*** 141849,141855 ****
  e7b5fbbd5ee61bf8fbf8702b095de326  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
! d85f3a53465585d54b96880e79456c79  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
--- 141949,141955 ----
  e7b5fbbd5ee61bf8fbf8702b095de326  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
! ba1de75ac9c1bb7d2506c503fe17708a  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
*************** c319163994652e23066095eded5869f0  libstd
*** 141857,141867 ****
  29bfb50ecdc73815f55aac6e64f70cb4  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
! 3cdab153592c4a94c6607ed5cd536469  libstdc++-v3/src/c++26/Makefile.in
  689d9236ef4fdcec6142e1423ae0e6bb  libstdc++-v3/src/c++26/debugging.cc
  de7c20444382fa8365e95b0e048de9c6  libstdc++-v3/src/c++26/text_encoding.cc
  088c4c5331cd5466e7867079fcd0bad5  libstdc++-v3/src/c++98/Makefile.am
! f5066be47fd9da3a68e3be9740a6243c  libstdc++-v3/src/c++98/Makefile.in
  8c2a3bd9b3980ffd2cc64381702db028  libstdc++-v3/src/c++98/allocator-inst.cc
  be22227a4815f88c64ddc2deef3d080f  libstdc++-v3/src/c++98/bitmap_allocator.cc
  c90e8ae7235eca67f0febcd327cb5296  libstdc++-v3/src/c++98/codecvt.cc
--- 141957,141967 ----
  29bfb50ecdc73815f55aac6e64f70cb4  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
  689d9236ef4fdcec6142e1423ae0e6bb  libstdc++-v3/src/c++26/debugging.cc
  de7c20444382fa8365e95b0e048de9c6  libstdc++-v3/src/c++26/text_encoding.cc
  088c4c5331cd5466e7867079fcd0bad5  libstdc++-v3/src/c++98/Makefile.am
! 621d78b0fd50a930deedb62e68654c6c  libstdc++-v3/src/c++98/Makefile.in
  8c2a3bd9b3980ffd2cc64381702db028  libstdc++-v3/src/c++98/allocator-inst.cc
  be22227a4815f88c64ddc2deef3d080f  libstdc++-v3/src/c++98/bitmap_allocator.cc
  c90e8ae7235eca67f0febcd327cb5296  libstdc++-v3/src/c++98/codecvt.cc
*************** e9787f829287d26936fe1f7aff29a8a0  libstd
*** 141901,141910 ****
  89580149ee9bdb055de571a072f757a0  libstdc++-v3/src/c++98/tree.cc
  07bc85ee6f9252b552a8ca258e332071  libstdc++-v3/src/c++98/valarray.cc
  31ad7d86083fbaed1677f7dac1d2b954  libstdc++-v3/src/experimental/Makefile.am
! 27279225a56c61bff8a4794d18007e3e  libstdc++-v3/src/experimental/Makefile.in
  d34f942784f1eb801b3204f01226b159  libstdc++-v3/src/experimental/contract.cc
  ab9139f1dd50d2fff6bbc5aee136affc  libstdc++-v3/src/filesystem/Makefile.am
! a6f95078e97a60d866de0908aeb10897  libstdc++-v3/src/filesystem/Makefile.in
  7f164ccd87ce066350b226671705b713  libstdc++-v3/src/filesystem/cow-dir.cc
  d261582526bd72a369fd09b9a5e27b62  libstdc++-v3/src/filesystem/cow-ops.cc
  427145f15c1588507cc854a7c222094f  libstdc++-v3/src/filesystem/cow-path.cc
--- 142001,142010 ----
  89580149ee9bdb055de571a072f757a0  libstdc++-v3/src/c++98/tree.cc
  07bc85ee6f9252b552a8ca258e332071  libstdc++-v3/src/c++98/valarray.cc
  31ad7d86083fbaed1677f7dac1d2b954  libstdc++-v3/src/experimental/Makefile.am
! 108862e7463db10a9bf58c3240482dba  libstdc++-v3/src/experimental/Makefile.in
  d34f942784f1eb801b3204f01226b159  libstdc++-v3/src/experimental/contract.cc
  ab9139f1dd50d2fff6bbc5aee136affc  libstdc++-v3/src/filesystem/Makefile.am
! 92882265e9dd6b1e3a3ad1f734fc9e7f  libstdc++-v3/src/filesystem/Makefile.in
  7f164ccd87ce066350b226671705b713  libstdc++-v3/src/filesystem/cow-dir.cc
  d261582526bd72a369fd09b9a5e27b62  libstdc++-v3/src/filesystem/cow-ops.cc
  427145f15c1588507cc854a7c222094f  libstdc++-v3/src/filesystem/cow-path.cc
*************** b92adb30f5c707f7d2712de402cc66ba  libstd
*** 141914,141920 ****
  2c978bede5376b1c0d23fabd3e70ec0f  libstdc++-v3/src/filesystem/ops.cc
  113879e407f06ea51cf09f1d102a9d4d  libstdc++-v3/src/filesystem/path.cc
  6313ac6df82e4bcf54d7f8bc2b00792e  libstdc++-v3/src/libbacktrace/Makefile.am
! b56b83480d0808b3d15da8f26d68e229  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
  00b94d6669fba75f62da99691b48412e  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
--- 142014,142020 ----
  2c978bede5376b1c0d23fabd3e70ec0f  libstdc++-v3/src/filesystem/ops.cc
  113879e407f06ea51cf09f1d102a9d4d  libstdc++-v3/src/filesystem/path.cc
  6313ac6df82e4bcf54d7f8bc2b00792e  libstdc++-v3/src/libbacktrace/Makefile.am
! a66dc6e94b2d725905f4cd6bffd2fc61  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
  00b94d6669fba75f62da99691b48412e  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
*************** bb40414adb587ca6cdd1ffd17960c9e2  libstd
*** 143681,143687 ****
  455915dfcf4dc6251c24ac413d3dfcde  libstdc++-v3/testsuite/20_util/unique_ptr/lwg4148.cc
  a87ada64946cd931cadfaa13b513a900  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
  1dba41a3d994169c6dc80f6e218ba745  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! 1522af3c74e321802d64a0867e5e7e82  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
  5e50545281dc7c1b91f14ab2c0f11bc6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
  0c3893d7ffa7c4186d167e84dbed672d  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
  65b5210297e784879ba6a6d04ea7cfbc  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
--- 143781,143787 ----
  455915dfcf4dc6251c24ac413d3dfcde  libstdc++-v3/testsuite/20_util/unique_ptr/lwg4148.cc
  a87ada64946cd931cadfaa13b513a900  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
  1dba41a3d994169c6dc80f6e218ba745  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! 821cc957f88f73207d1a2e0ec708052d  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
  5e50545281dc7c1b91f14ab2c0f11bc6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
  0c3893d7ffa7c4186d167e84dbed672d  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
  65b5210297e784879ba6a6d04ea7cfbc  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
*************** b63cae75b230b7a946a7a3a58fd94617  libstd
*** 144740,144746 ****
  39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
  f0aa352f8da1060bc9328f416dfcacbc  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
  baf8b390f037d6d7b18373ffe950589d  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! 725a7c5be8354833bca3cf8da1f2b4b6  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
  634df62f6bc792685d677bab8e6d1da1  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
  4937f82f1bc7c7d636594e38bbca0bf2  libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc
  dce3203e9405321c10887aad0d0dad44  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
--- 144840,144846 ----
  39fdb25e304f45b58bbc0c60b863218d  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
  f0aa352f8da1060bc9328f416dfcacbc  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
  baf8b390f037d6d7b18373ffe950589d  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! 96eb88ba6b23c38282116f3a41280f08  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
  634df62f6bc792685d677bab8e6d1da1  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
  4937f82f1bc7c7d636594e38bbca0bf2  libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc
  dce3203e9405321c10887aad0d0dad44  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
*************** a18ac372a519c895d93ecf55f5e230d6  libstd
*** 144748,144754 ****
  d9551a36b4f92d2438eff3ba0b1c648d  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
  c791a6da00ce3155fabcbc2bd1dcf4e3  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
  0f1aec8f5ab61213fca35d7a3bc5a9d2  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! f95ab060a8accd1e0ac3d1b8baf70407  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
  077d9c1d7e88fd08ed10452f9397e968  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
  1f81b52cb792ecbdf58411ac3beebdd9  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/5.cc
  21c3d3b8e989fcc5f22efd11bcb8a8a6  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
--- 144848,144854 ----
  d9551a36b4f92d2438eff3ba0b1c648d  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
  c791a6da00ce3155fabcbc2bd1dcf4e3  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
  0f1aec8f5ab61213fca35d7a3bc5a9d2  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! 2ccf8a9abdbba3e9b1caafa0b0c478e2  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
  077d9c1d7e88fd08ed10452f9397e968  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/4.cc
  1f81b52cb792ecbdf58411ac3beebdd9  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/5.cc
  21c3d3b8e989fcc5f22efd11bcb8a8a6  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
*************** a1c2f50eee58bbde4f72998e5131e86c  libstd
*** 148189,148195 ****
  7325292e80485d6b674c45bcb806ac54  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
  d2e2a0b523bf117f6a39aef15eedbcab  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
  385c87a813f18751b1a860da66db60b6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! ac24d2359f3544bf714901c045253d01  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
  f75f22c5c9f75a3543fd2801a7ed2892  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
  bc5e4e997ceaa35edbdeb78976ea351b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
  07f4f74ff45333419f7420b78d9663ec  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
--- 148289,148295 ----
  7325292e80485d6b674c45bcb806ac54  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
  d2e2a0b523bf117f6a39aef15eedbcab  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
  385c87a813f18751b1a860da66db60b6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! 6fd7fa6cc2a23da90dd1da28c0e40607  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
  f75f22c5c9f75a3543fd2801a7ed2892  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
  bc5e4e997ceaa35edbdeb78976ea351b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
  07f4f74ff45333419f7420b78d9663ec  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
*************** a1c8d14e82b978097edd530f1b6e665f  libstd
*** 148213,148219 ****
  54ca172f9c3539fefaf1c0366c152545  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
  2976afc90d83f8d419df536afbeed487  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
  c4ef4d03a7411e7651ba2723096c491a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! 434f7f259054ae0d68a7c282363dcd41  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
  c90b8550a232104823664b7d5f2662f3  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
  27e46657002a6211ddb857c51889a0be  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
  61b79bafdb5831615eafb8eb4bf6cfaa  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
--- 148313,148319 ----
  54ca172f9c3539fefaf1c0366c152545  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
  2976afc90d83f8d419df536afbeed487  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
  c4ef4d03a7411e7651ba2723096c491a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! 1932055a703a3283778707608527d0f5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
  c90b8550a232104823664b7d5f2662f3  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
  27e46657002a6211ddb857c51889a0be  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
  61b79bafdb5831615eafb8eb4bf6cfaa  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
*************** bcec4a7c8f23caac63753788c9f2f1b8  libstd
*** 148277,148283 ****
  339c1d2a10fbfee3c1e3a3749cb0f435  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
  50138d48b18d6acca3117f2031e2614b  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
  929d70f4ef5484aedc31f44666422bf3  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! 7bc79cbe579a4c2e39890b89e792d7c4  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
  b914361af6bb3b33017a7dd63aeef606  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
  82f4bcf2298ace60c66c19c5c4bcca0d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
  18a24aed00a2090f0b930f93bcea9cfc  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
--- 148377,148383 ----
  339c1d2a10fbfee3c1e3a3749cb0f435  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
  50138d48b18d6acca3117f2031e2614b  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
  929d70f4ef5484aedc31f44666422bf3  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! fe0f62711964438ff361a877b3808703  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
  b914361af6bb3b33017a7dd63aeef606  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
  82f4bcf2298ace60c66c19c5c4bcca0d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
  18a24aed00a2090f0b930f93bcea9cfc  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
*************** c564d4b592056a18c60bfacb6723c24e  libstd
*** 148290,148296 ****
  e5971c1ecd361e2999830e5690c19aeb  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
  0dc7d5bc5f336781a55eeeea093086ba  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
  dd5b8291503aca8e8cd6c9da2e230396  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! 6710535452243824a21c459fcd044714  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
  b22087502f01204559199c82e6fa70a8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
  82ab37ba38e666571dd51f89c0330e83  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
  b6b27476f652a6e0d35f6827088692c3  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
--- 148390,148396 ----
  e5971c1ecd361e2999830e5690c19aeb  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
  0dc7d5bc5f336781a55eeeea093086ba  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
  dd5b8291503aca8e8cd6c9da2e230396  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! 45d5bd1c8af224a1b82644fd22933db6  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
  b22087502f01204559199c82e6fa70a8  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
  82ab37ba38e666571dd51f89c0330e83  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
  b6b27476f652a6e0d35f6827088692c3  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
*************** b4b96b87aa343a484cd4ca3d5a6fa59a  libstd
*** 149276,149282 ****
  2def988d62392d0eae7812a0c48217dd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
  fd72970d802acdfadb08fd49d9b5ade7  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
  ead288917668923052cfa7b0b62200ab  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc
! 738353c203eb8b056c97aefd696b8662  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
  2b65ead41cca6c486af5b12cb9181709  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
  338d49d351d1c3e8e2c61912dd1713ac  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
  3477d6ccda8eeaf59b340dcb9cdca6e2  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
--- 149376,149382 ----
  2def988d62392d0eae7812a0c48217dd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
  fd72970d802acdfadb08fd49d9b5ade7  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
  ead288917668923052cfa7b0b62200ab  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc
! db02735ade67a1d60149a05b457a3349  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
  2b65ead41cca6c486af5b12cb9181709  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
  338d49d351d1c3e8e2c61912dd1713ac  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
  3477d6ccda8eeaf59b340dcb9cdca6e2  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
*************** f96c681201fbef39ad138ca4712eda8d  libstd
*** 149307,149313 ****
  b62a73c0f9b0282c98dfece91931bf13  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
  702f02b2e25fb7febe243e74da7ec103  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
  bf539c9a325b53afa80d68e4047273ad  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! 821d9d809eff97e6972d53e77839d434  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
  b0ec1239629f94030050801c366f5520  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
  cfb46df760398cab780da251c5383e33  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
  2082d8a1d9bf101c15f7ffd923c2736e  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
--- 149407,149413 ----
  b62a73c0f9b0282c98dfece91931bf13  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
  702f02b2e25fb7febe243e74da7ec103  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
  bf539c9a325b53afa80d68e4047273ad  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! 47bd741774d007c193d194c16433ac74  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
  b0ec1239629f94030050801c366f5520  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
  cfb46df760398cab780da251c5383e33  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
  2082d8a1d9bf101c15f7ffd923c2736e  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
*************** dc078d737467372d2b0426ec2f645cdf  libstd
*** 149906,149912 ****
  7e17087c597d5ceb6c3bee357ac73d1f  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
  06369b2af188c106a8fe347bc0410b3c  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
  8cf3391b1b75926e53bfa6d24224f777  libstdc++-v3/testsuite/Makefile.am
! 87ec6e49ebcf181e6a1c9ee1225c8951  libstdc++-v3/testsuite/Makefile.in
  d8d1d63efcb89bdc43f06ff05d8f3b8f  libstdc++-v3/testsuite/abi/30586.cc
  27472a7da5d420df6eceb879beb16116  libstdc++-v3/testsuite/abi/aligned_buffers.cc
  5b0c4ad16a491e0bdd230f10b9671442  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
--- 150006,150012 ----
  7e17087c597d5ceb6c3bee357ac73d1f  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
  06369b2af188c106a8fe347bc0410b3c  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
  8cf3391b1b75926e53bfa6d24224f777  libstdc++-v3/testsuite/Makefile.am
! b6f5db53e67f75481b4ac26c60dd4886  libstdc++-v3/testsuite/Makefile.in
  d8d1d63efcb89bdc43f06ff05d8f3b8f  libstdc++-v3/testsuite/abi/30586.cc
  27472a7da5d420df6eceb879beb16116  libstdc++-v3/testsuite/abi/aligned_buffers.cc
  5b0c4ad16a491e0bdd230f10b9671442  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
*************** b66acde099f00f183d242567d716ce77  libstd
*** 151159,151165 ****
  f7f913b9b36585aa320d330e01a6161e  libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc
  bd53b7a3045c16d0fa75e9a8be586efe  libstdc++-v3/testsuite/std/memory/indirect/relops.cc
  268ca7c7aea9fe1a7800f1e24de9064e  libstdc++-v3/testsuite/std/memory/polymorphic/access.cc
! 903cd9d083a7483a17a37e37f0cbf23b  libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
  74a07b93bb4cfda7416d07fa87ee3aef  libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
  7fb928d35c89f294587a06af2af7d42d  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
  923de47eb314b7d7214f5612afcfd1b9  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
--- 151259,151265 ----
  f7f913b9b36585aa320d330e01a6161e  libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc
  bd53b7a3045c16d0fa75e9a8be586efe  libstdc++-v3/testsuite/std/memory/indirect/relops.cc
  268ca7c7aea9fe1a7800f1e24de9064e  libstdc++-v3/testsuite/std/memory/polymorphic/access.cc
! d3cb61fd51bbcbd31d74cd49a3274ebd  libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
  74a07b93bb4cfda7416d07fa87ee3aef  libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
  7fb928d35c89f294587a06af2af7d42d  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
  923de47eb314b7d7214f5612afcfd1b9  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
*************** a44ae6829c2d6cbdbd08359d948c3328  libstd
*** 152099,152117 ****
  7295ecbf1840cd9a5a4201f3630d1cee  libstdc++-v3/testsuite/util/testsuite_tr1.h
  8b5ea64e3eece45f10f299183d0e13bd  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
! 39cc83ca69ddbbe398dd79a2ba6b5499  libtool.m4
! 7d21efee86ad257c87cd43a3555c9c11  libvtv/ChangeLog
  2d74ef98580bcc9fd2c7902f0022be3a  libvtv/Makefile.am
! b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
! 84c8143a9310ea291315dcd0c276df5d  libvtv/aclocal.m4
! 469c28bea4ff3f61901f851a93dd6e75  libvtv/configure
  aef48e6e222ecdfc5d416dc52541151f  libvtv/configure.ac
  2067af3e7f4f30283d0d6b41dcf354bf  libvtv/configure.tgt
  2caccd848c579fcddd2a8c8106cfaff9  libvtv/scripts/run-testsuite.sh
  09a6150d1619f2508d7844f860b3382c  libvtv/scripts/sum-vtv-counts.c
  4835ec70e1fbcd9acd3c280c0060afa4  libvtv/testsuite/Makefile.am
! fda4739e0005be93900b671246d786ff  libvtv/testsuite/Makefile.in
  bda652a1aa34b11f3f9cd940b1b0c629  libvtv/testsuite/config/default.exp
  44c5c94dc23170fc0c737070a2ecb341  libvtv/testsuite/lib/libvtv-dg.exp
  23cdea9b6b348caec27ef4f42a08de8f  libvtv/testsuite/lib/libvtv.exp
--- 152199,152217 ----
  7295ecbf1840cd9a5a4201f3630d1cee  libstdc++-v3/testsuite/util/testsuite_tr1.h
  8b5ea64e3eece45f10f299183d0e13bd  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
! bb26af2dc6e1df1770a70b2035e3b013  libtool.m4
! 9eece7638ad03a73fc9daf2ee8269f6a  libvtv/ChangeLog
  2d74ef98580bcc9fd2c7902f0022be3a  libvtv/Makefile.am
! 1f8c57ab70163566fc7c8ce5eb9ee70d  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
! 9326b744fb18bad65d4738d0d25f70c7  libvtv/aclocal.m4
! 08f5bcef4b072955031fb92a63d61d77  libvtv/configure
  aef48e6e222ecdfc5d416dc52541151f  libvtv/configure.ac
  2067af3e7f4f30283d0d6b41dcf354bf  libvtv/configure.tgt
  2caccd848c579fcddd2a8c8106cfaff9  libvtv/scripts/run-testsuite.sh
  09a6150d1619f2508d7844f860b3382c  libvtv/scripts/sum-vtv-counts.c
  4835ec70e1fbcd9acd3c280c0060afa4  libvtv/testsuite/Makefile.am
! 16a2ce557da01cbd4323b5aa82d0882f  libvtv/testsuite/Makefile.in
  bda652a1aa34b11f3f9cd940b1b0c629  libvtv/testsuite/config/default.exp
  44c5c94dc23170fc0c737070a2ecb341  libvtv/testsuite/lib/libvtv-dg.exp
  23cdea9b6b348caec27ef4f42a08de8f  libvtv/testsuite/lib/libvtv.exp
*************** b75b4606a8f849a2e4931aeabb4c2165  libvtv
*** 152183,152194 ****
  343510afde83a825cc4129be092e4f05  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  2d10540be0b9516e14daf48616877aad  ltmain.sh
! c3c09353493302e1ab930084a60c4416  lto-plugin/ChangeLog
  aced0d5ba993307440be577533b64eb3  lto-plugin/Makefile.am
! 18a64561ab77c015f8c0e477b147509f  lto-plugin/Makefile.in
! 75fc65b35d0a47ac098f7a278d37060b  lto-plugin/aclocal.m4
  26e3d7e6d62bd000d0ad9db3b610e91c  lto-plugin/config.h.in
! 6f24f162e9f694a5bcafc58c82a5e3fb  lto-plugin/configure
  40efd97088318d4823aab5e72c85acd0  lto-plugin/configure.ac
  4b034fdd10d7c5f4703a74a6c18e8459  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
--- 152283,152294 ----
  343510afde83a825cc4129be092e4f05  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  2d10540be0b9516e14daf48616877aad  ltmain.sh
! dd8dfc4ff2c7b5e7c7a03b823bca02ae  lto-plugin/ChangeLog
  aced0d5ba993307440be577533b64eb3  lto-plugin/Makefile.am
! 92f6f16bc389d92c31885942b6b0f390  lto-plugin/Makefile.in
! 79b337b8e2e684d93cd124b348d1261a  lto-plugin/aclocal.m4
  26e3d7e6d62bd000d0ad9db3b610e91c  lto-plugin/config.h.in
! a741a61330f9c8a0ba5b601ba577b6ae  lto-plugin/configure
  40efd97088318d4823aab5e72c85acd0  lto-plugin/configure.ac
  4b034fdd10d7c5f4703a74a6c18e8459  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
*************** cf2baa0854f564a7785307e79f155efc  symlin
*** 152217,152239 ****
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  c4b157dd71edcc1b9b2cc9ea24b49694  zlib/CMakeLists.txt
! 9bcf72cec2188bb259480a78018d80d7  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b1d66913edd014b838cb18769d4fe7c6  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
  b51a40671bc46e961c0498897742c0b8  zlib/LICENSE
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! a9750311dd8298b1b33c3af114dea33e  zlib/Makefile.in
  0eef9e306e731d76dd46562154e247f6  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
! 5560350998c7f1171b2e343d788f5355  zlib/aclocal.m4
  cea51e08d9b176c6bf8b5820169d4102  zlib/adler32.c
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
  b0b5688c87d809bb32d0923dbef28ee6  zlib/compress.c
! ac01f3a9f30d749ba6b6b830b6d5dc97  zlib/configure
! 2b367e12f338a43b89cee19f3ae98cd1  zlib/configure.ac
  430971321023127490ca5e9b05fcb924  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
--- 152317,152339 ----
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  c4b157dd71edcc1b9b2cc9ea24b49694  zlib/CMakeLists.txt
! 250bd9eb3ca65d18d6352916e5f7609e  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b1d66913edd014b838cb18769d4fe7c6  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
  b51a40671bc46e961c0498897742c0b8  zlib/LICENSE
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! 8f7bb8ebdbc9b0c32409e3443d31eb85  zlib/Makefile.in
  0eef9e306e731d76dd46562154e247f6  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
! e89744f68241daec40b74b013b5e67a9  zlib/aclocal.m4
  cea51e08d9b176c6bf8b5820169d4102  zlib/adler32.c
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
  b0b5688c87d809bb32d0923dbef28ee6  zlib/compress.c
! c3f7c53bf1613e4a9548ed41a7bcb4c0  zlib/configure
! 5a7530d5dea3e90a954fde9b65cb7982  zlib/configure.ac
  430971321023127490ca5e9b05fcb924  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
diff -Nrcpad gcc-16-20250928/Makefile.def gcc-16-20251005/Makefile.def
*** gcc-16-20250928/Makefile.def	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/Makefile.def	Sun Oct  5 22:32:11 2025
*************** flags_to_pass = { flag= GNATBIND ; };
*** 313,319 ****
  flags_to_pass = { flag= GNATMAKE ; };
  flags_to_pass = { flag= GDC ; };
  flags_to_pass = { flag= GDCFLAGS ; };
- flags_to_pass = { flag= GUILE ; };
  
  // Target tools
  flags_to_pass = { flag= AR_FOR_TARGET ; };
--- 313,318 ----
*************** dependencies = { module=all-gdb; on=all-
*** 463,471 ****
--- 462,472 ----
  
  // Host modules specific to gdbserver.
  dependencies = { module=configure-gdbserver; on=all-gnulib; };
+ dependencies = { module=configure-gdbserver; on=all-libiconv; };
  dependencies = { module=all-gdbserver; on=all-gdbsupport; };
  dependencies = { module=all-gdbserver; on=all-gnulib; };
  dependencies = { module=all-gdbserver; on=all-libiberty; };
+ dependencies = { module=all-gdbserver; on=all-libiconv; };
  
  dependencies = { module=configure-libgui; on=configure-tcl; };
  dependencies = { module=configure-libgui; on=configure-tk; };
*************** dependencies = { module=install-bfd; on=
*** 524,530 ****
  dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
  
  // libopcodes depends on libbfd
! dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
--- 525,531 ----
  dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
  
  // libopcodes depends on libbfd
! dependencies = { module=configure-opcodes; on=all-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
*************** dependencies = { module=install-gprofng;
*** 550,557 ****
  dependencies = { module=install-gprofng; on=install-bfd; };
  
  dependencies = { module=configure-ld; on=configure-gettext; };
  dependencies = { module=all-ld; on=all-libiberty; };
- dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
--- 551,558 ----
  dependencies = { module=install-gprofng; on=install-bfd; };
  
  dependencies = { module=configure-ld; on=configure-gettext; };
+ dependencies = { module=configure-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
diff -Nrcpad gcc-16-20250928/Makefile.in gcc-16-20251005/Makefile.in
*** gcc-16-20250928/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/Makefile.in	Sun Oct  5 22:32:11 2025
***************
*** 3,9 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 3,9 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** BASE_EXPORTS = \
*** 144,151 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 144,150 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** DLLTOOL = @DLLTOOL@
*** 434,440 ****
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
--- 433,439 ----
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@ @NM_PLUGIN_OPTION@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
*************** CRAB1_LIBS = @CRAB1_LIBS@
*** 460,467 ****
  
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
- GUILE = guile
- 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 459,464 ----
*************** do-compare3 = $(do-compare)
*** 667,673 ****
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
--- 664,670 ----
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
*************** DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET
*** 687,697 ****
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
--- 684,694 ----
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
*************** BASE_FLAGS_TO_PASS = \
*** 891,897 ****
  	"GNATMAKE=$(GNATMAKE)" \
  	"GDC=$(GDC)" \
  	"GDCFLAGS=$(GDCFLAGS)" \
- 	"GUILE=$(GUILE)" \
  	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
--- 888,893 ----
*************** install-strip-ld: maybe-install-strip-bf
*** 68682,68697 ****
  install-strip-ld: maybe-install-strip-libctf
  install-bfd: maybe-install-libsframe
  install-strip-bfd: maybe-install-strip-libsframe
! configure-opcodes: configure-bfd
! configure-stage1-opcodes: configure-stage1-bfd
! configure-stage2-opcodes: configure-stage2-bfd
! configure-stage3-opcodes: configure-stage3-bfd
! configure-stage4-opcodes: configure-stage4-bfd
! configure-stageprofile-opcodes: configure-stageprofile-bfd
! configure-stagetrain-opcodes: configure-stagetrain-bfd
! configure-stagefeedback-opcodes: configure-stagefeedback-bfd
! configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd
! configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
  configure-gas: maybe-configure-gettext
--- 68678,68693 ----
  install-strip-ld: maybe-install-strip-libctf
  install-bfd: maybe-install-libsframe
  install-strip-bfd: maybe-install-strip-libsframe
! configure-opcodes: all-bfd
! configure-stage1-opcodes: all-stage1-bfd
! configure-stage2-opcodes: all-stage2-bfd
! configure-stage3-opcodes: all-stage3-bfd
! configure-stage4-opcodes: all-stage4-bfd
! configure-stageprofile-opcodes: all-stageprofile-bfd
! configure-stagetrain-opcodes: all-stagetrain-bfd
! configure-stagefeedback-opcodes: all-stagefeedback-bfd
! configure-stageautoprofile-opcodes: all-stageautoprofile-bfd
! configure-stageautofeedback-opcodes: all-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
  configure-gas: maybe-configure-gettext
*************** configure-stagetrain-ld: maybe-configure
*** 68756,68761 ****
--- 68752,68767 ----
  configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext
  configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext
  configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext
+ configure-ld: maybe-all-bfd
+ configure-stage1-ld: maybe-all-stage1-bfd
+ configure-stage2-ld: maybe-all-stage2-bfd
+ configure-stage3-ld: maybe-all-stage3-bfd
+ configure-stage4-ld: maybe-all-stage4-bfd
+ configure-stageprofile-ld: maybe-all-stageprofile-bfd
+ configure-stagetrain-ld: maybe-all-stagetrain-bfd
+ configure-stagefeedback-ld: maybe-all-stagefeedback-bfd
+ configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
+ configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
  all-ld: maybe-all-libiberty
  all-stage1-ld: maybe-all-stage1-libiberty
  all-stage2-ld: maybe-all-stage2-libiberty
*************** all-stagetrain-ld: maybe-all-stagetrain-
*** 68766,68781 ****
  all-stagefeedback-ld: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty
- all-ld: maybe-all-bfd
- all-stage1-ld: maybe-all-stage1-bfd
- all-stage2-ld: maybe-all-stage2-bfd
- all-stage3-ld: maybe-all-stage3-bfd
- all-stage4-ld: maybe-all-stage4-bfd
- all-stageprofile-ld: maybe-all-stageprofile-bfd
- all-stagetrain-ld: maybe-all-stagetrain-bfd
- all-stagefeedback-ld: maybe-all-stagefeedback-bfd
- all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
- all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
  all-ld: maybe-all-opcodes
  all-stage1-ld: maybe-all-stage1-opcodes
  all-stage2-ld: maybe-all-stage2-opcodes
--- 68772,68777 ----
*************** all-gdb: maybe-all-opcodes
*** 69249,69255 ****
--- 69245,69253 ----
  all-gdb: maybe-all-libdecnumber
  all-gdb: maybe-all-libctf
  all-gdb: maybe-all-libbacktrace
+ configure-gdbserver: maybe-all-libiconv
  all-gdbserver: maybe-all-libiberty
+ all-gdbserver: maybe-all-libiconv
  configure-gdbsupport: maybe-configure-gettext
  all-gdbsupport: maybe-all-gettext
  configure-gprof: maybe-configure-gettext
diff -Nrcpad gcc-16-20250928/Makefile.tpl gcc-16-20251005/Makefile.tpl
*** gcc-16-20250928/Makefile.tpl	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/Makefile.tpl	Sun Oct  5 22:32:11 2025
*************** in
*** 6,12 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 6,12 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** BASE_EXPORTS = \
*** 147,154 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 147,153 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** DLLTOOL = @DLLTOOL@
*** 437,443 ****
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
--- 436,442 ----
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@ @NM_PLUGIN_OPTION@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
*************** CRAB1_LIBS = @CRAB1_LIBS@
*** 463,470 ****
  
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
- GUILE = guile
- 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 462,467 ----
*************** do-compare3 = $(do-compare)
*** 590,596 ****
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
--- 587,593 ----
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
*************** DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET
*** 610,620 ****
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
--- 607,617 ----
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
diff -Nrcpad gcc-16-20250928/config/ChangeLog gcc-16-20251005/config/ChangeLog
*** gcc-16-20250928/config/ChangeLog	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/config/ChangeLog	Sun Oct  5 22:32:11 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* clang-plugin.m4: Synced from binutils-gdb.
+ 	* gcc-plugin.m4: Likewise.
+ 
  2025-08-10  Ijaz, Abdul B  <abdul.b.ijaz@intel.com>
  
  	* lib-link.m4: Handle dash in the library name for
diff -Nrcpad gcc-16-20250928/config/acx.m4 gcc-16-20251005/config/acx.m4
*** gcc-16-20250928/config/acx.m4	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/config/acx.m4	Sun Oct  5 22:32:11 2025
*************** AC_SUBST([target_subdir]) []dnl
*** 107,115 ****
  
  
  ####
! # _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_SYSTEM 
  # or AC_INIT.
! # These demand that AC_CANONICAL_SYSTEM be called beforehand.
  AC_DEFUN([_NCN_TOOL_PREFIXES],
  [ncn_tool_prefix=
  test -n "$host_alias" && ncn_tool_prefix=$host_alias-
--- 107,115 ----
  
  
  ####
! # _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_TARGET
  # or AC_INIT.
! # These demand that AC_CANONICAL_HOST and AC_CANONICAL_TARGET be called beforehand.
  AC_DEFUN([_NCN_TOOL_PREFIXES],
  [ncn_tool_prefix=
  test -n "$host_alias" && ncn_tool_prefix=$host_alias-
diff -Nrcpad gcc-16-20250928/config/clang-plugin.m4 gcc-16-20251005/config/clang-plugin.m4
*** gcc-16-20250928/config/clang-plugin.m4	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/config/clang-plugin.m4	Sun Oct  5 22:32:11 2025
***************
*** 0 ****
--- 1,114 ----
+ # clang-plugin.m4 -*- Autoconf -*-
+ # Check clang plugin file.
+ 
+ dnl Copyright (C) 2025 Free Software Foundation, Inc.
+ dnl This file is free software, distributed under the terms of the GNU
+ dnl General Public License.  As a special exception to the GNU General
+ dnl Public License, this file may be distributed as part of a program
+ dnl that contains a configuration script generated by Autoconf, under
+ dnl the same distribution terms as the rest of that program.
+ 
+ dnl
+ dnl
+ dnl CLANG_PLUGIN_FILE
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([CLANG_PLUGIN_FILE],[dnl
+   AC_CACHE_CHECK([for clang], clang_cv_is_clang, [
+     AC_EGREP_CPP(yes, [
+ #ifdef __clang__
+   yes
+ #endif
+     ], clang_cv_is_clang=yes, clang_cv_is_clang=no)])
+   plugin_file=
+   if test $clang_cv_is_clang = yes; then
+     AC_MSG_CHECKING([for clang plugin file])
+     plugin_names="LLVMgold.so"
+     for plugin in $plugin_names; do
+       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+       if test x$plugin_file = x$plugin; then
+ 	AC_CHECK_TOOL(LLVM_CONFIG, llvm-config)
+ 	if test "$?" != 0; then
+ 	  AC_MSG_ERROR([Required tool 'llvm-config' not found on PATH.])
+ 	fi
+ 	clang_lib_dir=`$LLVM_CONFIG --libdir`
+ 	if test -f $clang_lib_dir/$plugin; then
+ 	  plugin_file=$clang_lib_dir/$plugin
+ 	fi
+ 	if test x$plugin_file != x$plugin; then
+ 	  break;
+ 	fi
+       fi
+     done
+     if test -z $plugin_file; then
+       AC_MSG_ERROR([Couldn't find clang plugin file for $CC.])
+     fi
+     dnl Check if ${AR} $plugin_option rc works.
+     AC_CHECK_TOOL(AR, ar)
+     if test "${AR}" = "" ; then
+       AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
+     fi
+     plugin_option="--plugin $plugin_file"
+     touch conftest.c
+     ${AR} $plugin_option rc conftest.a conftest.c
+     if test "$?" != 0; then
+       AC_MSG_WARN([Failed: $AR $plugin_option rc])
+       plugin_file=
+     fi
+     rm -f conftest.*
+     AC_MSG_RESULT($plugin_file)
+   fi
+   $1="$plugin_file"
+ ])
+ 
+ dnl
+ dnl
+ dnl CLANG_PLUGIN_FILE_FOR_TARGET
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([CLANG_PLUGIN_FILE_FOR_TARGET],[dnl
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+   if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+     COMPILER_FOR_TARGET="$CC"
+   fi
+   saved_CC="$CC"
+   CC="$COMPILER_FOR_TARGET"
+   AC_CACHE_CHECK([for clang for target], clang_target_cv_working, [
+     AC_TRY_COMPILE([
+ #ifndef __clang__
+ #error Not clang
+ #endif
+     ],
+     [],
+     clang_target_cv_working=yes, clang_target_cv_working=no)])
+   CC="$saved_CC"
+   plugin_file=
+   if test $clang_target_cv_working = yes; then
+     AC_MSG_CHECKING([for clang plugin file for target])
+     plugin_names="LLVMgold.so"
+     dnl Check if the host compiler is used.
+     for plugin in $plugin_names; do
+       plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+       if test x$plugin_file = x$plugin; then
+ 	GCC_TARGET_TOOL(llvm-config, LLVM_CONFIG_FOR_TARGET, LLVM_CONFIG)
+ 	if test "$?" != 0; then
+ 	  AC_MSG_ERROR([Required target tool 'llvm-config' not found.])
+ 	fi
+ 	clang_lib_dir=`$LLVM_CONFIG_FOR_TARGET --libdir`
+ 	if test -f $clang_lib_dir/$plugin; then
+ 	  plugin_file=$clang_lib_dir/$plugin
+ 	fi
+       fi
+       if test x$plugin_file != x$plugin; then
+ 	break;
+       fi
+       plugin_file=
+     done
+     if test -n $plugin_file; then
+       AC_MSG_RESULT($plugin_file)
+     else
+       AC_MSG_RESULT([no])
+     fi
+   fi
+   $1="$plugin_file"
+ ])
diff -Nrcpad gcc-16-20250928/config/gcc-plugin.m4 gcc-16-20251005/config/gcc-plugin.m4
*** gcc-16-20250928/config/gcc-plugin.m4	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/config/gcc-plugin.m4	Sun Oct  5 22:32:11 2025
*************** else
*** 169,171 ****
--- 169,214 ----
    AC_MSG_RESULT([no])
  fi
  ])
+ 
+ dnl
+ dnl
+ dnl GCC_PLUGIN_OPTION_FOR_TARGET
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([GCC_PLUGIN_OPTION_FOR_TARGET],[dnl
+ COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+ dnl Check if the host compiler is used.
+ if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+   COMPILER_FOR_TARGET="$CC"
+ fi
+ saved_CC="$CC"
+ CC="$COMPILER_FOR_TARGET"
+ AC_CACHE_CHECK([for gcc for target], gcc_target_cv_working, [
+   AC_TRY_COMPILE(
+   [],
+   [],
+   gcc_target_cv_working=yes,
+   gcc_target_cv_working=no)])
+ CC="$saved_CC"
+ AC_MSG_CHECKING([for -plugin option])
+ plugin_option=
+ if test $gcc_target_cv_working = yes; then
+   plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+   for plugin in $plugin_names; do
+     plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin`
+     if test x$plugin_so = x$plugin; then
+       plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+     fi
+     if test x$plugin_so != x$plugin; then
+       plugin_option="--plugin $plugin_so"
+       break
+     fi
+   done
+ fi
+ if test -n "$plugin_option"; then
+   $1="$plugin_option"
+   AC_MSG_RESULT($plugin_option)
+ else
+   AC_MSG_RESULT([no])
+ fi
+ ])
diff -Nrcpad gcc-16-20250928/config/lthostflags.m4 gcc-16-20251005/config/lthostflags.m4
*** gcc-16-20250928/config/lthostflags.m4	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/config/lthostflags.m4	Sun Oct  5 22:32:11 2025
*************** dnl Defines and AC_SUBSTs lt_host_flags
*** 10,16 ****
  
  
  AC_DEFUN([ACX_LT_HOST_FLAGS], [
! AC_REQUIRE([AC_CANONICAL_SYSTEM])
  
  case $host in
    *-cygwin* | *-mingw*)
--- 10,16 ----
  
  
  AC_DEFUN([ACX_LT_HOST_FLAGS], [
! AC_REQUIRE([AC_CANONICAL_HOST])
  
  case $host in
    *-cygwin* | *-mingw*)
diff -Nrcpad gcc-16-20250928/configure gcc-16-20251005/configure
*** gcc-16-20250928/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/configure	Sun Oct  5 22:34:20 2025
*************** MAINTAINER_MODE_TRUE
*** 596,601 ****
--- 596,605 ----
  COMPILER_NM_FOR_TARGET
  COMPILER_LD_FOR_TARGET
  COMPILER_AS_FOR_TARGET
+ RANLIB_PLUGIN_OPTION_FOR_TARGET
+ NM_PLUGIN_OPTION_FOR_TARGET
+ AR_PLUGIN_OPTION_FOR_TARGET
+ LLVM_CONFIG_FOR_TARGET
  FLAGS_FOR_TARGET
  RAW_CXX_FOR_TARGET
  WINDMC_FOR_TARGET
*************** GCC_FOR_TARGET
*** 621,627 ****
--- 625,636 ----
  CXX_FOR_TARGET
  CC_FOR_TARGET
  RANLIB_PLUGIN_OPTION
+ NM_PLUGIN_OPTION
  AR_PLUGIN_OPTION
+ LLVM_CONFIG
+ EGREP
+ GREP
+ CPP
  PKG_CONFIG_PATH
  GDCFLAGS
  READELF
*************** OBJCOPY
*** 893,898 ****
--- 902,908 ----
  OBJDUMP
  OTOOL
  READELF
+ CPP
  CC_FOR_TARGET
  CXX_FOR_TARGET
  GCC_FOR_TARGET
*************** Some influential environment variables:
*** 1693,1698 ****
--- 1703,1709 ----
    OBJDUMP     OBJDUMP for the host
    OTOOL       OTOOL for the host
    READELF     READELF for the host
+   CPP         C preprocessor
    CC_FOR_TARGET
                CC for the target
    CXX_FOR_TARGET
*************** fi
*** 1985,1990 ****
--- 1996,2038 ----
    as_fn_set_status $ac_retval
  
  } # ac_fn_c_try_link
+ 
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
*************** ac_compiler_gnu=$ac_cv_c_compiler_gnu
*** 2343,2348 ****
--- 2391,2397 ----
  
  
  
+ 
  progname=$0
  # if PWD already has a value, it is probably wrong.
  if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
*************** test -n "$target_alias" &&
*** 2538,2544 ****
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_prefix=${target_alias}-
- 
  test "$program_prefix" != NONE &&
    program_transform_name="s&^&$program_prefix&;$program_transform_name"
  # Use a double $ so make ignores it.
--- 2587,2592 ----
*************** case "${target}" in
*** 4104,4113 ****
      # always build newlib.
      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
      ;;
-     # This is temporary until we can link against shared libraries
-   powerpcle-*-solaris*)
-     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
-     ;;
    powerpc-*-beos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
--- 4152,4157 ----
*************** fi
*** 14221,14227 ****
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
  $as_echo_n "checking for -plugin option... " >&6; }
  
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
--- 14265,14793 ----
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  
  
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong PLUGIN_OPTION with clang.
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
! $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
! if ${ac_cv_path_GREP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -z "$GREP"; then
!   ac_path_GREP_found=false
!   # Loop through the user's path and test for each of PROGNAME-LIST
!   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_prog in grep ggrep; do
!     for ac_exec_ext in '' $ac_executable_extensions; do
!       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
!       as_fn_executable_p "$ac_path_GREP" || continue
! # Check for GNU ac_path_GREP and select it if it is found.
!   # Check for GNU $ac_path_GREP
! case `"$ac_path_GREP" --version 2>&1` in
! *GNU*)
!   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
! *)
!   ac_count=0
!   $as_echo_n 0123456789 >"conftest.in"
!   while :
!   do
!     cat "conftest.in" "conftest.in" >"conftest.tmp"
!     mv "conftest.tmp" "conftest.in"
!     cp "conftest.in" "conftest.nl"
!     $as_echo 'GREP' >> "conftest.nl"
!     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
!     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
!     as_fn_arith $ac_count + 1 && ac_count=$as_val
!     if test $ac_count -gt ${ac_path_GREP_max-0}; then
!       # Best one so far, save it but keep looking for a better one
!       ac_cv_path_GREP="$ac_path_GREP"
!       ac_path_GREP_max=$ac_count
!     fi
!     # 10*(2^10) chars as input seems more than enough
!     test $ac_count -gt 10 && break
!   done
!   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
! esac
! 
!       $ac_path_GREP_found && break 3
!     done
!   done
!   done
! IFS=$as_save_IFS
!   if test -z "$ac_cv_path_GREP"; then
!     as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
!   fi
! else
!   ac_cv_path_GREP=$GREP
! fi
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
! $as_echo "$ac_cv_path_GREP" >&6; }
!  GREP="$ac_cv_path_GREP"
! 
! 
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
! $as_echo_n "checking for egrep... " >&6; }
! if ${ac_cv_path_EGREP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
!    then ac_cv_path_EGREP="$GREP -E"
!    else
!      if test -z "$EGREP"; then
!   ac_path_EGREP_found=false
!   # Loop through the user's path and test for each of PROGNAME-LIST
!   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_prog in egrep; do
!     for ac_exec_ext in '' $ac_executable_extensions; do
!       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
!       as_fn_executable_p "$ac_path_EGREP" || continue
! # Check for GNU ac_path_EGREP and select it if it is found.
!   # Check for GNU $ac_path_EGREP
! case `"$ac_path_EGREP" --version 2>&1` in
! *GNU*)
!   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
! *)
!   ac_count=0
!   $as_echo_n 0123456789 >"conftest.in"
!   while :
!   do
!     cat "conftest.in" "conftest.in" >"conftest.tmp"
!     mv "conftest.tmp" "conftest.in"
!     cp "conftest.in" "conftest.nl"
!     $as_echo 'EGREP' >> "conftest.nl"
!     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
!     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
!     as_fn_arith $ac_count + 1 && ac_count=$as_val
!     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
!       # Best one so far, save it but keep looking for a better one
!       ac_cv_path_EGREP="$ac_path_EGREP"
!       ac_path_EGREP_max=$ac_count
!     fi
!     # 10*(2^10) chars as input seems more than enough
!     test $ac_count -gt 10 && break
!   done
!   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
! esac
! 
!       $ac_path_EGREP_found && break 3
!     done
!   done
!   done
! IFS=$as_save_IFS
!   if test -z "$ac_cv_path_EGREP"; then
!     as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
!   fi
! else
!   ac_cv_path_EGREP=$EGREP
! fi
! 
!    fi
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
! $as_echo "$ac_cv_path_EGREP" >&6; }
!  EGREP="$ac_cv_path_EGREP"
! 
! 
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   PLUGIN_FILE="$plugin_file"
! 
! if test -n "$PLUGIN_FILE"; then
!   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
  $as_echo_n "checking for -plugin option... " >&6; }
  
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
*************** else
*** 14348,14359 ****
--- 14914,14930 ----
  $as_echo "no" >&6; }
  fi
  
+ fi
  AR_PLUGIN_OPTION=
+ NM_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
+   if $NM --help 2>&1 | grep -q "\--plugin"; then
+     NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
*************** fi
*** 14361,14366 ****
--- 14932,14938 ----
  
  
  
+ 
  # Target tools.
  
  # Check whether --with-build-time-tools was given.
*************** AR_FOR_TARGET=${AR_FOR_TARGET}${extra_ar
*** 20024,20029 ****
--- 20596,20777 ----
  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
  
+ # Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET
+ # may return the wrong PLUGIN_OPTION_FOR_TARGET with clang.
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+   if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+     COMPILER_FOR_TARGET="$CC"
+   fi
+   saved_CC="$CC"
+   CC="$COMPILER_FOR_TARGET"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang for target" >&5
+ $as_echo_n "checking for clang for target... " >&6; }
+ if ${clang_target_cv_working+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ #ifndef __clang__
+ #error Not clang
+ #endif
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+   clang_target_cv_working=yes
+ else
+   clang_target_cv_working=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_target_cv_working" >&5
+ $as_echo "$clang_target_cv_working" >&6; }
+   CC="$saved_CC"
+   plugin_file=
+   if test $clang_target_cv_working = yes; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file for target" >&5
+ $as_echo_n "checking for clang plugin file for target... " >&6; }
+     plugin_names="LLVMgold.so"
+         for plugin in $plugin_names; do
+       plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+       if test x$plugin_file = x$plugin; then
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target llvm-config" >&5
+ $as_echo_n "checking where to find the target llvm-config... " >&6; }
+ if test "x${build}" != "x${host}" ; then
+   if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET`
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5
+ $as_echo "pre-installed in $ac_dir" >&6; }
+   else
+     # Canadian cross, just use what we found
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5
+ $as_echo "pre-installed" >&6; }
+   fi
+ else
+   if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET`
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5
+ $as_echo "pre-installed in $ac_dir" >&6; }
+   elif test "x$target" = "x$host"; then
+     # We can use an host tool
+     LLVM_CONFIG_FOR_TARGET='$(LLVM_CONFIG)'
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5
+ $as_echo "host tool" >&6; }
+   else
+     # We need a cross tool
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5
+ $as_echo "pre-installed" >&6; }
+   fi
+ fi
+ 
+ 	if test "$?" != 0; then
+ 	  as_fn_error $? "Required target tool 'llvm-config' not found." "$LINENO" 5
+ 	fi
+ 	clang_lib_dir=`$LLVM_CONFIG_FOR_TARGET --libdir`
+ 	if test -f $clang_lib_dir/$plugin; then
+ 	  plugin_file=$clang_lib_dir/$plugin
+ 	fi
+       fi
+       if test x$plugin_file != x$plugin; then
+ 	break;
+       fi
+       plugin_file=
+     done
+     if test -n $plugin_file; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+ $as_echo "$plugin_file" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+     fi
+   fi
+   PLUGIN_FILE_FOR_TARGET="$plugin_file"
+ 
+ if test -n "$PLUGIN_FILE_FOR_TARGET"; then
+   PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET"
+ else
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+ if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+   COMPILER_FOR_TARGET="$CC"
+ fi
+ saved_CC="$CC"
+ CC="$COMPILER_FOR_TARGET"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc for target" >&5
+ $as_echo_n "checking for gcc for target... " >&6; }
+ if ${gcc_target_cv_working+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+   gcc_target_cv_working=yes
+ else
+   gcc_target_cv_working=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_target_cv_working" >&5
+ $as_echo "$gcc_target_cv_working" >&6; }
+ CC="$saved_CC"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+ $as_echo_n "checking for -plugin option... " >&6; }
+ plugin_option=
+ if test $gcc_target_cv_working = yes; then
+   plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+   for plugin in $plugin_names; do
+     plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin`
+     if test x$plugin_so = x$plugin; then
+       plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+     fi
+     if test x$plugin_so != x$plugin; then
+       plugin_option="--plugin $plugin_so"
+       break
+     fi
+   done
+ fi
+ if test -n "$plugin_option"; then
+   PLUGIN_OPTION_FOR_TARGET="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
+ if test -n "$PLUGIN_OPTION_FOR_TARGET"; then
+   AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+ else
+   AR_PLUGIN_OPTION_FOR_TARGET=
+   NM_PLUGIN_OPTION_FOR_TARGET=
+   RANLIB_PLUGIN_OPTION_FOR_TARGET=
+ fi
+ 
+ 
+ 
+ 
  # When building target libraries, except in a Canadian cross, we use
  # the same toolchain as the compiler we just built.
  COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
diff -Nrcpad gcc-16-20250928/configure.ac gcc-16-20251005/configure.ac
*** gcc-16-20250928/configure.ac	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/configure.ac	Sun Oct  5 22:32:11 2025
*************** m4_include(config/override.m4)
*** 24,29 ****
--- 24,30 ----
  m4_include(config/proginstall.m4)
  m4_include(config/elf.m4)
  m4_include(config/ax_cxx_compile_stdcxx.m4)
+ m4_include(config/clang-plugin.m4)
  m4_include(config/gcc-plugin.m4)
  m4_include([libtool.m4])
  m4_include([ltoptions.m4])
*************** m4_include([ltversion.m4])
*** 32,38 ****
  m4_include([lt~obsolete.m4])
  m4_include([config/isl.m4])
  
! AC_INIT(move-if-change)
  AC_DISABLE_OPTION_CHECKING
  
  progname=$0
--- 33,40 ----
  m4_include([lt~obsolete.m4])
  m4_include([config/isl.m4])
  
! AC_INIT
! AC_CONFIG_SRCDIR([move-if-change])
  AC_DISABLE_OPTION_CHECKING
  
  progname=$0
*************** ACX_NONCANONICAL_TARGET
*** 70,83 ****
  
  dnl Autoconf 2.5x and later will set a default program prefix if
  dnl --target was used, even if it was the same as --host.  Disable
! dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
  dnl to take effect.
  test "$host_noncanonical" = "$target_noncanonical" &&
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_transform_name=s,y,y,
  
! AC_CANONICAL_SYSTEM
  AC_ARG_PROGRAM
  
  m4_pattern_allow([^AS_FOR_TARGET$])dnl
--- 72,85 ----
  
  dnl Autoconf 2.5x and later will set a default program prefix if
  dnl --target was used, even if it was the same as --host.  Disable
! dnl that behavior.  This must be done before AC_CANONICAL_TARGET
  dnl to take effect.
  test "$host_noncanonical" = "$target_noncanonical" &&
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_transform_name=s,y,y,
  
! AC_CANONICAL_TARGET
  AC_ARG_PROGRAM
  
  m4_pattern_allow([^AS_FOR_TARGET$])dnl
*************** case "${target}" in
*** 1319,1328 ****
      # always build newlib.
      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
      ;;
-     # This is temporary until we can link against shared libraries
-   powerpcle-*-solaris*)
-     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
-     ;;
    powerpc-*-beos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
--- 1321,1326 ----
*************** AC_SUBST(GDCFLAGS)
*** 4015,4032 ****
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  AC_SUBST(PKG_CONFIG_PATH)
  
! GCC_PLUGIN_OPTION(PLUGIN_OPTION)
  AR_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
  fi
  AC_SUBST(AR_PLUGIN_OPTION)
  AC_SUBST(RANLIB_PLUGIN_OPTION)
  
  # Target tools.
--- 4013,4042 ----
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  AC_SUBST(PKG_CONFIG_PATH)
  
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong PLUGIN_OPTION with clang.
! CLANG_PLUGIN_FILE(PLUGIN_FILE)
! if test -n "$PLUGIN_FILE"; then
!   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
! else
!   GCC_PLUGIN_OPTION(PLUGIN_OPTION)
! fi
  AR_PLUGIN_OPTION=
+ NM_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
+   if $NM --help 2>&1 | grep -q "\--plugin"; then
+     NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
  fi
  AC_SUBST(AR_PLUGIN_OPTION)
+ AC_SUBST(NM_PLUGIN_OPTION)
  AC_SUBST(RANLIB_PLUGIN_OPTION)
  
  # Target tools.
*************** AR_FOR_TARGET=${AR_FOR_TARGET}${extra_ar
*** 4121,4126 ****
--- 4131,4157 ----
  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
  
+ # Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET
+ # may return the wrong PLUGIN_OPTION_FOR_TARGET with clang.
+ CLANG_PLUGIN_FILE_FOR_TARGET(PLUGIN_FILE_FOR_TARGET)
+ if test -n "$PLUGIN_FILE_FOR_TARGET"; then
+   PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET"
+ else
+   GCC_PLUGIN_OPTION_FOR_TARGET(PLUGIN_OPTION_FOR_TARGET)
+ fi
+ if test -n "$PLUGIN_OPTION_FOR_TARGET"; then
+   AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+ else
+   AR_PLUGIN_OPTION_FOR_TARGET=
+   NM_PLUGIN_OPTION_FOR_TARGET=
+   RANLIB_PLUGIN_OPTION_FOR_TARGET=
+ fi
+ AC_SUBST(AR_PLUGIN_OPTION_FOR_TARGET)
+ AC_SUBST(NM_PLUGIN_OPTION_FOR_TARGET)
+ AC_SUBST(RANLIB_PLUGIN_OPTION_FOR_TARGET)
+ 
  # When building target libraries, except in a Canadian cross, we use
  # the same toolchain as the compiler we just built.
  COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
diff -Nrcpad gcc-16-20250928/contrib/ChangeLog gcc-16-20251005/contrib/ChangeLog
*** gcc-16-20250928/contrib/ChangeLog	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/contrib/ChangeLog	Sun Oct  5 22:32:11 2025
***************
*** 1,3 ****
--- 1,19 ----
+ 2025-10-05  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* gcc-changelog/git_update_version.py (ignored_commits): Add
+ 	commit b40ef6e9dc096c8c19399e94947a1965258a6942.
+ 
+ 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	Revert:
+ 	2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties
+ 
  2025-09-23  Jonathan Wakely  <jwakely@redhat.com>
  
  	* unicode/gen_libstdcxx_unicode_data.py: Fix comment type.
diff -Nrcpad gcc-16-20250928/contrib/gcc-changelog/git_update_version.py gcc-16-20251005/contrib/gcc-changelog/git_update_version.py
*** gcc-16-20250928/contrib/gcc-changelog/git_update_version.py	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/contrib/gcc-changelog/git_update_version.py	Sun Oct  5 22:32:11 2025
*************** ignored_commits = {
*** 47,53 ****
          '72677e1119dc40aa680755d009e079ad49446c46',
          '10d76b7f1e5b63ad6d2b92940c39007913ced037',
          'de3b277247ce98d189f121155b75f490725a42f6',
!         '13cf22eb557eb5e3d796822247d8d4957bdb25da'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
--- 47,54 ----
          '72677e1119dc40aa680755d009e079ad49446c46',
          '10d76b7f1e5b63ad6d2b92940c39007913ced037',
          'de3b277247ce98d189f121155b75f490725a42f6',
!         '13cf22eb557eb5e3d796822247d8d4957bdb25da',
!         'b40ef6e9dc096c8c19399e94947a1965258a6942'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
diff -Nrcpad gcc-16-20250928/gcc/ChangeLog gcc-16-20251005/gcc/ChangeLog
*** gcc-16-20250928/gcc/ChangeLog	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ChangeLog	Sun Oct  5 22:32:12 2025
***************
*** 1,3 ****
--- 1,717 ----
+ 2025-10-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*widen_waddu_wx_<mode>): Add new
+ 	pattern to match vwaddu.wx.
+ 
+ 2025-10-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor the form 1 of SAT_MUL by keyword for.
+ 
+ 2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122143
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting
+ 	TODO_update_address_taken only when the statement was a call before fold_stmt.
+ 
+ 2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122153
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle
+ 	stores of empty constructors too.
+ 
+ 2025-10-04  Matteo Nicoli  <matteo.nicoli001@gmail.com>
+ 
+ 	PR tree-optimization/117760
+ 	* match.pd: Add simplifications that exploit implied values after
+ 	logical tests.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122104
+ 	* tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call
+ 	reset_flow_sensitive_info_in_bb on bb when optimizing out the
+ 	guarding condition.
+ 
+ 2025-10-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/122114
+ 	* config/riscv/riscv.cc
+ 	(riscv_allocate_and_probe_stack_space): Change initial_cfa_offset
+ 	type.
+ 
+ 2025-10-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122147
+ 	* config/riscv/predicates.md (move_operand): Only allow a REG as the
+ 	operand of a SUBREG.
+ 
+ 2025-10-04  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	PR target/118945
+ 	* config/riscv/riscv.cc (riscv_prefer_agnostic_p): New function.
+ 	(riscv_tune_param): Add prefer_agnostic member.
+ 	(various tune info structures): Initialize prefer_agnostic.
+ 	* config/riscv/riscv-protos.h (riscv_prefer_agnostic_p): Add
+ 	prototype.
+ 	* config/riscv/riscv-v.cc (get_prefer_tail_policy,
+ 	get_prefer_mask_policy): Use riscv_prefer_agnostic_p.
+ 	* config/riscv/riscv-vsetvl.cc (vsetvl_info::get_demand_flags):
+ 	demand policy for agnostic when prefer_agnostic is true.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114457
+ 	* flag-types.h (enum auto_init_type): Add AUTO_INIT_CXX26.
+ 	* tree.h (VACUOUS_INIT_LABEL_P): Define.
+ 	* gimplify.cc (is_var_need_auto_init): Renamed to ...
+ 	(var_needs_auto_init_p): ... this.  Don't return true for
+ 	vars with "indeterminate" attribute.  Formatting fixes.
+ 	(gimplify_decl_expr): Use var_needs_auto_init_p instead of
+ 	is_var_need_auto_init.
+ 	(emit_warn_switch_unreachable): Remove the flag_auto_var_init
+ 	special cases.
+ 	(warn_switch_unreachable_and_auto_init_r): Handle them here
+ 	by doing just returning NULL.
+ 	(last_stmt_in_scope): Don't skip just debug stmts to find
+ 	the last stmt in seq, skip for
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also IFN_DEFERRED_INIT
+ 	calls.
+ 	(collect_fallthrough_labels): For
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED ignore
+ 	IFN_DEFERRED_INIT calls and GIMPLE_GOTOs to
+ 	VACUOUS_INIT_LABEL_P.
+ 	(should_warn_for_implicit_fallthrough): For
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also skip over
+ 	IFN_DEFERRED_INIT calls.
+ 	(expand_FALLTHROUGH_r): Likewise, and handle GIMPLE_GOTOs
+ 	to VACUOUS_INIT_LABEL_P.
+ 	(gimplify_init_constructor): Use var_needs_auto_init_p instead
+ 	of is_var_need_auto_init and for flag_auto_var_init
+ 	AUTO_INIT_CXX26 don't call gimple_add_padding_init_for_auto_var.
+ 	(gimplify_target_expr): If var_needs_auto_init_p and init has
+ 	void type, call gimple_add_init_for_auto_var and for
+ 	AUTO_INIT_PATTERN also gimple_add_padding_init_for_auto_var.
+ 	* tree-ssa-uninit.cc (maybe_warn_operand): Handle loads from *this
+ 	at the start of the function with "clobber *this" attribute on the
+ 	PARM_DECL.
+ 	* ipa-split.cc (split_function): Remove "clobber *this" attribute
+ 	from the first PARM_DECL (if any).
+ 	* doc/invoke.texi (ftrivial-auto-var-init=): Adjust documentation.
+ 
+ 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/117658
+ 	* doc/invoke.texi: Document '-Wno-external-tu-local'.
+ 
+ 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	Revert:
+ 	2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	custom-sarif-properties/digraphs.o and
+ 	custom-sarif-properties/state-graphs.o.  Remove
+ 	diagnostics/state-graphs.o.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add custom-sarif-properties to subdir iteration.
+ 	* custom-sarif-properties/digraphs.cc: New file.
+ 	* custom-sarif-properties/digraphs.h: New file.
+ 	* custom-sarif-properties/state-graphs.cc: New file.
+ 	* custom-sarif-properties/state-graphs.h: New file.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
+ 	Delete decl.
+ 	* diagnostics/digraphs.cc: Include
+ 	"custom-sarif-properties/digraphs.h".  Move include of
+ 	"selftest.h" to within CHECKING_P section.
+ 	(using digraph_object): New.
+ 	(namespace properties): New.
+ 	(diagnostics::digraphs::object::get_attr): Delete.
+ 	(diagnostics::digraphs::object::set_attr): Delete.
+ 	(diagnostics::digraphs::object::set_json_attr): Delete.
+ 	(digraph_object::get_property): New definitions, for various
+ 	property types.
+ 	(digraph_object::set_property): Likewise.
+ 	(digraph_object::maybe_get_property): New.
+ 	(digraph_object::get_property_as_tristate): New.
+ 	(digraph_object::ensure_property_bag): New.
+ 	(digraph::get_graph_kind): New.
+ 	(digraph::set_graph_kind): New.
+ 	Add include of "custom-sarif-properties/state-graphs.h".
+ 	(selftest::test_simple_graph): Rewrite to use json::property
+ 	instances rather than string attribute names.
+ 	(selftest::test_property_objects): New test.
+ 	(selftest::digraphs_cc_tests): Call it.
+ 	* diagnostics/digraphs.h: Include "tristate.h".
+ 	(object::get_attr): Delete.
+ 	(object::set_attr): Delete.
+ 	(object::get_property): New decls.
+ 	(object::set_property): New decls.
+ 	(object::maybe_get_property): New.
+ 	(object::get_property_as_tristate): New.
+ 	(object::set_json_attr): Delete.
+ 	(object::ensure_property_bag): New.
+ 	(graph::get_graph_kind): New.
+ 	(graph::set_graph_kind): New.
+ 	* diagnostics/html-sink.cc
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renamings.
+ 	(html_generation_options::dump): Likewise.
+ 	(html_builder::maybe_make_state_diagram): Likewise.
+ 	(html_builder::add_graph): Show SARIF and .dot src inline, if
+ 	requested.
+ 	* diagnostics/html-sink.h
+ 	(html_generation_options::m_show_state_diagrams_sarif): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagrams_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_dot_src0): ...this.
+ 	* diagnostics/output-spec.cc
+ 	(html_scheme_handler::maybe_handle_kv): Rename keys.
+ 	(html_scheme_handler::get_keys): Likewise.
+ 	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
+ 	use json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* diagnostics/state-graphs.cc: Deleted file.
+ 	* diagnostics/state-graphs.h: Delete almost all, except decl of
+ 	diagnostics::state_graphs::make_dot_graph.
+ 	* doc/invoke.texi: Update for changes to "experimental-html" sink
+ 	keys.
+ 	* json.cc (json::object::set_string): New.
+ 	(json::object::set_integer): New.
+ 	(json::object::set_bool): New.
+ 	(json::object::set_array_of_string): New.
+ 	* json.h: Include "label-text.h".
+ 	(struct json::property): New template.
+ 	(json::string_property): New.
+ 	(json::integer_property): New.
+ 	(json::bool_property): New.
+ 	(json::json_property): New.
+ 	(using json::array_of_string_property): New.
+ 	(struct json::enum_traits): New.
+ 	(enum_json::property): New.
+ 	(json::value::dyn_cast_array): New vfunc.
+ 	(json::value::dyn_cast_integer_number): New vfunc.
+ 	(json::value::set_string): New.
+ 	(json::value::set_integer): New.
+ 	(json::value::set_bool): New.
+ 	(json::value::set_array_of_string): New.
+ 	(json::value::maybe_get_enum): New.
+ 	(json::value::set_enum): New.
+ 	(json::array::dyn_cast_array): New.
+ 	(json::integer_number::dyn_cast_integer_number): New.
+ 	(object::maybe_get_enum): New.
+ 	(object::set_enum): New.
+ 
+ 2025-10-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/121937
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Make
+ 	sure we've got a scalar_int_mode before calling neg_poly_int_rtx.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* passes.def: Remove both pass_fold_builtin.
+ 	Swap out pass_copy_prop for pass_forwprop with
+ 	full_walk = false and last=true.
+ 	* tree-pass.h (make_pass_fold_builtins): Remove.
+ 	* tree-ssa-ccp.cc (class pass_fold_builtins): Delete.
+ 	(pass_fold_builtins::execute): Delete.
+ 	(make_pass_fold_builtins): Remove.
+ 	* doc/passes.texi (Folding built-in functions): Remove.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-isel.cc (gimple_nop_atomic_bit_test_and_p): New decl.
+ 	(gimple_nop_convert): Likewise.
+ 	(convert_atomic_bit_not): Moved from tree-ssa-ccp.cc.
+ 	(optimize_atomic_bit_test_and): Likewise.
+ 	(optimize_atomic_op_fetch_cmp_0): Likewise.
+ 	(gimple_isel_builtin_call): New function.
+ 	(CASE_ATOMIC): Moved from tree-ssa-ccp.cc.
+ 	(CASE_ATOMIC_CMP0): Likewise.
+ 	(CASE_ATOMIC_BIT_TEST_AND): Likewise.
+ 	(pass_gimple_isel::execute): For calls just call gimple_isel_builtin_call.
+ 	* tree-ssa-ccp.cc (convert_atomic_bit_not): Move to gimple-isel.cc.
+ 	(gimple_nop_atomic_bit_test_and_p): Likewise.
+ 	(gimple_nop_convert): Likewise.
+ 	(optimize_atomic_bit_test_and): Likewise.
+ 	(optimize_atomic_op_fetch_cmp_0): Likewise.
+ 	(pass_fold_builtins::execute): Just call fold_stmt for internal
+ 	or normal bultin calls.
+ 	(CASE_ATOMIC): Move to gimple-isel.cc.
+ 	(CASE_ATOMIC_CMP0): Likewise.
+ 	(CASE_ATOMIC_BIT_TEST_AND): Likewise.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (CASE_ATOMIC): New defined.
+ 	(CASE_ATOMIC_CMP0): New define.
+ 	(CASE_ATOMIC_BIT_TEST_AND): New defined.
+ 	(pass_fold_builtins::execute): Use CASE_ATOMIC, CASE_ATOMIC_CMP0,
+ 	and CASE_ATOMIC_BIT_TEST_AND.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-fold.cc (gimple_fold_builtin_stdarg): New function,
+ 	moved from tree-ssa-ccp.cc (optimize_stdarg_builtin).
+ 	(gimple_fold_builtin): Call gimple_fold_builtin_stdarg for
+ 	va_start, va_copy and va_end.
+ 	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Remove.
+ 	(pass_fold_builtins::execute): Remove handling of
+ 	va_start, va_copy and va_end.
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Update
+ 	todos if fold_stmt return true if last forwprop to include
+ 	TODO_update_address_taken.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* tree-ssa-ccp.cc (optimize_unreachable): Move to tree-ssa-forwprop.cc
+ 	(pass_fold_builtins::execute): Remove handling of __builtin_unreachable.
+ 	* tree-ssa-forwprop.cc (optimize_unreachable): New function from
+ 	tree-ssa-ccp.cc. Change argument to bb. Remove check on first statement
+ 	being the __builtin_unreachable since it is handled already.
+ 	(pass_forwprop::execute): Handle first statement as being __builtin_unreachable
+ 	by calling optimize_unreachable.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* tree-ssa-ccp.cc (optimize_stack_restore): Move to tree-ssa-forwprop.cc.
+ 	(pass_fold_builtins::execute): Don't call optimize_stack_restore.
+ 	* tree-ssa-forwprop.cc (optimize_stack_restore): New function from
+ 	tree-ssa-ccp.cc. Return bool instead of value, use replace_call_with_value
+ 	istead of returning integer_zero_node.
+ 	(simplify_builtin_call): Call optimize_stack_restore.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122033
+ 	* tree-ssa-ccp.cc (optimize_stack_restore): Rewrite the call check.
+ 	Update comment in the front to new rules on calls.
+ 	* tree.h (fndecl_builtin_alloc_p): New function.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-fold.cc (gimple_fold_call): Remove ASSUME internal function
+ 	calls when PROP_last_full_fold is set.
+ 	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Handling folding
+ 	of all internal functions.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Mannually create the
+ 	gimple statements instead of depending on the gimplifier.
+ 	(pass_fold_builtins::execute): Handle updated call to optimize_stdarg_builtin.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_memcmp_eq): Remove.
+ 	(pass_fold_builtins::execute): Remove handling of memcmp.
+ 	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Add folding
+ 	of memcmp to memcmp_eq for PROP_last_full_fold.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	custom-sarif-properties/digraphs.o and
+ 	custom-sarif-properties/state-graphs.o.  Remove
+ 	diagnostics/state-graphs.o.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add custom-sarif-properties to subdir iteration.
+ 	* custom-sarif-properties/digraphs.cc: New file.
+ 	* custom-sarif-properties/digraphs.h: New file.
+ 	* custom-sarif-properties/state-graphs.cc: New file.
+ 	* custom-sarif-properties/state-graphs.h: New file.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
+ 	Delete decl.
+ 	* diagnostics/digraphs.cc: Include
+ 	"custom-sarif-properties/digraphs.h".  Move include of
+ 	"selftest.h" to within CHECKING_P section.
+ 	(using digraph_object): New.
+ 	(namespace properties): New.
+ 	(diagnostics::digraphs::object::get_attr): Delete.
+ 	(diagnostics::digraphs::object::set_attr): Delete.
+ 	(diagnostics::digraphs::object::set_json_attr): Delete.
+ 	(digraph_object::get_property): New definitions, for various
+ 	property types.
+ 	(digraph_object::set_property): Likewise.
+ 	(digraph_object::maybe_get_property): New.
+ 	(digraph_object::get_property_as_tristate): New.
+ 	(digraph_object::ensure_property_bag): New.
+ 	(digraph::get_graph_kind): New.
+ 	(digraph::set_graph_kind): New.
+ 	Add include of "custom-sarif-properties/state-graphs.h".
+ 	(selftest::test_simple_graph): Rewrite to use json::property
+ 	instances rather than string attribute names.
+ 	(selftest::test_property_objects): New test.
+ 	(selftest::digraphs_cc_tests): Call it.
+ 	* diagnostics/digraphs.h: Include "tristate.h".
+ 	(object::get_attr): Delete.
+ 	(object::set_attr): Delete.
+ 	(object::get_property): New decls.
+ 	(object::set_property): New decls.
+ 	(object::maybe_get_property): New.
+ 	(object::get_property_as_tristate): New.
+ 	(object::set_json_attr): Delete.
+ 	(object::ensure_property_bag): New.
+ 	(graph::get_graph_kind): New.
+ 	(graph::set_graph_kind): New.
+ 	* diagnostics/html-sink.cc
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renamings.
+ 	(html_generation_options::dump): Likewise.
+ 	(html_builder::maybe_make_state_diagram): Likewise.
+ 	(html_builder::add_graph): Show SARIF and .dot src inline, if
+ 	requested.
+ 	* diagnostics/html-sink.h
+ 	(html_generation_options::m_show_state_diagrams_sarif): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagrams_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_dot_src0): ...this.
+ 	* diagnostics/output-spec.cc
+ 	(html_scheme_handler::maybe_handle_kv): Rename keys.
+ 	(html_scheme_handler::get_keys): Likewise.
+ 	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
+ 	use json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* diagnostics/state-graphs.cc: Deleted file.
+ 	* diagnostics/state-graphs.h: Delete almost all, except decl of
+ 	diagnostics::state_graphs::make_dot_graph.
+ 	* doc/invoke.texi: Update for changes to "experimental-html" sink
+ 	keys.
+ 	* json.cc (json::object::set_string): New.
+ 	(json::object::set_integer): New.
+ 	(json::object::set_bool): New.
+ 	(json::object::set_array_of_string): New.
+ 	* json.h: Include "label-text.h".
+ 	(struct json::property): New template.
+ 	(json::string_property): New.
+ 	(json::integer_property): New.
+ 	(json::bool_property): New.
+ 	(json::json_property): New.
+ 	(using json::array_of_string_property): New.
+ 	(struct json::enum_traits): New.
+ 	(enum_json::property): New.
+ 	(json::value::dyn_cast_array): New vfunc.
+ 	(json::value::dyn_cast_integer_number): New vfunc.
+ 	(json::value::set_string): New.
+ 	(json::value::set_integer): New.
+ 	(json::value::set_bool): New.
+ 	(json::value::set_array_of_string): New.
+ 	(json::value::maybe_get_enum): New.
+ 	(json::value::set_enum): New.
+ 	(json::array::dyn_cast_array): New.
+ 	(json::integer_number::dyn_cast_integer_number): New.
+ 	(object::maybe_get_enum): New.
+ 	(object::set_enum): New.
+ 
+ 2025-10-02  Aurelien Jarno  <aurelien@aurel32.net>
+ 
+ 	PR target/121652
+ 	* config/riscv/riscv.md (round_pattern): special case NaN input
+ 	instead of saving/restoring fflags.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: (scheme_handler::parse_bool_value):
+ 	Convert to...
+ 	(key_handler::parse_bool_value): ...this.
+ 	(scheme_handler::parse_enum_value): Convert to...
+ 	(key_handler::parse_enum_value): ...this.
+ 	(struct text_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class text_scheme_handler.
+ 	(text_scheme_handler::text_scheme_handler): Initialize the new
+ 	fields.
+ 	Add a "dc" param and use it to initialize m_show_color.
+ 	(struct sarif_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class sarif_scheme_handler.
+ 	(sarif_scheme_handler::sarif_scheme_handler): Initialize the new
+ 	fields.
+ 	(struct html_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class html_scheme_handler.
+ 	(html_scheme_handler::html_scheme_handler): Initialize the new
+ 	fields.
+ 	(context::report_unknown_key): Get keys from scheme rather than
+ 	passing them in.  Support client keys.
+ 	(context::parse_and_make_sink): Pass dc to output_factory ctor.
+ 	(output_factory::output_factory): Pass dc to text_scheme_handler.
+ 	(output_factory::get_scheme_handler): Make return non-const.
+ 	(output_factory::make_sink): Move key-handling here, rather than
+ 	in individual sinks.
+ 	(context::handle_kv): New.
+ 	(text_scheme_handler::make_sink): Eliminate key decoding.
+ 	(text_scheme_handler::decode_kv): Convert to...
+ 	(text_scheme_handler::maybe_handle_kv): ...this...
+ 	(text_scheme_handler::get_keys): ...and this.
+ 	(sarif_scheme_handler::make_sink): Eliminate key decoding.
+ 	(sarif_scheme_handler::decode_kv): Convert to...
+ 	(sarif_scheme_handler::maybe_handle_kv): ...this...
+ 	(sarif_scheme_handler::get_keys): ...and this.
+ 	(html_scheme_handler::make_sink): Eliminate key decoding.
+ 	(html_scheme_handler::decode_kv): Convert to...
+ 	(html_scheme_handler::maybe_handle_kv): ...this...
+ 	(html_scheme_handler::get_keys): ...and this.
+ 	(struct selftest::parser_test): Add "client_keys" arg, and update
+ 	for new param ordering.
+ 	(selftest::parser_test::parse_and_make_sink): New.
+ 	(selftest::test_output_arg_parsing): Move auto-fixes to caller.
+ 	(class selftest::test_key_handler): New.
+ 	(selftest::test_client_arg_parsing): New test.
+ 	(selftest::output_spec_cc_tests): Call it.
+ 	* diagnostics/output-spec.h (class key_handler): New.
+ 	(class scheme_handler): Move here from output-spec.cc.
+ 	(context::report_unknown_key): Simplify params.
+ 	(context::handle_kv): Update params.
+ 	(context::context): Add "client_keys" param.
+ 	(context::m_client_keys): New field.
+ 	(struct dc_spec_context): Update order of params.  Add
+ 	"client_keys" param.
+ 	* libgdiagnostics.cc (spec_context::spec_context): Pass nullptr
+ 	for client keys.
+ 	* opts-diagnostic.cc (opt_spec_context::opt_spec_context):
+ 	Likewise.  Update for new param ordering.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Do not allow
+ 	mask reductions.
+ 
+ 2025-10-02  Jan Hubicka  <jh@suse.cz>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* cfghooks.cc (merge_blocks): Fix typo in the previous change.
+ 
+ 2025-10-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122051
+ 	* config/riscv/predicates.md (pmode_reg_or_uimm5_operand): Implement
+ 	directly rather than using vector_length_operand.
+ 
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* aclocal.m4: Regenerated.
+ 	* configure: Likewise.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* tree-ssa-pre.cc (compute_antic_aux): Re-instantiate
+ 	ANTIC_IN value pruning by the old solution.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* tree-ssa-pre.cc (prune_clobbered_mems): Do not prune
+ 	values when the maximum expression set is involved.
+ 
+ 2025-10-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122106
+ 	* config/riscv/bitmanip.md (crc expanders): Add predicate for
+ 	polynomial argument.  Drop unnecessary constraints.
+ 
+ 2025-10-01  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/122066
+ 	* config/m68k/m68k.md (adddi3, subdi3): Strip POST_INC and PRE_DEC
+ 	when generating high part of the destination operand.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_calculate_branch_prob): Improve dump file.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (determine_scale): Break out from ...
+ 	(afdo_adjust_guessed_profile): ... here.
+ 	(scale_bb_profile): New function.
+ 	(afdo_annotate_cfg): Use it.
+ 	* params.opt (auto-profile-bbs): New parmaeter.
+ 	* doc/invoke.texi (auto-profile-bbs): Document.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_unscaled_edge_count): New function based on
+ 	part of ...
+ 	(afdo_set_bb_count): ... this function; use it here.
+ 	(afdo_calculate_branch_prob): Try to determine edge counts using
+ 	phi args and goto locuses.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* Makefile.in (ALL_FDAS): New variable.
+ 	(ALL_HOST_BACKEND_OBJ): Use all.fda instead of cc1plus.fda
+ 	(all.fda): New target
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cfghooks.cc (merge_blocks): Choose more reliable or higher BB
+ 	count.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* predict.cc (unlikely_executed_stmt_p): Remove redundant check.
+ 	(rebuild_frequencies): Also recompute unlikely bbs when profile is
+ 	present or consistent.
+ 
+ 2025-10-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120560
+ 	* vr-values.cc (range_from_loop_direction): Use wi::ge_p rather
+ 	than wi::gt_p.
+ 
+ 2025-10-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122110
+ 	* tree-vect-loop.cc (vectorizable_reduction): Relax restriction
+ 	to mode-precision operations.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc (text_scheme_handler::make_sink): Use
+ 	the value of the "color" to determine if the sink's printer is
+ 	colorized.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Add comments.  Introduce a
+ 	"struct decoded_args" within each scheme_handler subclass,
+ 	and split out per-scheme key-value parsing from each make_sink
+ 	implementation into new per-scheme decode_kv member functions.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Move class scheme_handler out from
+ 	inside class output_factory.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Rename "parsed_arg" to
+ 	"scheme_and_kvs" throughout.  Rename "unparsed_arg" to
+ 	"unparsed_spec" throughout, and make a member of
+ 	output_spec::context rather than passing it around.
+ 	* diagnostics/output-spec.h: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* opts-diagnostic.cc: Likewise.
+ 
+ 2025-09-30  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_functions_b_resolvable_from_a): New
+ 	function.
+ 	(TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A): New define.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Add documentation for
+ 	TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.
+ 	* multiple_target.cc (redirect_to_specific_clone): Add new optimisation
+ 	logic.
+ 	(ipa_target_clone): Remove check for TARGET_HAS_FMV_TARGET_ATTRIBUTE.
+ 	* target.def: Document new hook..
+ 	* attribs.cc: (functions_b_resolvable_from_a) New function.
+ 	* attribs.h: (functions_b_resolvable_from_a) New function.
+ 
+ 2025-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* auto-profile.h (maybe_hot_afdo_count_p): Fix comment typos,
+ 	possiby -> possibly and ture -> true.
+ 	* gimplify.cc (build_asan_poison_call_expr): Change "of a for"
+ 	to "memory of the" in a comment.
+ 	* ipa-devirt.cc (add_type_duplicate): Fix comment typo,
+ 	mangles -> mangled.
+ 	* auto-profile.cc: Fix comment typo, -fauto-profile-inlinig
+ 	-> -fauto-profile-inlining.
+ 	(maybe_hot_afdo_count_p): Fix comment typos, possiby -> possibly
+ 	and ture -> true.
+ 	(function_instance::removed_icall_target): Fix comment typo,
+ 	Reutrn -> Return.
+ 	(function_instance::in_worklist_): Fix comment typo, Ture -> True.
+ 	(function_instance::offline): Fix comment typo, tolevel -> toplevel.
+ 	(function_instance::match): Fix comment typo, craeate_gcov ->
+ 	create_gcov.
+ 	(autofdo_source_profile::offline_external_functions): Fix comment
+ 	typos, tolevel -> toplevel and porfile -> profile.
+ 	(autofdo_source_profile::get_function_instance_by_inline_stack): Fix
+ 	comment typo, chekcing -> checking.
+ 	(struct scale): Fix comment typo, scalle -> scale.
+ 	* gimple.h (currently_expanding_gimple_stmt): Fix comment typo,
+ 	comminucating -> communicating.
+ 	* tree.h (canonical_type_used_p): Fix comment typo, ture -> true.
+ 	* tree-ssa-alias.cc (types_equal_for_same_type_for_tbaa_p): Likewise.
+ 	* ipa-profile.cc (contains_hot_call_p): Likewise.
+ 	* cfgexpand.cc (add_scope_conflicts_2): Fix comment typos,
+ 	Querry -> Query, referendd -> referenced and Querrying -> Querying.
+ 	* ipa-param-manipulation.cc (currently_expanding_gimple_stmt): Fix
+ 	comment typo, comminucating -> communicating.
+ 	* ipa-prop.cc (ipa_cst_ref_desc::refcount): Fix comment typo,
+ 	if -> is.
+ 	* tree-if-conv.cc (version_loop_for_if_conversion): Fix comment typos,
+ 	porfile -> profile and confistency -> consistency.
+ 	* fold-const.cc: Change size_int_wide in comment to size_int as
+ 	size_int_wide doesn't exit for 21 years.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::match): Sanity check
+ 	that gimple PHI has no location.
+ 	* tree-cfg.cc (assign_discriminators): Also remap locations
+ 	of gimple PHI arguments.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* basic-block.h (GCOV_COMPUTE_SCALE): Remove.
+ 	* ipa-profile.cc (ipa_profile_generate_summary): Use
+ 	profile-count scaling.
+ 	* sched-rgn.cc (compute_trg_info): Likewise.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (stmt_loc_used_by_debug_info): New function.
+ 	(autofdo_source_profile::get_count_info): Use it.
+ 	(afdo_set_bb_count): Likewise.
+ 	(afdo_vpt_for_early_inline): Likewise.
+ 
+ 2025-09-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gimple-lower-bitint.cc (bitint_precision_kind): Fix inconsistency in
+ 	results between first and consecutive calls to this function.
+ 
+ 2025-09-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/121970
+ 	* config/i386/i386-options.cc (ix86_target_string): Remove
+ 	store_max.
+ 	(ix86_debug_options): Ditto.
+ 	(ix86_function_specific_print): Ditto.
+ 	(ix86_valid_target_attribute_tree): Ditto.
+ 	(ix86_option_override_internal): Ditto.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Ditto.
+ 	* config/i386/i386-options.h (ix86_target_string): Ditto.
+ 	* config/i386/i386.h (MOVE_MAX): Ditto.
+ 	(STORE_MAX_PIECES): Set by move_max.
+ 	* config/i386/i386.opt: Deprecate mmove-max=.
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX256_STORE_BY_PIECES):
+ 	Removed.
+ 	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.
+ 
+ 2025-09-28  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* pretty-print.cc (decode_utf8_char): Move forward declaration.
+ 	(mingw_utf8_str_to_utf16_str): New function to convert UTF-8 to UTF-16.
+ 	(is_console_handle): New function to detect Windows console handles.
+ 	(write_all): Add UTF-8 to UTF-16 conversion for console output,
+ 	falling back to WriteFile for ASCII strings and regular files.
+ 
  2025-09-27  ChengLulu  <chenglulu@loongson.cn>
  
  	PR target/99217
diff -Nrcpad gcc-16-20250928/gcc/DATESTAMP gcc-16-20251005/gcc/DATESTAMP
*** gcc-16-20250928/gcc/DATESTAMP	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/DATESTAMP	Sun Oct  5 22:32:12 2025
***************
*** 1 ****
! 20250928
--- 1 ----
! 20251005
diff -Nrcpad gcc-16-20250928/gcc/Makefile.in gcc-16-20251005/gcc/Makefile.in
*** gcc-16-20250928/gcc/Makefile.in	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/Makefile.in	Sun Oct  5 22:32:12 2025
*************** OBJS-libcommon-target = $(common_out_obj
*** 1908,1913 ****
--- 1908,1916 ----
  # This lists all host objects for the front ends.
  ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
  
+ # All auto-profile files
+ ALL_FDAS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_FDAS))
+ 
  ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \
    $(OBJS-libcommon-target) main.o c-family/cppspec.o \
    $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
*************** ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OB
*** 1918,1925 ****
  # is likely the most exercised during the build
  ifeq ($(if $(wildcard ../stage_current),$(shell cat \
    ../stage_current)),stageautofeedback)
! $(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=cc1plus.fda
! $(ALL_HOST_BACKEND_OBJS): cc1plus.fda
  endif
  
  # This lists all host object files, whether they are included in this
--- 1921,1928 ----
  # is likely the most exercised during the build
  ifeq ($(if $(wildcard ../stage_current),$(shell cat \
    ../stage_current)),stageautofeedback)
! $(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=all.fda
! $(ALL_HOST_BACKEND_OBJS): all.fda
  endif
  
  # This lists all host object files, whether they are included in this
*************** paranoia.o: $(srcdir)/../contrib/paranoi
*** 4744,4749 ****
--- 4747,4755 ----
  paranoia: paranoia.o real.o $(LIBIBERTY)
  	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
  
+ all.fda: $(ALL_FDAS)
+ 	$(PROFILE_MERGER) $(ALL_FDAS) --output_file all.fda -gcov_version 2
+ 
  # These exist for maintenance purposes.
  
  CTAGS=@CTAGS@
diff -Nrcpad gcc-16-20250928/gcc/aclocal.m4 gcc-16-20251005/gcc/aclocal.m4
*** gcc-16-20250928/gcc/aclocal.m4	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/aclocal.m4	Sun Oct  5 22:32:12 2025
*************** m4_include([../ltversion.m4])
*** 69,74 ****
--- 69,75 ----
  m4_include([../lt~obsolete.m4])
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/codeset.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/dfp.m4])
diff -Nrcpad gcc-16-20250928/gcc/ada/ChangeLog gcc-16-20251005/gcc/ada/ChangeLog
*** gcc-16-20250928/gcc/ada/ChangeLog	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/ChangeLog	Sun Oct  5 22:32:12 2025
***************
*** 1,3 ****
--- 1,85 ----
+ 2025-10-05  Franck Behaghel  <franckbehaghel_gcc@protonmail.com>
+ 
+ 	PR ada/110314
+ 	* sem_ch4.adb (Analyze_Allocator): Add call to New_Copy_Tree.
+ 
+ 2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112446
+ 	* usage.adb (Usage): Add 'z' to the list of 'g' style.
+ 
+ 2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/118343
+ 	* Makefile.rtl (LLVM_BUILD): Delete.
+ 
+ 2025-10-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/64869
+ 	* sem_ch7.adb (Install_Private_Declarations): Also propagate the
+ 	Current_Use_Clause from partial to full view.
+ 	(Uninstall_Declarations): Extend implementation of RM 8.4(8.1/3)
+ 	subclause to all primitive subprograms.
+ 
+ 2025-09-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117517
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Try to
+ 	resolve the reducer first.  Fix casing of error message.
+ 
+ 2025-09-29  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_advice.rst: PolyORB
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst: PolyORB
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: ASIS
+ 	* doc/gnat_rm/obsolescent_features.rst: PolyORB
+ 	* doc/gnat_rm/specialized_needs_annexes.rst: PolyORB
+ 	* doc/gnat_rm/the_gnat_library.rst: PolyORB
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: ASIS
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition): Handle contracts on
+ 	generic formal subprograms like on declarations of access-to-subprogram
+ 	types.
+ 
+ 2025-09-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Attribute_Constrained_Static_Value): Special case
+ 	stand-alone objects for GNATprove.
+ 
+ 2025-09-29  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Full_View): Fix error message.
+ 
+ 2025-09-29  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* aspects.adb (Get_Aspect_Id): Return No_Aspect for Unsigned_Base_Range
+ 	name.
+ 	* sem_prag.adb (Analyze_Pragma): Disable pragma Unsigned_Base_Range.
+ 	* par-ch4.adb (Scan_Apostrophe): Disable attribute Unsigned_Base_Range.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Remove documentation
+ 	of aspect unsigned base range.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-09-29  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Do not Check_Calls in CodePeer_Mode.
+ 	(Check_Calls): Remove CodePeer_Mode special case.
+ 
+ 2025-09-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: update
+ 	rules for pragmas affected by assertion levels.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-09-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Procedure_Call_Policies): Update the check
+ 	between the levels of the argument and the call.
+ 
  2025-09-23  Bob Duff  <duff@adacore.com>
  
  	* exp_ch6.adb (Prepend_Constructor_Procedure_Prologue):
diff -Nrcpad gcc-16-20250928/gcc/ada/Makefile.rtl gcc-16-20251005/gcc/ada/Makefile.rtl
*** gcc-16-20250928/gcc/ada/Makefile.rtl	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/Makefile.rtl	Sun Oct  5 22:32:12 2025
*************** ifndef ADAC
*** 26,37 ****
  ADAC=$(CC)
  endif
  
- ifeq ($(LLVM_CONFIG),)
- LLVM_BUILD := $(shell $(ADAC) -v | grep ^llvm-gcc)
- else
- LLVM_BUILD := llvm-gcc
- endif
- 
  # Objects needed only for tasking
  GNATRTL_TASKING_OBJS= \
    a-dispat$(objext) \
--- 26,31 ----
diff -Nrcpad gcc-16-20250928/gcc/ada/aspects.adb gcc-16-20251005/gcc/ada/aspects.adb
*** gcc-16-20250928/gcc/ada/aspects.adb	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/aspects.adb	Sun Oct  5 22:32:12 2025
*************** package body Aspects is
*** 280,285 ****
--- 280,291 ----
  
     function Get_Aspect_Id (Name : Name_Id) return Aspect_Id is
     begin
+       --  Aspect Unsigned_Base_Range temporarily disabled
+ 
+       if Name = Name_Unsigned_Base_Range then
+          return No_Aspect;
+       end if;
+ 
        return Aspect_Id_Hash_Table.Get (Name);
     end Get_Aspect_Id;
  
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Sun Oct  5 22:32:12 2025
*************** Restricting the position of controlling
*** 581,610 ****
  
  * The result of a function is never a controlling result.
  
- ``Unsigned_Base_Range`` aspect
- ------------------------------
- 
- A new pragma/aspect, ``Unsigned_Base_Range``, is introduced to explicitly
- enforce the use of an unsigned base type for signed integer types.
- RM-3.5.4(9) mandates a symmetric base range for signed integer types. This
- requirement often requires the use of larger data types for arithmetic
- operations, potentially introducing undesirable run-time overhead and
- performance penalties, particularly in embedded systems. For instance,
- on a 64-bit architecture, a 64-bit multiplication can be performed with
- a single hardware instruction, whereas a 128-bit multiplication requires
- multiple instructions and intermediate steps.
- 
- Here is an example of this feature:
- 
- .. code-block:: ada
- 
-   type Uns_64 is range 0 .. 2 ** 64 - 1
-     with Size => 64,
-          Unsigned_Base_Range => True;
- 
- It ensures that arithmetic operations of type ``Uns_64`` are carried
- out using 64 bits.
- 
  Generalized Finalization
  ------------------------
  
--- 581,586 ----
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_advice.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_advice.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_advice.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_advice.rst	Sun Oct  5 22:32:12 2025
*************** RM E.5(28-29): Partition Communication S
*** 1218,1224 ****
    should allow them to block until the corresponding subprogram body
    returns."
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product.
  
    "The ``Write`` operation on a stream of type ``Params_Stream_Type``
    should raise ``Storage_Error`` if it runs out of space trying to
--- 1218,1225 ----
    should allow them to block until the corresponding subprogram body
    returns."
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product (NB! See the note in :ref:`polyORB` regarding the lifetime
! of this product).
  
    "The ``Write`` operation on a stream of type ``Params_Stream_Type``
    should raise ``Storage_Error`` if it runs out of space trying to
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Sun Oct  5 22:32:12 2025
*************** may have been set by a call to ``Ada.Com
*** 377,383 ****
  *
    "The mechanisms for building and running partitions.  See 10.2(24)."
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. See the separate PolyORB user guide for details.
  
  *
    "The details of program execution, including program
--- 377,384 ----
  *
    "The mechanisms for building and running partitions.  See 10.2(24)."
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. **NB!** See the note in :ref:`polyORB` regarding the lifetime
! of this product.
  
  *
    "The details of program execution, including program
*************** See separate section on compilation mode
*** 390,397 ****
    implementation.  See 10.2(28)."
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. See the PolyORB user guide for
! further details.
  
  *
    "The information returned by ``Exception_Message``.  See 11.4.1(10)."
--- 391,397 ----
    implementation.  See 10.2(28)."
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The information returned by ``Exception_Message``.  See 11.4.1(10)."
*************** Unknown.
*** 1185,1211 ****
    programs.  See E(5)."
  
  The PolyORB product provides means creating and executing
! distributed programs. See the PolyORB user guide for further details.
  
  *
    "Any events that can result in a partition becoming
    inaccessible.  See E.1(7)."
  
  See the PolyORB user guide for full details on such events.
  
  *
    "The scheduling policies, treatment of priorities, and management of
    shared resources between partitions in certain cases.  See E.1(11)."
  
  See the PolyORB user guide for full details on these aspects of
! multi-partition execution.
  
  *
    "Whether the execution of the remote subprogram is
    immediately aborted as a result of cancellation.  See E.4(13)."
  
  See the PolyORB user guide for details on the effect of abort in
! a distributed application.
  
  *
    "The range of type System.RPC.Partition_Id.  See E.5(14)."
--- 1185,1213 ----
    programs.  See E(5)."
  
  The PolyORB product provides means creating and executing
! distributed programs. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "Any events that can result in a partition becoming
    inaccessible.  See E.1(7)."
  
  See the PolyORB user guide for full details on such events.
+ **NB!** Consider the note in :ref:`polyORB` regarding the lifetime
+ of this product.
  
  *
    "The scheduling policies, treatment of priorities, and management of
    shared resources between partitions in certain cases.  See E.1(11)."
  
  See the PolyORB user guide for full details on these aspects of
! multi-partition execution. **NB!** Consider the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "Whether the execution of the remote subprogram is
    immediately aborted as a result of cancellation.  See E.4(13)."
  
  See the PolyORB user guide for details on the effect of abort in
! a distributed application.  **NB!** Consider the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The range of type System.RPC.Partition_Id.  See E.5(14)."
*************** System.RPC.Partition_ID'Last is Integer'
*** 1216,1222 ****
    "Implementation-defined interfaces in the PCS.  See E.5(26)."
  
  See the PolyORB user guide for a full description of all
! implementation defined interfaces.
  
  *
    "The values of named numbers in the package
--- 1218,1224 ----
    "Implementation-defined interfaces in the PCS.  See E.5(26)."
  
  See the PolyORB user guide for a full description of all
! implementation defined interfaces.  **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The values of named numbers in the package
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Sun Oct  5 22:32:12 2025
*************** The analyzed pragma is retained in the t
*** 398,406 ****
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools, including ASIS. The use of pragma Annotate does not
! affect the compilation process in any way. This pragma may be used as
! a configuration pragma.
  
  Pragma Assert
  =============
--- 398,405 ----
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools. The use of pragma Annotate does not affect the compilation
! process in any way. This pragma may be used as a configuration pragma.
  
  Pragma Assert
  =============
*************** of Ada from 2005 on. In GNAT, it is impl
*** 466,471 ****
--- 465,474 ----
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Assert_And_Cut
  =====================
  
*************** a subprogram into sections for the purpo
*** 490,495 ****
--- 493,517 ----
  formal verification. The pragma also serves as useful
  documentation.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
+ Pragma Assertion_Level
+ =======================
+ 
+ Syntax::
+ 
+   pragma Assertion_Level (LEVEL_IDENTIFIER
+                           [, depends => DEPENDENCY_DESCRIPTOR]);
+ 
+   DEPENDENCY_DESCRIPTOR ::= LEVEL_IDENTIFIER | LEVEL_IDENTIFIER_LIST
+ 
+   LEVEL_IDENTIFIER_LIST ::= '[' LEVEL_IDENTIFIER {, LEVEL_IDENTIFIER} ']'
+ 
+ For the semantics of this pragma, see the SPARK 2014 Reference Manual,
+ section 11.4.3.
+ 
  Pragma Assertion_Policy
  =======================
  
*************** Syntax::
*** 501,507 ****
        ASSERTION_KIND => POLICY_IDENTIFIER
     {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!   ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND
  
    RM_ASSERTION_KIND ::= Assert                    |
                          Static_Predicate          |
--- 523,529 ----
        ASSERTION_KIND => POLICY_IDENTIFIER
     {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!   ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND | ASSERTION_LEVEL
  
    RM_ASSERTION_KIND ::= Assert                    |
                          Static_Predicate          |
*************** The assertion kinds ``RM_ASSERTION_KIND`
*** 541,546 ****
--- 563,572 ----
  the Ada standard. The assertion kinds ``ID_ASSERTION_KIND``
  are implementation defined additions recognized by the GNAT compiler.
  
+ Additionally the pragma can apply to an assertion level defined by the
+ ``Assertion_Level`` pragma. For more details see the SPARK 2014 Reference
+ Manual, section 11.4.2.
+ 
  The pragma applies in both cases to pragmas and aspects with matching
  names, e.g. ``Pre`` applies to the Pre aspect, and ``Precondition``
  applies to both the ``Precondition`` pragma
*************** but it acts as a useful run-time check t
*** 608,613 ****
--- 634,643 ----
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Assume_No_Invalid_Values
  ===============================
  .. index:: Invalid representations
*************** call, as determined by the corresponding
*** 1297,1302 ****
--- 1327,1336 ----
  and that the consequence for this case should hold when the subprogram
  returns.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Convention_Identifier
  ============================
  .. index:: Conventions, synonyms
*************** pragmas can be enabled either by use of
*** 1505,1510 ****
--- 1539,1548 ----
  or by use of the pragma ``Check_Policy`` with a first argument of
  ``Debug``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Debug_Policy
  ===================
  
*************** Syntax:
*** 1534,1539 ****
--- 1572,1581 ----
  For the semantics of this pragma, see the entry for aspect
  ``Default_Initial_Condition`` in the SPARK 2014 Reference Manual, section 7.3.3.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Default_Scalar_Storage_Order
  ===================================
  .. index:: Default_Scalar_Storage_Order
*************** Syntax:
*** 2922,2927 ****
--- 2964,2973 ----
  For the semantics of this pragma, see the entry for aspect ``Initial_Condition``
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Initialize_Scalars
  =========================
  .. index:: debugging with Initialize_Scalars
*************** invariant pragma for the same entity.
*** 3274,3279 ****
--- 3320,3329 ----
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Keep_Names
  =================
  
*************** may be used to refer to the value of an
*** 3651,3656 ****
--- 3701,3710 ----
  attribute can only be used within the expression of a ``Loop_Invariant``
  pragma. For full details, see documentation of attribute ``Loop_Entry``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Loop_Optimize
  ====================
  
*************** statements.
*** 3753,3758 ****
--- 3807,3816 ----
  The ``Loop_Entry`` attribute may be used within the expressions of the
  ``Loop_Variant`` pragma to refer to values on entry to the loop.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Machine_Attribute
  ========================
  
*************** if there is no separate subprogram decla
*** 4627,4632 ****
--- 4685,4694 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Postcondition
  ====================
  .. index:: Postcondition
*************** use of the pragma identifier ``Check``.
*** 4799,4804 ****
--- 4861,4870 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Post_Class
  =================
  .. index:: Post
*************** aspects, but is prepared to ignore the p
*** 4833,4838 ****
--- 4899,4908 ----
  policy that controls this pragma is ``Post'Class``, not
  ``Post_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Pre
  ==========
  .. index:: Pre
*************** if there is no separate subprogram decla
*** 4857,4862 ****
--- 4927,4936 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Precondition
  ===================
  .. index:: Preconditions
*************** use of the pragma identifier ``Check``.
*** 4917,4922 ****
--- 4991,5000 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Predicate:
  
  Pragma Predicate
*************** fundamentally changed (for example a mem
*** 4977,4982 ****
--- 5055,5064 ----
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Predicate_Failure
  ========================
  
*************** aspects, but is prepared to ignore the p
*** 5074,5079 ****
--- 5156,5165 ----
  policy that controls this pragma is ``Pre'Class``, not
  ``Pre_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Priority_Specific_Dispatching
  ====================================
  
*************** Syntax:
*** 5562,5567 ****
--- 5648,5657 ----
  For the semantics of this pragma, see the entry for aspect ``Refined_Post`` in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Refined_State:
  
  Pragma Refined_State
*************** The ``Subprogram_Variant`` pragma is int
*** 6547,6552 ****
--- 6637,6645 ----
  the implementation-defined ``Subprogram_Variant`` aspect, and shares its
  restrictions and semantics.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
  
  Pragma Subtitle
  ===============
*************** does not permit a string parameter, and
*** 6975,6980 ****
--- 7068,7077 ----
  controlled by the assertion identifier ``Type_Invariant``
  rather than ``Invariant``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Type_Invariant_Class:
  
  Pragma Type_Invariant_Class
*************** aspects, but is prepared to ignore the p
*** 7004,7009 ****
--- 7101,7110 ----
  policy that controls this pragma is ``Type_Invariant'Class``,
  not ``Type_Invariant_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Unchecked_Union
  ======================
  .. index:: Unions in C
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/obsolescent_features.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/obsolescent_features.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/obsolescent_features.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/obsolescent_features.rst	Sun Oct  5 22:32:12 2025
*************** Obsolescent Features
*** 5,13 ****
  ********************
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are preferred ways of achieving
! the same effect. These features are provided solely for historical
! compatibility purposes.
  
  .. _pragma_No_Run_Time:
  
--- 5,23 ----
  ********************
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are other, more appropriate, ways
! of achieving the same effect. These features are provided solely for
! historical compatibility purposes.
! 
! .. _polyORB:
! 
! PolyORB
! ========
! 
! AWS is a deprecated product. It will be baselined with the GNAT Pro
! release 28. After this release, there will be no new versions of this
! product. Contact your sales representative or send a message to
! sales@adacore.com to get recommendations for replacements.
  
  .. _pragma_No_Run_Time:
  
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst	Sun Oct  5 22:32:12 2025
*************** Ada 95, Ada 2005, Ada 2012, and Ada 2022
*** 17,23 ****
  *Distributed Systems (Annex E)*
    Stub generation is fully implemented in the GNAT compiler.  In addition,
    a complete compatible PCS is available as part of ``PolyORB``,
!   a separate product. Note, that PolyORB is a deprecated product and will be eventually replaced with other technologies such as ``RTI``.
  
  
  *Information Systems (Annex F)*
--- 17,23 ----
  *Distributed Systems (Annex E)*
    Stub generation is fully implemented in the GNAT compiler.  In addition,
    a complete compatible PCS is available as part of ``PolyORB``,
!   a separate product. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  
  *Information Systems (Annex F)*
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_rm/the_gnat_library.rst gcc-16-20251005/gcc/ada/doc/gnat_rm/the_gnat_library.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Sun Oct  5 22:32:12 2025
*************** technically an implementation-defined ad
*** 2047,2053 ****
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with ``PolyORB``.
  
  .. _`System.Pool_Global_(s-pooglo.ads)`:
  
--- 2047,2054 ----
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with ``PolyORB``.  **NB!** See the note in :ref:`polyORB` regarding
! the lifetime of this product.
  
  .. _`System.Pool_Global_(s-pooglo.ads)`:
  
diff -Nrcpad gcc-16-20250928/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst gcc-16-20251005/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
*** gcc-16-20250928/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Sun Oct  5 22:32:12 2025
*************** Alphabetical List of All Switches
*** 1937,1949 ****
    Ignore representation clauses. When this switch is used,
    representation clauses are treated as comments. This is useful
    when initially porting code where you want to ignore rep clause
!   problems, and also for compiling foreign code (particularly
!   for use with ASIS). The representation clauses that are ignored
!   are: enumeration_representation_clause, record_representation_clause,
!   and attribute_definition_clause for the following attributes:
!   Address, Alignment, Bit_Order, Component_Size, Machine_Radix,
!   Object_Size, Scalar_Storage_Order, Size, Small, Stream_Size,
!   and Value_Size. Pragma Default_Scalar_Storage_Order is also ignored.
    Note that this option should be used only for compiling -- the
    code is likely to malfunction at run time.
  
--- 1937,1949 ----
    Ignore representation clauses. When this switch is used,
    representation clauses are treated as comments. This is useful
    when initially porting code where you want to ignore rep clause
!   problems, and also for compiling foreign code. The representation
!   clauses that are ignored are: enumeration_representation_clause,
!   record_representation_clause, and attribute_definition_clause for the
!   following attributes: Address, Alignment, Bit_Order, Component_Size,
!   Machine_Radix, Object_Size, Scalar_Storage_Order, Size, Small,
!   Stream_Size, and Value_Size.
!   Pragma Default_Scalar_Storage_Order is also ignored.
    Note that this option should be used only for compiling -- the
    code is likely to malfunction at run time.
  
diff -Nrcpad gcc-16-20250928/gcc/ada/exp_ch6.adb gcc-16-20251005/gcc/ada/exp_ch6.adb
*** gcc-16-20250928/gcc/ada/exp_ch6.adb	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/exp_ch6.adb	Sun Oct  5 22:32:12 2025
*************** package body Exp_Ch6 is
*** 10592,10610 ****
  
                 begin
                    pragma Assert (Check_BIP_Actuals (Call_Node, Subp));
- 
-                   --  Do not attempt to verify the return type in CodePeer_Mode
-                   --  as CodePeer_Mode is missing some expansion code that
-                   --  results in trees that would be considered malformed for
-                   --  GCC but aren't for GNAT2SCIL.
- 
-                   if not CodePeer_Mode then
                      --  Build-in-place function calls return their result by
                      --  reference.
  
!                      pragma Assert (not Is_Build_In_Place_Function (Subp)
!                        or else Returns_By_Ref (Subp));
!                   end if;
                 end;
  
              --  Skip generic bodies
--- 10592,10602 ----
  
                 begin
                    pragma Assert (Check_BIP_Actuals (Call_Node, Subp));
                      --  Build-in-place function calls return their result by
                      --  reference.
  
!                   pragma Assert (not Is_Build_In_Place_Function (Subp)
!                     or else Returns_By_Ref (Subp));
                 end;
  
              --  Skip generic bodies
*************** package body Exp_Ch6 is
*** 10714,10720 ****
  
        pragma Assert (Serious_Errors_Detected = 0);
  
!       Check_Calls (N);
     end Validate_Subprogram_Calls;
  
     --------------
--- 10706,10719 ----
  
        pragma Assert (Serious_Errors_Detected = 0);
  
!       --  Do not attempt to verify the return type in CodePeer_Mode
!       --  as CodePeer_Mode is missing some expansion code that
!       --  results in trees that would be considered malformed for
!       --  GCC but aren't for GNAT2SCIL.
! 
!       if not CodePeer_Mode then
!          Check_Calls (N);
!       end if;
     end Validate_Subprogram_Calls;
  
     --------------
diff -Nrcpad gcc-16-20250928/gcc/ada/exp_util.adb gcc-16-20251005/gcc/ada/exp_util.adb
*** gcc-16-20250928/gcc/ada/exp_util.adb	Sun Sep 28 22:33:01 2025
--- gcc-16-20251005/gcc/ada/exp_util.adb	Sun Oct  5 22:32:12 2025
*************** package body Exp_Util is
*** 638,643 ****
--- 638,660 ----
                 end if;
  
              else
+                --  For GNAT objects with indefinite nominal subtypes will have
+                --  an itype constrained by their initialization expression
+                --  (except for class-wide type). For GNATprove, those objects
+                --  will keep their nominal subtype unconstrained, while
+                --  actually those objects are constrained; see call from
+                --  Analyze_Object_Declaration to Expand_Subtype_From_Expr.
+ 
+                if Ekind (Ent) in E_Constant | E_Variable
+                   and then not Is_Definite_Subtype (Etype (Ent))
+                   and then not Is_Class_Wide_Type (Etype (Ent))
+                   and then No (Renamed_Object (Ent))
+                then
+                   pragma Assert
+                     (GNATprove_Mode
+                      and then Present (Expression (Parent (Ent))));
+                   return True;
+                end if;
  
                 --  If the prefix is not a variable or is aliased, then
                 --  definitely true; if it's a formal parameter without an
diff -Nrcpad gcc-16-20250928/gcc/ada/ghost.adb gcc-16-20251005/gcc/ada/ghost.adb
*** gcc-16-20250928/gcc/ada/ghost.adb	Sun Sep 28 22:33:02 2025
--- gcc-16-20251005/gcc/ada/ghost.adb	Sun Oct  5 22:32:12 2025
*************** package body Ghost is
*** 578,597 ****
                       Id);
                 end if;
  
!                if not Is_Assertion_Level_Dependent (Id_Level, Call_Level) then
!                   Error_Msg_Sloc := Sloc (Ghost_Ref);
  
                    Error_Msg_N (Assertion_Level_Error_Msg, Ghost_Ref);
                    Error_Msg_Name_1 := Chars (Id_Level);
!                   Error_Msg_NE ("\& has assertion level %", Ghost_Ref, Id);
!                   Error_Msg_Name_1 := Chars (Call_Level);
!                   Error_Msg_NE
!                     ("\& is modified # by a procedure with %", Ghost_Ref, Id);
                    Error_Msg_Name_1 := Chars (Call_Level);
!                   Error_Msg_NE
!                     ("\assertion level of & should depend on %",
!                      Ghost_Ref,
!                      Id);
                 end if;
              end Check_Procedure_Call_Policies;
  
--- 578,597 ----
                       Id);
                 end if;
  
!                --  An out or in out mode actual parameter and the subprogram
!                --  shall have matching assertion levels SPARK RM 6.9 (15).
  
+                if Id_Level /= Call_Level then
                    Error_Msg_N (Assertion_Level_Error_Msg, Ghost_Ref);
                    Error_Msg_Name_1 := Chars (Id_Level);
!                   Error_Msg_N ("\& has assertion level %", Ghost_Ref);
                    Error_Msg_Name_1 := Chars (Call_Level);
!                   Error_Msg_Node_2 := Callee;
!                   Error_Msg_N
!                     ("\& is modified by & with %", Ghost_Ref);
!                   Error_Msg_N
!                     ("\the levels of the call and call arguments must match",
!                      Ghost_Ref);
                 end if;
              end Check_Procedure_Call_Policies;
  
diff -Nrcpad gcc-16-20250928/gcc/ada/gnat_rm.texi gcc-16-20251005/gcc/ada/gnat_rm.texi
*** gcc-16-20250928/gcc/ada/gnat_rm.texi	Sun Sep 28 22:33:02 2025
--- gcc-16-20251005/gcc/ada/gnat_rm.texi	Sun Oct  5 22:32:12 2025
***************
*** 19,25 ****
  
  @copying
  @quotation
! GNAT Reference Manual , Sep 23, 2025
  
  AdaCore
  
--- 19,25 ----
  
  @copying
  @quotation
! GNAT Reference Manual , Sep 29, 2025
  
  AdaCore
  
*************** Implementation Defined Pragmas
*** 110,115 ****
--- 110,116 ----
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
+ * Pragma Assertion_Level:: 
  * Pragma Assertion_Policy:: 
  * Pragma Assume:: 
  * Pragma Assume_No_Invalid_Values:: 
*************** Curated Extensions
*** 910,916 ****
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  * First Controlling Parameter:: 
- * Unsigned_Base_Range aspect:: 
  * Generalized Finalization:: 
  
  Deep delta Aggregates
--- 911,916 ----
*************** Security Hardening Features
*** 977,982 ****
--- 977,983 ----
  
  Obsolescent Features
  
+ * PolyORB:: 
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
*************** consideration, the use of these pragmas
*** 1292,1297 ****
--- 1293,1299 ----
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
+ * Pragma Assertion_Level:: 
  * Pragma Assertion_Policy:: 
  * Pragma Assume:: 
  * Pragma Assume_No_Invalid_Values:: 
*************** The analyzed pragma is retained in the t
*** 1875,1883 ****
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools, including ASIS. The use of pragma Annotate does not
! affect the compilation process in any way. This pragma may be used as
! a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2c}
--- 1877,1884 ----
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools. The use of pragma Annotate does not affect the compilation
! process in any way. This pragma may be used as a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2c}
*************** of Ada from 2005 on. In GNAT, it is impl
*** 1945,1951 ****
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
! @node Pragma Assert_And_Cut,Pragma Assertion_Policy,Pragma Assert,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2d}
  @section Pragma Assert_And_Cut
  
--- 1946,1956 ----
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
! This is an assertion kind pragma that can associate a set of its arguments
! with an assertion level. See SPARK 2014 Reference Manual, section
! 11.4.2.
! 
! @node Pragma Assert_And_Cut,Pragma Assertion_Level,Pragma Assert,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2d}
  @section Pragma Assert_And_Cut
  
*************** a subprogram into sections for the purpo
*** 1972,1979 ****
  formal verification. The pragma also serves as useful
  documentation.
  
! @node Pragma Assertion_Policy,Pragma Assume,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2e}
  @section Pragma Assertion_Policy
  
  
--- 1977,2007 ----
  formal verification. The pragma also serves as useful
  documentation.
  
! This is an assertion kind pragma that can associate a set of its arguments
! with an assertion level. See SPARK 2014 Reference Manual, section
! 11.4.2.
! 
! @node Pragma Assertion_Level,Pragma Assertion_Policy,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-level}@anchor{2e}
! @section Pragma Assertion_Level
! 
! 
! Syntax:
! 
! @example
! pragma Assertion_Level (LEVEL_IDENTIFIER
!                         [, depends => DEPENDENCY_DESCRIPTOR]);
! 
! DEPENDENCY_DESCRIPTOR ::= LEVEL_IDENTIFIER | LEVEL_IDENTIFIER_LIST
! 
! LEVEL_IDENTIFIER_LIST ::= '[' LEVEL_IDENTIFIER @{, LEVEL_IDENTIFIER@} ']'
! @end example
! 
! For the semantics of this pragma, see the SPARK 2014 Reference Manual,
! section 11.4.3.
! 
! @node Pragma Assertion_Policy,Pragma Assume,Pragma Assertion_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2f}
  @section Pragma Assertion_Policy
  
  
*************** pragma Assertion_Policy (
*** 1986,1992 ****
      ASSERTION_KIND => POLICY_IDENTIFIER
   @{, ASSERTION_KIND => POLICY_IDENTIFIER@});
  
! ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND
  
  RM_ASSERTION_KIND ::= Assert                    |
                        Static_Predicate          |
--- 2014,2020 ----
      ASSERTION_KIND => POLICY_IDENTIFIER
   @{, ASSERTION_KIND => POLICY_IDENTIFIER@});
  
! ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND | ASSERTION_LEVEL
  
  RM_ASSERTION_KIND ::= Assert                    |
                        Static_Predicate          |
*************** The assertion kinds @code{RM_ASSERTION_K
*** 2026,2031 ****
--- 2054,2063 ----
  the Ada standard. The assertion kinds @code{ID_ASSERTION_KIND}
  are implementation defined additions recognized by the GNAT compiler.
  
+ Additionally the pragma can apply to an assertion level defined by the
+ @code{Assertion_Level} pragma. For more details see the SPARK 2014 Reference
+ Manual, section 11.4.2.
+ 
  The pragma applies in both cases to pragmas and aspects with matching
  names, e.g. @code{Pre} applies to the Pre aspect, and @code{Precondition}
  applies to both the @code{Precondition} pragma
*************** applies to @code{Assert}, @code{Assert_A
*** 2060,2066 ****
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{2f}
  @section Pragma Assume
  
  
--- 2092,2098 ----
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{30}
  @section Pragma Assume
  
  
*************** but it acts as a useful run-time check t
*** 2093,2100 ****
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{30}
  @section Pragma Assume_No_Invalid_Values
  
  
--- 2125,2136 ----
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{31}
  @section Pragma Assume_No_Invalid_Values
  
  
*************** is erroneous so there are no guarantees
*** 2147,2153 ****
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{31}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{32}
  @section Pragma Async_Readers
  
  
--- 2183,2189 ----
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{32}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{33}
  @section Pragma Async_Readers
  
  
*************** For the semantics of this pragma, see th
*** 2161,2167 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{33}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{34}
  @section Pragma Async_Writers
  
  
--- 2197,2203 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{34}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{35}
  @section Pragma Async_Writers
  
  
*************** For the semantics of this pragma, see th
*** 2175,2181 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{35}
  @section Pragma Attribute_Definition
  
  
--- 2211,2217 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{36}
  @section Pragma Attribute_Definition
  
  
*************** code to be written that takes advantage
*** 2201,2207 ****
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{36}
  @section Pragma C_Pass_By_Copy
  
  
--- 2237,2243 ----
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{37}
  @section Pragma C_Pass_By_Copy
  
  
*************** You can also pass records by copy by spe
*** 2245,2251 ****
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{37}
  @section Pragma Check
  
  
--- 2281,2287 ----
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{38}
  @section Pragma Check
  
  
*************** of these identifiers in @code{Assertion_
*** 2284,2290 ****
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{38}
  @section Pragma Check_Float_Overflow
  
  
--- 2320,2326 ----
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{39}
  @section Pragma Check_Float_Overflow
  
  
*************** This mode can also be set by use of the
*** 2340,2346 ****
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{39}
  @section Pragma Check_Name
  
  
--- 2376,2382 ----
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{3a}
  @section Pragma Check_Name
  
  
*************** Check names introduced by this pragma ar
*** 2376,2382 ****
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{3a}
  @section Pragma Check_Policy
  
  
--- 2412,2418 ----
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{3b}
  @section Pragma Check_Policy
  
  
*************** policy setting @code{DISABLE} causes the
*** 2456,2462 ****
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{3b}
  @section Pragma Comment
  
  
--- 2492,2498 ----
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{3c}
  @section Pragma Comment
  
  
*************** anywhere in the main source unit), and i
*** 2475,2481 ****
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3c}
  @section Pragma Common_Object
  
  
--- 2511,2517 ----
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3d}
  @section Pragma Common_Object
  
  
*************** indicating that the necessary attribute
*** 2507,2513 ****
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3d}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3e}
  @section Pragma Compile_Time_Error
  
  
--- 2543,2549 ----
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3e}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3f}
  @section Pragma Compile_Time_Error
  
  
*************** the value given as the second argument.
*** 2534,2540 ****
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{3f}
  @section Pragma Compile_Time_Warning
  
  
--- 2570,2576 ----
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{40}
  @section Pragma Compile_Time_Warning
  
  
*************** for example that it is not fully impleme
*** 2561,2571 ****
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3d,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{40}
  @section Pragma Complete_Representation
  
  
--- 2597,2607 ----
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3e,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{41}
  @section Pragma Complete_Representation
  
  
*************** complete, and that this invariant is mai
*** 2584,2590 ****
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{41}
  @section Pragma Complex_Representation
  
  
--- 2620,2626 ----
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{42}
  @section Pragma Complex_Representation
  
  
*************** records by pointer, and the use of this
*** 2606,2612 ****
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{42}
  @section Pragma Component_Alignment
  
  
--- 2642,2648 ----
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{43}
  @section Pragma Component_Alignment
  
  
*************** pragma @code{Pack}, pragma @code{Compone
*** 2697,2703 ****
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{43}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{44}
  @section Pragma Constant_After_Elaboration
  
  
--- 2733,2739 ----
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{44}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{45}
  @section Pragma Constant_After_Elaboration
  
  
*************** For the semantics of this pragma, see th
*** 2711,2717 ****
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{45}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{46}
  @section Pragma Contract_Cases
  
  
--- 2747,2753 ----
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{46}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{47}
  @section Pragma Contract_Cases
  
  
*************** call, as determined by the corresponding
*** 2795,2802 ****
  and that the consequence for this case should hold when the subprogram
  returns.
  
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{47}
  @section Pragma Convention_Identifier
  
  
--- 2831,2842 ----
  and that the consequence for this case should hold when the subprogram
  returns.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{48}
  @section Pragma Convention_Identifier
  
  
*************** define a convention identifier @code{Lib
*** 2832,2838 ****
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{48}
  @section Pragma CPP_Class
  
  
--- 2872,2878 ----
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{49}
  @section Pragma CPP_Class
  
  
*************** functions (see pragma @code{CPP_Construc
*** 2857,2870 ****
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{4a}
  @section Pragma CPP_Constructor
  
  
--- 2897,2910 ----
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{4b}
  @section Pragma CPP_Constructor
  
  
*************** on the Ada side and the type is implicit
*** 2915,2921 ****
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{49,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
--- 2955,2961 ----
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{4a,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
*************** because the imported C++ constructors al
*** 2924,2930 ****
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{4b}
  @section Pragma CPP_Virtual
  
  
--- 2964,2970 ----
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{4c}
  @section Pragma CPP_Virtual
  
  
*************** purposes. It used to be required to ensu
*** 2937,2946 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4c}
  @section Pragma CPP_Vtable
  
  
--- 2977,2986 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4d}
  @section Pragma CPP_Vtable
  
  
*************** It used to be required to ensure compati
*** 2952,2961 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4d}
  @section Pragma CPU
  
  
--- 2992,3001 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4e}
  @section Pragma CPU
  
  
*************** versions of Ada as an implementation-def
*** 2970,2976 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4e}
  @section Pragma Deadline_Floor
  
  
--- 3010,3016 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4f}
  @section Pragma Deadline_Floor
  
  
*************** deadline inherited by a task when the ta
*** 2985,2991 ****
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{4f}
  @section Pragma Debug
  
  
--- 3025,3031 ----
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{50}
  @section Pragma Debug
  
  
*************** pragmas can be enabled either by use of
*** 3012,3019 ****
  or by use of the pragma @code{Check_Policy} with a first argument of
  @code{Debug}.
  
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{50}
  @section Pragma Debug_Policy
  
  
--- 3052,3063 ----
  or by use of the pragma @code{Check_Policy} with a first argument of
  @code{Debug}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{51}
  @section Pragma Debug_Policy
  
  
*************** with a first argument of @code{Debug}. I
*** 3028,3034 ****
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{51}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{52}
  @section Pragma Default_Initial_Condition
  
  
--- 3072,3078 ----
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{52}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{53}
  @section Pragma Default_Initial_Condition
  
  
*************** pragma Default_Initial_Condition [ (null
*** 3041,3048 ****
  For the semantics of this pragma, see the entry for aspect
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{53}
  @section Pragma Default_Scalar_Storage_Order
  
  
--- 3085,3096 ----
  For the semantics of this pragma, see the entry for aspect
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{54}
  @section Pragma Default_Scalar_Storage_Order
  
  
*************** it may significantly degrade the run-tim
*** 3115,3121 ****
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{54}
  @section Pragma Default_Storage_Pool
  
  
--- 3163,3169 ----
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{55}
  @section Pragma Default_Storage_Pool
  
  
*************** versions of Ada as an implementation-def
*** 3132,3138 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{55}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{56}
  @section Pragma Depends
  
  
--- 3180,3186 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{56}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{57}
  @section Pragma Depends
  
  
*************** For the semantics of this pragma, see th
*** 3165,3171 ****
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{57}
  @section Pragma Detect_Blocking
  
  
--- 3213,3219 ----
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{58}
  @section Pragma Detect_Blocking
  
  
*************** blocking operations within a protected o
*** 3183,3189 ****
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{58}
  @section Pragma Disable_Atomic_Synchronization
  
  
--- 3231,3237 ----
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{59}
  @section Pragma Disable_Atomic_Synchronization
  
  
*************** until the end of the scope. If an @code{
*** 3212,3218 ****
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{59}
  @section Pragma Dispatching_Domain
  
  
--- 3260,3266 ----
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{5a}
  @section Pragma Dispatching_Domain
  
  
*************** versions of Ada as an implementation-def
*** 3227,3233 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5a}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{5b}
  @section Pragma Effective_Reads
  
  
--- 3275,3281 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5b}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{5c}
  @section Pragma Effective_Reads
  
  
*************** For the semantics of this pragma, see th
*** 3241,3247 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{5c}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5d}
  @section Pragma Effective_Writes
  
  
--- 3289,3295 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{5d}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5e}
  @section Pragma Effective_Writes
  
  
*************** For the semantics of this pragma, see th
*** 3255,3261 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5e}
  @section Pragma Elaboration_Checks
  
  
--- 3303,3309 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5f}
  @section Pragma Elaboration_Checks
  
  
*************** effect. If the pragma argument is @code{
*** 3292,3298 ****
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{5f}
  @section Pragma Eliminate
  
  
--- 3340,3346 ----
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{60}
  @section Pragma Eliminate
  
  
*************** pragma Eliminate (Q, Proc,
*** 3459,3465 ****
  @end quotation
  
  @node Pragma Enable_Atomic_Synchronization,Pragma Exceptional_Cases,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{60}
  @section Pragma Enable_Atomic_Synchronization
  
  
--- 3507,3513 ----
  @end quotation
  
  @node Pragma Enable_Atomic_Synchronization,Pragma Exceptional_Cases,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{61}
  @section Pragma Enable_Atomic_Synchronization
  
  
*************** Reenables atomic synchronization; see @c
*** 3475,3481 ****
  for details.
  
  @node Pragma Exceptional_Cases,Pragma Exit_Cases,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exceptional-cases}@anchor{61}
  @section Pragma Exceptional_Cases
  
  
--- 3523,3529 ----
  for details.
  
  @node Pragma Exceptional_Cases,Pragma Exit_Cases,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exceptional-cases}@anchor{62}
  @section Pragma Exceptional_Cases
  
  
*************** For the semantics of this aspect, see th
*** 3495,3501 ****
  6.1.9.
  
  @node Pragma Exit_Cases,Pragma Export_Function,Pragma Exceptional_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exit-cases}@anchor{62}
  @section Pragma Exit_Cases
  
  
--- 3543,3549 ----
  6.1.9.
  
  @node Pragma Exit_Cases,Pragma Export_Function,Pragma Exceptional_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exit-cases}@anchor{63}
  @section Pragma Exit_Cases
  
  
*************** For the semantics of this aspect, see th
*** 3519,3525 ****
  6.1.10.
  
  @node Pragma Export_Function,Pragma Export_Object,Pragma Exit_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{63}
  @section Pragma Export_Function
  
  
--- 3567,3573 ----
  6.1.10.
  
  @node Pragma Export_Function,Pragma Export_Object,Pragma Exit_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{64}
  @section Pragma Export_Function
  
  
*************** string. In this case, no external name i
*** 3591,3597 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{64}
  @section Pragma Export_Object
  
  
--- 3639,3645 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{65}
  @section Pragma Export_Object
  
  
*************** of portability), but it is not required.
*** 3616,3622 ****
  but otherwise ignored by GNAT.
  
  @node Pragma Export_Procedure,Pragma Export_Valued_Procedure,Pragma Export_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{65}
  @section Pragma Export_Procedure
  
  
--- 3664,3670 ----
  but otherwise ignored by GNAT.
  
  @node Pragma Export_Procedure,Pragma Export_Valued_Procedure,Pragma Export_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{66}
  @section Pragma Export_Procedure
  
  
*************** string. In this case, no external name i
*** 3669,3675 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{66}
  @section Pragma Export_Valued_Procedure
  
  
--- 3717,3723 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{67}
  @section Pragma Export_Valued_Procedure
  
  
*************** string. In this case, no external name i
*** 3727,3733 ****
  still allows the specification of parameter mechanisms.
  
  @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{67}
  @section Pragma Extend_System
  
  
--- 3775,3781 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{68}
  @section Pragma Extend_System
  
  
*************** for compiling System units, as explained
*** 3778,3784 ****
  GNAT User’s Guide.
  
  @node Pragma Extensions_Allowed,Pragma Extensions_Visible,Pragma Extend_System,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id13}@anchor{68}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{69}
  @section Pragma Extensions_Allowed
  
  
--- 3826,3832 ----
  GNAT User’s Guide.
  
  @node Pragma Extensions_Allowed,Pragma Extensions_Visible,Pragma Extend_System,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id13}@anchor{69}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{6a}
  @section Pragma Extensions_Allowed
  
  
*************** pragma takes precedence over the @code{-
*** 3799,3812 ****
  If an argument of @code{"On"} is specified, the latest version of the Ada language
  is implemented (currently Ada 2022) and, in addition, a curated set of GNAT
  specific extensions are recognized. (See the list here
! @ref{6a,,here})
  
  An argument of @code{"All_Extensions"} has the same effect except that some extra
  experimental extensions are enabled (See the list here
! @ref{6b,,here})
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6c}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{6d}
  @section Pragma Extensions_Visible
  
  
--- 3847,3860 ----
  If an argument of @code{"On"} is specified, the latest version of the Ada language
  is implemented (currently Ada 2022) and, in addition, a curated set of GNAT
  specific extensions are recognized. (See the list here
! @ref{6b,,here})
  
  An argument of @code{"All_Extensions"} has the same effect except that some extra
  experimental extensions are enabled (See the list here
! @ref{6c,,here})
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6d}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{6e}
  @section Pragma Extensions_Visible
  
  
*************** For the semantics of this pragma, see th
*** 3820,3826 ****
  in the SPARK 2014 Reference Manual, section 6.1.7.
  
  @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Visible,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{6e}
  @section Pragma External
  
  
--- 3868,3874 ----
  in the SPARK 2014 Reference Manual, section 6.1.7.
  
  @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Visible,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{6f}
  @section Pragma External
  
  
*************** used this pragma for exactly the same pu
*** 3841,3847 ****
  @code{Export} before the latter was standardized.
  
  @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{6f}
  @section Pragma External_Name_Casing
  
  
--- 3889,3895 ----
  @code{Export} before the latter was standardized.
  
  @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{70}
  @section Pragma External_Name_Casing
  
  
*************** pragma External_Name_Casing (Uppercase,
*** 3930,3936 ****
  to enforce the upper casing of all external symbols.
  
  @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{70}
  @section Pragma Fast_Math
  
  
--- 3978,3984 ----
  to enforce the upper casing of all external symbols.
  
  @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{71}
  @section Pragma Fast_Math
  
  
*************** under control of the pragma, rather than
*** 3959,3965 ****
  @end table
  
  @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id15}@anchor{71}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{72}
  @section Pragma Favor_Top_Level
  
  
--- 4007,4013 ----
  @end table
  
  @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id15}@anchor{72}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{73}
  @section Pragma Favor_Top_Level
  
  
*************** When this pragma is used, dynamically ge
*** 3978,3984 ****
  targets for nested subprograms. See restriction @code{No_Implicit_Dynamic_Code}.
  
  @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{73}
  @section Pragma Finalize_Storage_Only
  
  
--- 4026,4032 ----
  targets for nested subprograms. See restriction @code{No_Implicit_Dynamic_Code}.
  
  @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{74}
  @section Pragma Finalize_Storage_Only
  
  
*************** name. Note that this pragma does not sup
*** 3998,4004 ****
  heap-allocated objects (see pragma @code{No_Heap_Finalization}).
  
  @node Pragma Float_Representation,Pragma Ghost,Pragma Finalize_Storage_Only,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{74}
  @section Pragma Float_Representation
  
  
--- 4046,4052 ----
  heap-allocated objects (see pragma @code{No_Heap_Finalization}).
  
  @node Pragma Float_Representation,Pragma Ghost,Pragma Finalize_Storage_Only,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{75}
  @section Pragma Float_Representation
  
  
*************** No other value of digits is permitted.
*** 4033,4039 ****
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{75}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{76}
  @section Pragma Ghost
  
  
--- 4081,4087 ----
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{76}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{77}
  @section Pragma Ghost
  
  
*************** For the semantics of this pragma, see th
*** 4047,4053 ****
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{77}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{78}
  @section Pragma Global
  
  
--- 4095,4101 ----
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{78}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{79}
  @section Pragma Global
  
  
*************** For the semantics of this pragma, see th
*** 4072,4078 ****
  SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{79}
  @section Pragma Ident
  
  
--- 4120,4126 ----
  SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{7a}
  @section Pragma Ident
  
  
*************** This pragma is identical in effect to pr
*** 4086,4092 ****
  for compatibility with other Ada compilers providing this pragma.
  
  @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{7a}
  @section Pragma Ignore_Pragma
  
  
--- 4134,4140 ----
  for compatibility with other Ada compilers providing this pragma.
  
  @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{7b}
  @section Pragma Ignore_Pragma
  
  
*************** pragma allows such pragmas to be ignored
*** 4108,4114 ****
  mode, or during porting of legacy code.
  
  @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{7b}
  @section Pragma Implementation_Defined
  
  
--- 4156,4162 ----
  mode, or during porting of legacy code.
  
  @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{7c}
  @section Pragma Implementation_Defined
  
  
*************** for the purpose of implementing the No_I
*** 4135,4141 ****
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{7c}
  @section Pragma Implemented
  
  
--- 4183,4189 ----
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{7d}
  @section Pragma Implemented
  
  
*************** By_Any shares the behavior of By_Entry a
*** 4181,4187 ****
  the target’s overriding subprogram kind.
  
  @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{7d}
  @section Pragma Implicit_Packing
  
  
--- 4229,4235 ----
  the target’s overriding subprogram kind.
  
  @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{7e}
  @section Pragma Implicit_Packing
  
  
*************** sufficient. The use of pragma Implicit_P
*** 4235,4241 ****
  declaration to compile without an explicit pragma Pack.
  
  @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{7e}
  @section Pragma Import_Function
  
  
--- 4283,4289 ----
  declaration to compile without an explicit pragma Pack.
  
  @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{7f}
  @section Pragma Import_Function
  
  
*************** notation.  If the mechanism is not speci
*** 4300,4306 ****
  is used.
  
  @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{7f}
  @section Pragma Import_Object
  
  
--- 4348,4354 ----
  is used.
  
  @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{80}
  @section Pragma Import_Object
  
  
*************** point of view).  @code{size} is syntax c
*** 4326,4332 ****
  GNAT.
  
  @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{80}
  @section Pragma Import_Procedure
  
  
--- 4374,4380 ----
  GNAT.
  
  @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{81}
  @section Pragma Import_Procedure
  
  
*************** applies to a procedure rather than a fun
*** 4366,4372 ****
  @code{Result_Type} and @code{Result_Mechanism} are not permitted.
  
  @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{81}
  @section Pragma Import_Valued_Procedure
  
  
--- 4414,4420 ----
  @code{Result_Type} and @code{Result_Mechanism} are not permitted.
  
  @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{82}
  @section Pragma Import_Valued_Procedure
  
  
*************** pragma Import that specifies the desired
*** 4419,4425 ****
  default convention is Ada, which is almost certainly not what is required.
  
  @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{82}
  @section Pragma Independent
  
  
--- 4467,4473 ----
  default convention is Ada, which is almost certainly not what is required.
  
  @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{83}
  @section Pragma Independent
  
  
*************** constraints on the representation of the
*** 4441,4447 ****
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{83}
  @section Pragma Independent_Components
  
  
--- 4489,4495 ----
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{84}
  @section Pragma Independent_Components
  
  
*************** constraints on the representation of the
*** 4462,4468 ****
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{84}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{85}
  @section Pragma Initial_Condition
  
  
--- 4510,4516 ----
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{85}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{86}
  @section Pragma Initial_Condition
  
  
*************** pragma Initial_Condition (boolean_EXPRES
*** 4475,4482 ****
  For the semantics of this pragma, see the entry for aspect @code{Initial_Condition}
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{86}
  @section Pragma Initialize_Scalars
  
  
--- 4523,4534 ----
  For the semantics of this pragma, see the entry for aspect @code{Initial_Condition}
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{87}
  @section Pragma Initialize_Scalars
  
  
*************** good idea to turn on stack checking (see
*** 4585,4591 ****
  GNAT User’s Guide) when using this pragma.
  
  @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id19}@anchor{87}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{88}
  @section Pragma Initializes
  
  
--- 4637,4643 ----
  GNAT User’s Guide) when using this pragma.
  
  @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id19}@anchor{88}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{89}
  @section Pragma Initializes
  
  
*************** For the semantics of this pragma, see th
*** 4612,4618 ****
  SPARK 2014 Reference Manual, section 7.1.5.
  
  @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id20}@anchor{89}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{8a}
  @section Pragma Inline_Always
  
  
--- 4664,4670 ----
  SPARK 2014 Reference Manual, section 7.1.5.
  
  @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id20}@anchor{8a}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{8b}
  @section Pragma Inline_Always
  
  
*************** apply this pragma to a primitive operati
*** 4631,4637 ****
  restrictions, the compiler is allowed to remove the out-of-line body of @code{NAME}.
  
  @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{8b}
  @section Pragma Inline_Generic
  
  
--- 4683,4689 ----
  restrictions, the compiler is allowed to remove the out-of-line body of @code{NAME}.
  
  @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{8c}
  @section Pragma Inline_Generic
  
  
*************** than to check that the given names are a
*** 4649,4655 ****
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{8c}
  @section Pragma Interface
  
  
--- 4701,4707 ----
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{8d}
  @section Pragma Interface
  
  
*************** maintaining Ada 83/Ada 95 compatibility
*** 4676,4682 ****
  Ada 83 compilers.
  
  @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{8d}
  @section Pragma Interface_Name
  
  
--- 4728,4734 ----
  Ada 83 compilers.
  
  @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{8e}
  @section Pragma Interface_Name
  
  
*************** for an interfaced subprogram, and is pro
*** 4695,4701 ****
  least one of @code{External_Name} or @code{Link_Name}.
  
  @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{8e}
  @section Pragma Interrupt_Handler
  
  
--- 4747,4753 ----
  least one of @code{External_Name} or @code{Link_Name}.
  
  @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{8f}
  @section Pragma Interrupt_Handler
  
  
*************** This program unit pragma is supported fo
*** 4709,4715 ****
  as described in Annex C of the Ada Reference Manual.
  
  @node Pragma Interrupt_State,Pragma Interrupts_System_By_Default,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{8f}
  @section Pragma Interrupt_State
  
  
--- 4761,4767 ----
  as described in Annex C of the Ada Reference Manual.
  
  @node Pragma Interrupt_State,Pragma Interrupts_System_By_Default,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{90}
  @section Pragma Interrupt_State
  
  
*************** with an application’s runtime behavior
*** 4795,4801 ****
  and in the case of the signal used to implement the @code{abort} statement.
  
  @node Pragma Interrupts_System_By_Default,Pragma Invariant,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupts-system-by-default}@anchor{90}
  @section Pragma Interrupts_System_By_Default
  
  
--- 4847,4853 ----
  and in the case of the signal used to implement the @code{abort} statement.
  
  @node Pragma Interrupts_System_By_Default,Pragma Invariant,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupts-system-by-default}@anchor{91}
  @section Pragma Interrupts_System_By_Default
  
  
*************** Default all interrupts to the System sta
*** 4809,4815 ****
  @code{Interrupt_State}. This is a configuration pragma.
  
  @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupts_System_By_Default,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{91}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{92}
  @section Pragma Invariant
  
  
--- 4861,4867 ----
  @code{Interrupt_State}. This is a configuration pragma.
  
  @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupts_System_By_Default,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{92}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{93}
  @section Pragma Invariant
  
  
*************** invariant pragma for the same entity.
*** 4847,4854 ****
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{93}
  @section Pragma Keep_Names
  
  
--- 4899,4910 ----
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{94}
  @section Pragma Keep_Names
  
  
*************** use a @code{Discard_Names} pragma in the
*** 4868,4874 ****
  want to retain the names for specific enumeration types.
  
  @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{94}
  @section Pragma License
  
  
--- 4924,4930 ----
  want to retain the names for specific enumeration types.
  
  @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{95}
  @section Pragma License
  
  
*************** GPL, but no warning for @code{GNAT.Socke
*** 4963,4969 ****
  run time, and is therefore licensed under the modified GPL.
  
  @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{95}
  @section Pragma Link_With
  
  
--- 5019,5025 ----
  run time, and is therefore licensed under the modified GPL.
  
  @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{96}
  @section Pragma Link_With
  
  
*************** separate arguments to the linker. In add
*** 4987,4993 ****
  multiple arguments, with the same effect as successive pragmas.
  
  @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{96}
  @section Pragma Linker_Alias
  
  
--- 5043,5049 ----
  multiple arguments, with the same effect as successive pragmas.
  
  @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{97}
  @section Pragma Linker_Alias
  
  
*************** end p;
*** 5028,5034 ****
  @end example
  
  @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{97}
  @section Pragma Linker_Constructor
  
  
--- 5084,5090 ----
  @end example
  
  @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{98}
  @section Pragma Linker_Constructor
  
  
*************** listed above. Where possible, the use of
*** 5058,5064 ****
  to the use of this pragma.
  
  @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{98}
  @section Pragma Linker_Destructor
  
  
--- 5114,5120 ----
  to the use of this pragma.
  
  @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{99}
  @section Pragma Linker_Destructor
  
  
*************** See @code{pragma Linker_Constructor} for
*** 5081,5087 ****
  because of these specific contexts.
  
  @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{99}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{9a}
  @section Pragma Linker_Section
  
  
--- 5137,5143 ----
  because of these specific contexts.
  
  @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{9a}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{9b}
  @section Pragma Linker_Section
  
  
*************** end IO_Card;
*** 5155,5161 ****
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{9b}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{9c}
  @section Pragma Lock_Free
  
  
--- 5211,5217 ----
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{9c}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{9d}
  @section Pragma Lock_Free
  
  
*************** Ada RM D.3) are not performed when a pro
*** 5218,5224 ****
  unit is executed.
  
  @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{9d}
  @section Pragma Loop_Invariant
  
  
--- 5274,5280 ----
  unit is executed.
  
  @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{9e}
  @section Pragma Loop_Invariant
  
  
*************** may be used to refer to the value of an
*** 5250,5257 ****
  attribute can only be used within the expression of a @code{Loop_Invariant}
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{9e}
  @section Pragma Loop_Optimize
  
  
--- 5306,5317 ----
  attribute can only be used within the expression of a @code{Loop_Invariant}
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{9f}
  @section Pragma Loop_Optimize
  
  
*************** compiler in order to enable the relevant
*** 5313,5319 ****
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{9f}
  @section Pragma Loop_Variant
  
  
--- 5373,5379 ----
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{a0}
  @section Pragma Loop_Variant
  
  
*************** statements.
*** 5359,5366 ****
  The @code{Loop_Entry} attribute may be used within the expressions of the
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{a0}
  @section Pragma Machine_Attribute
  
  
--- 5419,5430 ----
  The @code{Loop_Entry} attribute may be used within the expressions of the
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{a1}
  @section Pragma Machine_Attribute
  
  
*************** which may make this pragma unusable for
*** 5386,5392 ****
  For further information see @cite{GNU Compiler Collection (GCC) Internals}.
  
  @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{a1}
  @section Pragma Main
  
  
--- 5450,5456 ----
  For further information see @cite{GNU Compiler Collection (GCC) Internals}.
  
  @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{a2}
  @section Pragma Main
  
  
*************** This pragma is provided for compatibilit
*** 5406,5412 ****
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{a2}
  @section Pragma Main_Storage
  
  
--- 5470,5476 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{a3}
  @section Pragma Main_Storage
  
  
*************** This pragma is provided for compatibilit
*** 5425,5431 ****
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a3}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{a4}
  @section Pragma Max_Queue_Length
  
  
--- 5489,5495 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a4}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{a5}
  @section Pragma Max_Queue_Length
  
  
*************** entry.
*** 5443,5449 ****
  A value of -1 represents no additional restriction on queue length.
  
  @node Pragma No_Body,Pragma No_Caching,Pragma Max_Queue_Length,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{a5}
  @section Pragma No_Body
  
  
--- 5507,5513 ----
  A value of -1 represents no additional restriction on queue length.
  
  @node Pragma No_Body,Pragma No_Caching,Pragma Max_Queue_Length,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{a6}
  @section Pragma No_Body
  
  
*************** dummy body with a No_Body pragma ensures
*** 5466,5472 ****
  earlier versions of the package body.
  
  @node Pragma No_Caching,Pragma No_Component_Reordering,Pragma No_Body,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{a6}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{a7}
  @section Pragma No_Caching
  
  
--- 5530,5536 ----
  earlier versions of the package body.
  
  @node Pragma No_Caching,Pragma No_Component_Reordering,Pragma No_Body,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{a7}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{a8}
  @section Pragma No_Caching
  
  
*************** For the semantics of this pragma, see th
*** 5480,5486 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma No_Component_Reordering,Pragma No_Elaboration_Code_All,Pragma No_Caching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-component-reordering}@anchor{a8}
  @section Pragma No_Component_Reordering
  
  
--- 5544,5550 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma No_Component_Reordering,Pragma No_Elaboration_Code_All,Pragma No_Caching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-component-reordering}@anchor{a9}
  @section Pragma No_Component_Reordering
  
  
*************** declared in units to which the pragma ap
*** 5499,5505 ****
  that this pragma be used consistently within a partition.
  
  @node Pragma No_Elaboration_Code_All,Pragma No_Heap_Finalization,Pragma No_Component_Reordering,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{a9}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{aa}
  @section Pragma No_Elaboration_Code_All
  
  
--- 5563,5569 ----
  that this pragma be used consistently within a partition.
  
  @node Pragma No_Elaboration_Code_All,Pragma No_Heap_Finalization,Pragma No_Component_Reordering,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{aa}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{ab}
  @section Pragma No_Elaboration_Code_All
  
  
*************** current unit, it must also have the @cit
*** 5518,5524 ****
  It may be applied to package or subprogram specs or their generic versions.
  
  @node Pragma No_Heap_Finalization,Pragma No_Inline,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-heap-finalization}@anchor{ab}
  @section Pragma No_Heap_Finalization
  
  
--- 5582,5588 ----
  It may be applied to package or subprogram specs or their generic versions.
  
  @node Pragma No_Heap_Finalization,Pragma No_Inline,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-heap-finalization}@anchor{ac}
  @section Pragma No_Heap_Finalization
  
  
*************** lose its @code{No_Heap_Finalization} pra
*** 5550,5556 ****
  appear at the library level.
  
  @node Pragma No_Inline,Pragma No_Raise,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{ac}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{ad}
  @section Pragma No_Inline
  
  
--- 5614,5620 ----
  appear at the library level.
  
  @node Pragma No_Inline,Pragma No_Raise,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{ad}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{ae}
  @section Pragma No_Inline
  
  
*************** in particular it is not subject to the u
*** 5568,5574 ****
  pragma @code{Inline_Always} for the same @code{NAME}.
  
  @node Pragma No_Raise,Pragma No_Return,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{ae}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-raise}@anchor{af}
  @section Pragma No_Raise
  
  
--- 5632,5638 ----
  pragma @code{Inline_Always} for the same @code{NAME}.
  
  @node Pragma No_Raise,Pragma No_Return,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{af}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-raise}@anchor{b0}
  @section Pragma No_Raise
  
  
*************** An implementation-defined check named @c
*** 5585,5591 ****
  pragma, and @cite{Program_Error} is raised upon its failure (see RM 11.5(19/5)).
  
  @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Raise,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{b0}
  @section Pragma No_Return
  
  
--- 5649,5655 ----
  pragma, and @cite{Program_Error} is raised upon its failure (see RM 11.5(19/5)).
  
  @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Raise,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{b1}
  @section Pragma No_Return
  
  
*************** available in all earlier versions of Ada
*** 5612,5618 ****
  pragma.
  
  @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Return,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{b1}
  @section Pragma No_Strict_Aliasing
  
  
--- 5676,5682 ----
  pragma.
  
  @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Return,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{b2}
  @section Pragma No_Strict_Aliasing
  
  
*************** in the @cite{GNAT User’s Guide}.
*** 5634,5640 ****
  This pragma currently has no effects on access to unconstrained array types.
  
  @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b2}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{b3}
  @section Pragma No_Tagged_Streams
  
  
--- 5698,5704 ----
  This pragma currently has no effects on access to unconstrained array types.
  
  @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b3}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{b4}
  @section Pragma No_Tagged_Streams
  
  
*************** with empty strings. This is useful to av
*** 5673,5679 ****
  level but has a negative impact on the debuggability of tagged types.
  
  @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{b4}
  @section Pragma Normalize_Scalars
  
  
--- 5737,5743 ----
  level but has a negative impact on the debuggability of tagged types.
  
  @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{b5}
  @section Pragma Normalize_Scalars
  
  
*************** will always generate an invalid value if
*** 5755,5761 ****
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{b5}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{b6}
  @section Pragma Obsolescent
  
  
--- 5819,5825 ----
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{b6}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{b7}
  @section Pragma Obsolescent
  
  
*************** So if you specify @code{Entity =>} for t
*** 5851,5857 ****
  argument is present, it must be preceded by @code{Message =>}.
  
  @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{b7}
  @section Pragma Optimize_Alignment
  
  
--- 5915,5921 ----
  argument is present, it must be preceded by @code{Message =>}.
  
  @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{b8}
  @section Pragma Optimize_Alignment
  
  
*************** latter are compiled by default in pragma
*** 5937,5943 ****
  pragma appears at the start of the file.
  
  @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{b8}
  @section Pragma Ordered
  
  
--- 6001,6007 ----
  pragma appears at the start of the file.
  
  @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{b9}
  @section Pragma Ordered
  
  
*************** For additional information please refer
*** 6029,6035 ****
  `-gnatw.u' switch in the GNAT User’s Guide.
  
  @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{b9}
  @section Pragma Overflow_Mode
  
  
--- 6093,6099 ----
  `-gnatw.u' switch in the GNAT User’s Guide.
  
  @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{ba}
  @section Pragma Overflow_Mode
  
  
*************** The pragma @code{Unsuppress (Overflow_Ch
*** 6068,6074 ****
  overflow checking, but does not affect the overflow mode.
  
  @node Pragma Overriding_Renamings,Pragma Part_Of,Pragma Overflow_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{ba}
  @section Pragma Overriding_Renamings
  
  
--- 6132,6138 ----
  overflow checking, but does not affect the overflow mode.
  
  @node Pragma Overriding_Renamings,Pragma Part_Of,Pragma Overflow_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{bb}
  @section Pragma Overriding_Renamings
  
  
*************** RM 8.3 (15) stipulates that an overridde
*** 6103,6109 ****
  declaration of the overriding operation.
  
  @node Pragma Part_Of,Pragma Partition_Elaboration_Policy,Pragma Overriding_Renamings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{bb}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{bc}
  @section Pragma Part_Of
  
  
--- 6167,6173 ----
  declaration of the overriding operation.
  
  @node Pragma Part_Of,Pragma Partition_Elaboration_Policy,Pragma Overriding_Renamings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{bc}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{bd}
  @section Pragma Part_Of
  
  
*************** For the semantics of this pragma, see th
*** 6119,6125 ****
  SPARK 2014 Reference Manual, section 7.2.6.
  
  @node Pragma Partition_Elaboration_Policy,Pragma Passive,Pragma Part_Of,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{bd}
  @section Pragma Partition_Elaboration_Policy
  
  
--- 6183,6189 ----
  SPARK 2014 Reference Manual, section 7.2.6.
  
  @node Pragma Partition_Elaboration_Policy,Pragma Passive,Pragma Part_Of,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{be}
  @section Pragma Partition_Elaboration_Policy
  
  
*************** versions of Ada as an implementation-def
*** 6136,6142 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Passive,Pragma Persistent_BSS,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{be}
  @section Pragma Passive
  
  
--- 6200,6206 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Passive,Pragma Persistent_BSS,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{bf}
  @section Pragma Passive
  
  
*************** For more information on the subject of p
*** 6160,6166 ****
  ‘Passive Task Optimization’ in the GNAT Users Guide.
  
  @node Pragma Persistent_BSS,Pragma Post,Pragma Passive,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{bf}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{c0}
  @section Pragma Persistent_BSS
  
  
--- 6224,6230 ----
  ‘Passive Task Optimization’ in the GNAT Users Guide.
  
  @node Pragma Persistent_BSS,Pragma Post,Pragma Passive,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{c0}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{c1}
  @section Pragma Persistent_BSS
  
  
*************** If this pragma is used on a target where
*** 6191,6197 ****
  then the pragma will be ignored. See also @code{pragma Linker_Section}.
  
  @node Pragma Post,Pragma Postcondition,Pragma Persistent_BSS,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{c1}
  @section Pragma Post
  
  
--- 6255,6261 ----
  then the pragma will be ignored. See also @code{pragma Linker_Section}.
  
  @node Pragma Post,Pragma Postcondition,Pragma Persistent_BSS,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{c2}
  @section Pragma Post
  
  
*************** if there is no separate subprogram decla
*** 6215,6222 ****
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{c2}
  @section Pragma Postcondition
  
  
--- 6279,6290 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{c3}
  @section Pragma Postcondition
  
  
*************** use of the pragma identifier @code{Check
*** 6380,6387 ****
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{c3}
  @section Pragma Post_Class
  
  
--- 6448,6459 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{c4}
  @section Pragma Post_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 6415,6422 ****
  policy that controls this pragma is @code{Post'Class}, not
  @code{Post_Class}.
  
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c4}
  @section Pragma Pre
  
  
--- 6487,6498 ----
  policy that controls this pragma is @code{Post'Class}, not
  @code{Post_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c5}
  @section Pragma Pre
  
  
*************** if there is no separate subprogram decla
*** 6440,6447 ****
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c5}
  @section Pragma Precondition
  
  
--- 6516,6527 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c6}
  @section Pragma Precondition
  
  
*************** use of the pragma identifier @code{Check
*** 6499,6506 ****
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{c6}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c7}
  @section Pragma Predicate
  
  
--- 6579,6590 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{c7}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c8}
  @section Pragma Predicate
  
  
*************** fundamentally changed (for example a mem
*** 6553,6560 ****
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{c8}
  @section Pragma Predicate_Failure
  
  
--- 6637,6648 ----
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{c9}
  @section Pragma Predicate_Failure
  
  
*************** the language-defined
*** 6571,6577 ****
  @code{Predicate_Failure} aspect, and shares its restrictions and semantics.
  
  @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{c9}
  @section Pragma Preelaborable_Initialization
  
  
--- 6659,6665 ----
  @code{Predicate_Failure} aspect, and shares its restrictions and semantics.
  
  @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{ca}
  @section Pragma Preelaborable_Initialization
  
  
*************** versions of Ada as an implementation-def
*** 6586,6592 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{ca}
  @section Pragma Prefix_Exception_Messages
  
  
--- 6674,6680 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{cb}
  @section Pragma Prefix_Exception_Messages
  
  
*************** prefixing in this case, you can always c
*** 6617,6623 ****
  @code{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually.
  
  @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{cb}
  @section Pragma Pre_Class
  
  
--- 6705,6711 ----
  @code{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually.
  
  @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{cc}
  @section Pragma Pre_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 6651,6658 ****
  policy that controls this pragma is @code{Pre'Class}, not
  @code{Pre_Class}.
  
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{cc}
  @section Pragma Priority_Specific_Dispatching
  
  
--- 6739,6750 ----
  policy that controls this pragma is @code{Pre'Class}, not
  @code{Pre_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{cd}
  @section Pragma Priority_Specific_Dispatching
  
  
*************** versions of Ada as an implementation-def
*** 6676,6682 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{cd}
  @section Pragma Profile
  
  
--- 6768,6774 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{ce}
  @section Pragma Profile
  
  
*************** conforming Ada constructs.  The profile
*** 6955,6961 ****
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Program_Exit,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{ce}
  @section Pragma Profile_Warnings
  
  
--- 7047,7053 ----
  @end itemize
  
  @node Pragma Profile_Warnings,Pragma Program_Exit,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{cf}
  @section Pragma Profile_Warnings
  
  
*************** violations of the profile generate warni
*** 6973,6979 ****
  of error messages.
  
  @node Pragma Program_Exit,Pragma Propagate_Exceptions,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{cf}@anchor{gnat_rm/implementation_defined_pragmas pragma-program-exit}@anchor{d0}
  @section Pragma Program_Exit
  
  
--- 7065,7071 ----
  of error messages.
  
  @node Pragma Program_Exit,Pragma Propagate_Exceptions,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d0}@anchor{gnat_rm/implementation_defined_pragmas pragma-program-exit}@anchor{d1}
  @section Pragma Program_Exit
  
  
*************** For the semantics of this pragma, see th
*** 6987,6993 ****
  in the SPARK 2014 Reference Manual, section 6.1.10.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Program_Exit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{d1}
  @section Pragma Propagate_Exceptions
  
  
--- 7079,7085 ----
  in the SPARK 2014 Reference Manual, section 6.1.10.
  
  @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Program_Exit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{d2}
  @section Pragma Propagate_Exceptions
  
  
*************** purposes. It used to be used in connecti
*** 7006,7012 ****
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{d2}
  @section Pragma Provide_Shift_Operators
  
  
--- 7098,7104 ----
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{d3}
  @section Pragma Provide_Shift_Operators
  
  
*************** including the function declarations for
*** 7026,7032 ****
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{d3}
  @section Pragma Psect_Object
  
  
--- 7118,7124 ----
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{d4}
  @section Pragma Psect_Object
  
  
*************** EXTERNAL_SYMBOL ::=
*** 7046,7052 ****
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d4}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d5}
  @section Pragma Pure_Function
  
  
--- 7138,7144 ----
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d5}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d6}
  @section Pragma Pure_Function
  
  
*************** unit is not a Pure unit in the categoriz
*** 7108,7114 ****
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d6}
  @section Pragma Rational
  
  
--- 7200,7206 ----
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d7}
  @section Pragma Rational
  
  
*************** pragma Profile (Rational);
*** 7126,7132 ****
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d7}
  @section Pragma Ravenscar
  
  
--- 7218,7224 ----
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d8}
  @section Pragma Ravenscar
  
  
*************** pragma Profile (Ravenscar);
*** 7146,7152 ****
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d8}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{d9}
  @section Pragma Refined_Depends
  
  
--- 7238,7244 ----
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d9}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{da}
  @section Pragma Refined_Depends
  
  
*************** For the semantics of this pragma, see th
*** 7179,7185 ****
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{da}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{db}
  @section Pragma Refined_Global
  
  
--- 7271,7277 ----
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{dc}
  @section Pragma Refined_Global
  
  
*************** For the semantics of this pragma, see th
*** 7204,7210 ****
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{dd}
  @section Pragma Refined_Post
  
  
--- 7296,7302 ----
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dd}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{de}
  @section Pragma Refined_Post
  
  
*************** pragma Refined_Post (boolean_EXPRESSION)
*** 7217,7224 ****
  For the semantics of this pragma, see the entry for aspect @code{Refined_Post} in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{de}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{df}
  @section Pragma Refined_State
  
  
--- 7309,7320 ----
  For the semantics of this pragma, see the entry for aspect @code{Refined_Post} in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{e0}
  @section Pragma Refined_State
  
  
*************** For the semantics of this pragma, see th
*** 7244,7250 ****
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{e0}
  @section Pragma Relative_Deadline
  
  
--- 7340,7346 ----
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{e1}
  @section Pragma Relative_Deadline
  
  
*************** versions of Ada as an implementation-def
*** 7259,7265 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e1}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e2}
  @section Pragma Remote_Access_Type
  
  
--- 7355,7361 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e2}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e3}
  @section Pragma Remote_Access_Type
  
  
*************** pertaining to remote access to class-wid
*** 7285,7291 ****
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{e3}
  @section Pragma Rename_Pragma
  
  
--- 7381,7387 ----
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{e4}
  @section Pragma Rename_Pragma
  
  
*************** Pragma Inline_Only will not necessarily
*** 7324,7330 ****
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{e4}
  @section Pragma Restricted_Run_Time
  
  
--- 7420,7426 ----
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{e5}
  @section Pragma Restricted_Run_Time
  
  
*************** which is the preferred method of setting
*** 7345,7351 ****
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e5}
  @section Pragma Restriction_Warnings
  
  
--- 7441,7447 ----
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e6}
  @section Pragma Restriction_Warnings
  
  
*************** generating a warning, but any other use
*** 7383,7389 ****
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e6}
  @section Pragma Reviewable
  
  
--- 7479,7485 ----
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e7}
  @section Pragma Reviewable
  
  
*************** comprehensive messages identifying possi
*** 7487,7493 ****
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e7}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e8}
  @section Pragma Secondary_Stack_Size
  
  
--- 7583,7589 ----
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e9}
  @section Pragma Secondary_Stack_Size
  
  
*************** Note the pragma cannot appear when the r
*** 7523,7529 ****
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{e9}
  @section Pragma Share_Generic
  
  
--- 7619,7625 ----
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{ea}
  @section Pragma Share_Generic
  
  
*************** than to check that the given names are a
*** 7541,7547 ****
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{ea}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{eb}
  @section Pragma Shared
  
  
--- 7637,7643 ----
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{eb}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{ec}
  @section Pragma Shared
  
  
*************** This pragma is provided for compatibilit
*** 7549,7555 ****
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{ec}
  @section Pragma Short_Circuit_And_Or
  
  
--- 7645,7651 ----
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{ed}
  @section Pragma Short_Circuit_And_Or
  
  
*************** See also the pragma @code{Unevaluated_Us
*** 7588,7594 ****
  with @code{Short_Circuit_And_Or}.
  
  @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{ed}
  @section Pragma Short_Descriptors
  
  
--- 7684,7690 ----
  with @code{Short_Circuit_And_Or}.
  
  @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{ee}
  @section Pragma Short_Descriptors
  
  
*************** This pragma is provided for compatibilit
*** 7602,7608 ****
  is recognized but ignored by all current versions of GNAT.
  
  @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ee}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{ef}
  @section Pragma Side_Effects
  
  
--- 7698,7704 ----
  is recognized but ignored by all current versions of GNAT.
  
  @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ef}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{f0}
  @section Pragma Side_Effects
  
  
*************** For the semantics of this pragma, see th
*** 7616,7622 ****
  @code{Side_Effects} in the SPARK Reference Manual, section 6.1.12.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f0}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{f1}
  @section Pragma Simple_Storage_Pool_Type
  
  
--- 7712,7718 ----
  @code{Side_Effects} in the SPARK Reference Manual, section 6.1.12.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f1}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{f2}
  @section Pragma Simple_Storage_Pool_Type
  
  
*************** storage-management discipline).
*** 7670,7676 ****
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f2,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
--- 7766,7772 ----
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f3,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
*************** type Acc is access My_Data_Type;
*** 7680,7690 ****
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f2,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f3}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f4}
  @section Pragma Source_File_Name
  
  
--- 7776,7786 ----
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f3,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f4}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f5}
  @section Pragma Source_File_Name
  
  
*************** aware of these pragmas, and so other too
*** 7776,7795 ****
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{f5,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{f6}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f5}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{f4,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
--- 7872,7891 ----
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{f6,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{f7}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f6}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{f5,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
*************** Source_File_Name or Source_File_Name_Pro
*** 7801,7807 ****
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f7}
  @section Pragma Source_Reference
  
  
--- 7897,7903 ----
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f8}
  @section Pragma Source_Reference
  
  
*************** string expression other than a string li
*** 7825,7831 ****
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{f8}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{f9}
  @section Pragma SPARK_Mode
  
  
--- 7921,7927 ----
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{f9}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{fa}
  @section Pragma SPARK_Mode
  
  
*************** SPARK_Mode (@code{Off}), then that pragm
*** 7907,7913 ****
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{fa}
  @section Pragma Static_Elaboration_Desired
  
  
--- 8003,8009 ----
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{fb}
  @section Pragma Static_Elaboration_Desired
  
  
*************** construction of larger aggregates with s
*** 7931,7937 ****
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{fb}
  @section Pragma Stream_Convert
  
  
--- 8027,8033 ----
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{fc}
  @section Pragma Stream_Convert
  
  
*************** the pragma is silently ignored, and the
*** 8008,8014 ****
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subprogram_Variant,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{fc}
  @section Pragma Style_Checks
  
  
--- 8104,8110 ----
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subprogram_Variant,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{fd}
  @section Pragma Style_Checks
  
  
*************** Rf2 : Integer := ARG;      -- OK, no err
*** 8154,8160 ****
  @end example
  
  @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fd}
  @section Pragma Subprogram_Variant
  
  
--- 8250,8256 ----
  @end example
  
  @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fe}
  @section Pragma Subprogram_Variant
  
  
*************** The @code{Subprogram_Variant} pragma is
*** 8185,8192 ****
  the implementation-defined @code{Subprogram_Variant} aspect, and shares its
  restrictions and semantics.
  
  @node Pragma Subtitle,Pragma Suppress,Pragma Subprogram_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{fe}
  @section Pragma Subtitle
  
  
--- 8281,8292 ----
  the implementation-defined @code{Subprogram_Variant} aspect, and shares its
  restrictions and semantics.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Subtitle,Pragma Suppress,Pragma Subprogram_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{ff}
  @section Pragma Subtitle
  
  
*************** This pragma is recognized for compatibil
*** 8200,8206 ****
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{ff}
  @section Pragma Suppress
  
  
--- 8300,8306 ----
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{100}
  @section Pragma Suppress
  
  
*************** Of course, run-time checks are omitted w
*** 8273,8279 ****
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{100}
  @section Pragma Suppress_All
  
  
--- 8373,8379 ----
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{101}
  @section Pragma Suppress_All
  
  
*************** The use of the standard Ada pragma @code
*** 8292,8298 ****
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{101}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{102}
  @section Pragma Suppress_Debug_Info
  
  
--- 8392,8398 ----
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{102}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{103}
  @section Pragma Suppress_Debug_Info
  
  
*************** for the specified entity. It is intended
*** 8307,8313 ****
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{103}
  @section Pragma Suppress_Exception_Locations
  
  
--- 8407,8413 ----
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{104}
  @section Pragma Suppress_Exception_Locations
  
  
*************** a partition, so it is fine to have some
*** 8330,8336 ****
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{104}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{105}
  @section Pragma Suppress_Initialization
  
  
--- 8430,8436 ----
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{105}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{106}
  @section Pragma Suppress_Initialization
  
  
*************** is suppressed, just as though its subtyp
*** 8375,8381 ****
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{106}
  @section Pragma Task_Name
  
  
--- 8475,8481 ----
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{107}
  @section Pragma Task_Name
  
  
*************** end;
*** 8431,8437 ****
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{107}
  @section Pragma Task_Storage
  
  
--- 8531,8537 ----
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{108}
  @section Pragma Task_Storage
  
  
*************** created, depending on the target.  This
*** 8451,8457 ****
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{108}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{109}
  @section Pragma Test_Case
  
  
--- 8551,8557 ----
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{109}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{10a}
  @section Pragma Test_Case
  
  
*************** postcondition. Mode @code{Robustness} in
*** 8507,8513 ****
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10a}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{10b}
  @section Pragma Thread_Local_Storage
  
  
--- 8607,8613 ----
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10b}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{10c}
  @section Pragma Thread_Local_Storage
  
  
*************** If this pragma is used on a system where
*** 8545,8551 ****
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{10c}
  @section Pragma Time_Slice
  
  
--- 8645,8651 ----
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{10d}
  @section Pragma Time_Slice
  
  
*************** It is ignored if it is used in a system
*** 8561,8567 ****
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{10d}
  @section Pragma Title
  
  
--- 8661,8667 ----
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{10e}
  @section Pragma Title
  
  
*************** notation is used, and named and position
*** 8586,8592 ****
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{10e}
  @section Pragma Type_Invariant
  
  
--- 8686,8692 ----
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{10f}
  @section Pragma Type_Invariant
  
  
*************** does not permit a string parameter, and
*** 8606,8613 ****
  controlled by the assertion identifier @code{Type_Invariant}
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{10f}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{110}
  @section Pragma Type_Invariant_Class
  
  
--- 8706,8717 ----
  controlled by the assertion identifier @code{Type_Invariant}
  rather than @code{Invariant}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{110}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{111}
  @section Pragma Type_Invariant_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 8633,8640 ****
  policy that controls this pragma is @code{Type_Invariant'Class},
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{111}
  @section Pragma Unchecked_Union
  
  
--- 8737,8748 ----
  policy that controls this pragma is @code{Type_Invariant'Class},
  not @code{Type_Invariant_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{112}
  @section Pragma Unchecked_Union
  
  
*************** version in all language modes (Ada 83, A
*** 8654,8660 ****
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
  @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{112}
  @section Pragma Unevaluated_Use_Of_Old
  
  
--- 8762,8768 ----
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
  @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{113}
  @section Pragma Unevaluated_Use_Of_Old
  
  
*************** uses up to the end of the corresponding
*** 8709,8715 ****
  sequence of package declarations.
  
  @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{113}
  @section Pragma User_Aspect_Definition
  
  
--- 8817,8823 ----
  sequence of package declarations.
  
  @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{114}
  @section Pragma User_Aspect_Definition
  
  
*************** pragma. If multiple definitions are visi
*** 8741,8747 ****
  then the definitions must agree. A predefined aspect cannot be redefined.
  
  @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{114}
  @section Pragma Unimplemented_Unit
  
  
--- 8849,8855 ----
  then the definitions must agree. A predefined aspect cannot be redefined.
  
  @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{115}
  @section Pragma Unimplemented_Unit
  
  
*************** The abort only happens if code is being
*** 8761,8767 ****
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{115}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{116}
  @section Pragma Universal_Aliasing
  
  
--- 8869,8875 ----
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{116}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{117}
  @section Pragma Universal_Aliasing
  
  
*************** they need to be suppressed, see the sect
*** 8779,8785 ****
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{117}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{118}
  @section Pragma Unmodified
  
  
--- 8887,8893 ----
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{118}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{119}
  @section Pragma Unmodified
  
  
*************** Thus it is never necessary to use @code{
*** 8813,8819 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{119}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{11a}
  @section Pragma Unreferenced
  
  
--- 8921,8927 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{11a}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{11b}
  @section Pragma Unreferenced
  
  
*************** Note that if a warning is desired for al
*** 8859,8865 ****
  regardless of whether they occur in the same unit as the subprogram
  declaration, then this pragma should not be used (calls from another
  unit would not be flagged); pragma Obsolescent can be used instead
! for this purpose, see @ref{b6,,Pragma Obsolescent}.
  
  The second form of pragma @code{Unreferenced} is used within a context
  clause. In this case the arguments must be unit names of units previously
--- 8967,8973 ----
  regardless of whether they occur in the same unit as the subprogram
  declaration, then this pragma should not be used (calls from another
  unit would not be flagged); pragma Obsolescent can be used instead
! for this purpose, see @ref{b7,,Pragma Obsolescent}.
  
  The second form of pragma @code{Unreferenced} is used within a context
  clause. In this case the arguments must be unit names of units previously
*************** Thus it is never necessary to use @code{
*** 8875,8881 ****
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11b}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11c}
  @section Pragma Unreferenced_Objects
  
  
--- 8983,8989 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11c}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11d}
  @section Pragma Unreferenced_Objects
  
  
*************** compiler will automatically suppress unw
*** 8900,8906 ****
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{11d}
  @section Pragma Unreserve_All_Interrupts
  
  
--- 9008,9014 ----
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{11e}
  @section Pragma Unreserve_All_Interrupts
  
  
*************** handled, see pragma @code{Interrupt_Stat
*** 8936,8942 ****
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{11e}
  @section Pragma Unsuppress
  
  
--- 9044,9050 ----
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{11f}
  @section Pragma Unsuppress
  
  
*************** number of implementation-defined check n
*** 8972,8978 ****
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{11f}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{120}
  @section Pragma Unused
  
  
--- 9080,9086 ----
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{120}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{121}
  @section Pragma Unused
  
  
*************** Thus it is never necessary to use @code{
*** 9006,9012 ****
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{121}
  @section Pragma Use_VADS_Size
  
  
--- 9114,9120 ----
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{122}
  @section Pragma Use_VADS_Size
  
  
*************** as implemented in the VADS compiler.  Se
*** 9030,9036 ****
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{122}
  @section Pragma Validity_Checks
  
  
--- 9138,9144 ----
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{123}
  @section Pragma Validity_Checks
  
  
*************** A := C;                       -- C will
*** 9086,9092 ****
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{123}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{124}
  @section Pragma Volatile
  
  
--- 9194,9200 ----
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{124}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{125}
  @section Pragma Volatile
  
  
*************** implementation of pragma Volatile is upw
*** 9104,9110 ****
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{125}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{126}
  @section Pragma Volatile_Full_Access
  
  
--- 9212,9218 ----
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{126}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{127}
  @section Pragma Volatile_Full_Access
  
  
*************** is not to the whole object; the compiler
*** 9130,9136 ****
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id60}@anchor{127}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{128}
  @section Pragma Volatile_Function
  
  
--- 9238,9244 ----
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id60}@anchor{128}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{129}
  @section Pragma Volatile_Function
  
  
*************** For the semantics of this pragma, see th
*** 9144,9150 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{129}
  @section Pragma Warning_As_Error
  
  
--- 9252,9258 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{12a}
  @section Pragma Warning_As_Error
  
  
*************** you can use multiple pragma Warning_As_E
*** 9184,9190 ****
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{12a,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
--- 9292,9298 ----
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{12b,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
*************** the tag is changed from “warning:” t
*** 9234,9240 ****
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id61}@anchor{12b}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{12a}
  @section Pragma Warnings
  
  
--- 9342,9348 ----
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id61}@anchor{12c}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{12b}
  @section Pragma Warnings
  
  
*************** selectively for each tool, and as a cons
*** 9390,9396 ****
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{12c}
  @section Pragma Weak_External
  
  
--- 9498,9504 ----
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{12d}
  @section Pragma Weak_External
  
  
*************** end External_Module;
*** 9441,9447 ****
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12d}
  @section Pragma Wide_Character_Encoding
  
  
--- 9549,9555 ----
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12e}
  @section Pragma Wide_Character_Encoding
  
  
*************** encoding within that file, and does not
*** 9472,9478 ****
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12e}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{12f}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{130}
  @chapter Implementation Defined Aspects
  
  
--- 9580,9586 ----
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12f}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{130}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{131}
  @chapter Implementation Defined Aspects
  
  
*************** or attribute definition clause.
*** 9604,9610 ****
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{131}
  @section Aspect Abstract_State
  
  
--- 9712,9718 ----
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{132}
  @section Aspect Abstract_State
  
  
*************** or attribute definition clause.
*** 9613,9619 ****
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
  @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{132}
  @section Aspect Always_Terminates
  
  
--- 9721,9727 ----
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
  @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{133}
  @section Aspect Always_Terminates
  
  
*************** This aspect is equivalent to @ref{1e,,pr
*** 9622,9628 ****
  This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
  
  @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{133}
  @section Aspect Annotate
  
  
--- 9730,9736 ----
  This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
  
  @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{134}
  @section Aspect Annotate
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9649,9711 ****
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{134}
  @section Aspect Async_Readers
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{32,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{135}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{34,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{136}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{44,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{137}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{46,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{138}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{56,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{139}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{52,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{13a}
  @section Aspect Dimension
  
  
--- 9757,9819 ----
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{135}
  @section Aspect Async_Readers
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{33,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{136}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{35,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{137}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{45,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{138}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{47,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{139}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{57,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{13a}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{53,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{13b}
  @section Aspect Dimension
  
  
*************** Note that when the dimensioned type is a
*** 9741,9747 ****
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{13b}
  @section Aspect Dimension_System
  
  
--- 9849,9855 ----
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{13c}
  @section Aspect Dimension_System
  
  
*************** See section ‘Performing Dimensionality
*** 9801,9807 ****
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{13c}
  @section Aspect Disable_Controlled
  
  
--- 9909,9915 ----
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{13d}
  @section Aspect Disable_Controlled
  
  
*************** where for example you might want a recor
*** 9814,9838 ****
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{13d}
  @section Aspect Effective_Reads
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{5b,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13e}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{13f}
  @section Aspect Exceptional_Cases
  
  
--- 9922,9946 ----
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{13e}
  @section Aspect Effective_Reads
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{5c,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13f}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5e,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{140}
  @section Aspect Exceptional_Cases
  
  
*************** For the syntax and semantics of this asp
*** 9847,9853 ****
  Manual, section 6.1.9.
  
  @node Aspect Exit_Cases,Aspect Extended_Access,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{140}
  @section Aspect Exit_Cases
  
  
--- 9955,9961 ----
  Manual, section 6.1.9.
  
  @node Aspect Exit_Cases,Aspect Extended_Access,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{141}
  @section Aspect Exit_Cases
  
  
*************** For the syntax and semantics of this asp
*** 9862,9868 ****
  Manual, section 6.1.10.
  
  @node Aspect Extended_Access,Aspect Extensions_Visible,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extended-access}@anchor{141}
  @section Aspect Extended_Access
  
  
--- 9970,9976 ----
  Manual, section 6.1.10.
  
  @node Aspect Extended_Access,Aspect Extensions_Visible,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extended-access}@anchor{142}
  @section Aspect Extended_Access
  
  
*************** Sneaky_2 : Small_Ptr := Make (Str => Big
*** 9959,9992 ****
  for the same reason given above in the case of an explicit type conversion.
  
  @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Extended_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{142}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{6d,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{143}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{72,,pragma Favor_Top_Level}.
  
  @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{144}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{76,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{145}
  @section Aspect Ghost_Predicate
  
  
--- 10067,10100 ----
  for the same reason given above in the case of an explicit type conversion.
  
  @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Extended_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{143}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{6e,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{144}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{73,,pragma Favor_Top_Level}.
  
  @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{145}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{77,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{146}
  @section Aspect Ghost_Predicate
  
  
*************** For the detailed semantics of this aspec
*** 9999,10063 ****
  in the SPARK Reference Manual, section 3.2.4.
  
  @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{146}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{78,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{147}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{85,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{148}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{88,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{149}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{8a,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{14a}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{92,,pragma Invariant}. It is a
  synonym for the language defined aspect @code{Type_Invariant} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{14b}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{110,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{14c}
  @section Aspect Iterable
  
  
--- 10107,10171 ----
  in the SPARK Reference Manual, section 3.2.4.
  
  @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{147}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{79,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{148}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{86,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{149}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{89,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{14a}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{8b,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{14b}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{93,,pragma Invariant}. It is a
  synonym for the language defined aspect @code{Type_Invariant} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{14c}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{111,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{14d}
  @section Aspect Iterable
  
  
*************** function Get_Element (Cont : Container;
*** 10141,10156 ****
  This aspect is used in the GNAT-defined formal container packages.
  
  @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{14d}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{9a,,pragma Linker_Section}.
  
  @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{14e}
  @section Aspect Local_Restrictions
  
  
--- 10249,10264 ----
  This aspect is used in the GNAT-defined formal container packages.
  
  @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{14e}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{9b,,pragma Linker_Section}.
  
  @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{14f}
  @section Aspect Local_Restrictions
  
  
*************** case of a declaration that occurs within
*** 10204,10276 ****
  a Local_Restrictions specification).
  
  @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{14f}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{9c,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{150}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{a4,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{151}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{a7,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{152}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{aa,,pragma No_Elaboration_Code_All}
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Raise,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{153}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{ad,,pragma No_Inline}.
  
  @node Aspect No_Raise,Aspect No_Tagged_Streams,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-raise}@anchor{154}
  @section Aspect No_Raise
  
  
  @geindex No_Raise
  
! This boolean aspect is equivalent to @ref{af,,pragma No_Raise}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Raise,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{155}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{b3,,pragma No_Tagged_Streams} with an
  argument specifying a root tagged type (thus this aspect can only be
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{156}
  @section Aspect No_Task_Parts
  
  
--- 10312,10384 ----
  a Local_Restrictions specification).
  
  @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{150}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{9d,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{151}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{a5,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{152}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{a8,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{153}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{ab,,pragma No_Elaboration_Code_All}
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Raise,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{154}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{ae,,pragma No_Inline}.
  
  @node Aspect No_Raise,Aspect No_Tagged_Streams,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-raise}@anchor{155}
  @section Aspect No_Raise
  
  
  @geindex No_Raise
  
! This boolean aspect is equivalent to @ref{b0,,pragma No_Raise}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Raise,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{156}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{b4,,pragma No_Tagged_Streams} with an
  argument specifying a root tagged type (thus this aspect can only be
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{157}
  @section Aspect No_Task_Parts
  
  
*************** away certain tasking-related code that w
*** 10286,10330 ****
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{157}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{158,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{159}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{b6,,pragma Obsolescent}. Note that the
  evaluation of this aspect happens at the point of occurrence, it is not
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{15a}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{bc,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Potentially_Invalid,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{15b}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{c0,,pragma Persistent_BSS}.
  
  @node Aspect Potentially_Invalid,Aspect Predicate,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-potentially-invalid}@anchor{15c}
  @section Aspect Potentially_Invalid
  
  
--- 10394,10438 ----
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{158}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{159,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{15a}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{b7,,pragma Obsolescent}. Note that the
  evaluation of this aspect happens at the point of occurrence, it is not
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{15b}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{bd,,pragma Part_Of}.
  
  @node Aspect Persistent_BSS,Aspect Potentially_Invalid,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{15c}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{c1,,pragma Persistent_BSS}.
  
  @node Aspect Potentially_Invalid,Aspect Predicate,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-potentially-invalid}@anchor{15d}
  @section Aspect Potentially_Invalid
  
  
*************** For the syntax and semantics of this asp
*** 10334,10346 ****
  Manual, section 13.9.1.
  
  @node Aspect Predicate,Aspect Program_Exit,Aspect Potentially_Invalid,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{15d}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{c7,,pragma Predicate}. It is thus
  similar to the language defined aspects @code{Dynamic_Predicate}
  and @code{Static_Predicate} except that whether the resulting
  predicate is static or dynamic is controlled by the form of the
--- 10442,10454 ----
  Manual, section 13.9.1.
  
  @node Aspect Predicate,Aspect Program_Exit,Aspect Potentially_Invalid,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{15e}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{c8,,pragma Predicate}. It is thus
  similar to the language defined aspects @code{Dynamic_Predicate}
  and @code{Static_Predicate} except that whether the resulting
  predicate is static or dynamic is controlled by the form of the
*************** expression. It is also separately contro
*** 10348,10408 ****
  @code{Assertion_Policy}.
  
  @node Aspect Program_Exit,Aspect Pure_Function,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-program-exit}@anchor{15e}
  @section Aspect Program_Exit
  
  
  @geindex Program_Exit
  
! This boolean aspect is equivalent to @ref{d0,,pragma Program_Exit}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Program_Exit,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{15f}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d5,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{160}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{d9,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{161}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{db,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{162}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{dd,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{163}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{df,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{164}
  @section Aspect Relaxed_Initialization
  
  
--- 10456,10516 ----
  @code{Assertion_Policy}.
  
  @node Aspect Program_Exit,Aspect Pure_Function,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-program-exit}@anchor{15f}
  @section Aspect Program_Exit
  
  
  @geindex Program_Exit
  
! This boolean aspect is equivalent to @ref{d1,,pragma Program_Exit}.
  
  @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Program_Exit,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{160}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d6,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{161}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{da,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{162}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{dc,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{163}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{de,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{164}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{e0,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{165}
  @section Aspect Relaxed_Initialization
  
  
*************** For the syntax and semantics of this asp
*** 10412,10493 ****
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{165}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e2,,pragma Remote_Access_Type}.
  
  @node Aspect Scalar_Storage_Order,Aspect Secondary_Stack_Size,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{166}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{167,,attribute Scalar_Storage_Order}.
  
  @node Aspect Secondary_Stack_Size,Aspect Shared,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{168}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e8,,pragma Secondary_Stack_Size}.
  
  @node Aspect Shared,Aspect Side_Effects,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{169}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{eb,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
  @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{16a}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{ef,,pragma Side_Effects}.
  
  @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{16b}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f2,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{16c}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{f1,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Subprogram_Variant,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{16d}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{f9,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Subprogram_Variant,Aspect Suppress_Debug_Info,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-subprogram-variant}@anchor{16e}
  @section Aspect Subprogram_Variant
  
  
--- 10520,10601 ----
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{166}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e3,,pragma Remote_Access_Type}.
  
  @node Aspect Scalar_Storage_Order,Aspect Secondary_Stack_Size,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{167}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{168,,attribute Scalar_Storage_Order}.
  
  @node Aspect Secondary_Stack_Size,Aspect Shared,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{169}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e9,,pragma Secondary_Stack_Size}.
  
  @node Aspect Shared,Aspect Side_Effects,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{16a}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{ec,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
  @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{16b}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{f0,,pragma Side_Effects}.
  
  @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{16c}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f3,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{16d}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{f2,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Subprogram_Variant,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{16e}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{fa,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Subprogram_Variant,Aspect Suppress_Debug_Info,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-subprogram-variant}@anchor{16f}
  @section Aspect Subprogram_Variant
  
  
*************** For the syntax and semantics of this asp
*** 10497,10579 ****
  Manual, section 6.1.8.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect Subprogram_Variant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{16f}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{102,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{170}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{105,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{171}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{109,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{172}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{10b,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{173}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{116,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{174}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{118,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{175}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{11a,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
  @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{176}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11c,,pragma Unreferenced_Objects}.
  
  @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{177}
  @section Aspect User_Aspect
  
  
--- 10605,10687 ----
  Manual, section 6.1.8.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect Subprogram_Variant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{170}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{103,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{171}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{106,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{172}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{10a,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{173}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{10c,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{174}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{117,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{175}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{119,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{176}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{11b,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
  @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{177}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11d,,pragma Unreferenced_Objects}.
  
  @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{178}
  @section Aspect User_Aspect
  
  
*************** replicating the set of aspect specificat
*** 10586,10630 ****
  pragma-defined aspect.
  
  @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{178}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{179,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{17a}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{126,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{17b}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{128,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{17c}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{12a,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{17d}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{17e}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
--- 10694,10738 ----
  pragma-defined aspect.
  
  @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{179}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{17a,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{17b}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{127,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{17c}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{129,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{17d}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{12b,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{17e}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{17f}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
*************** consideration, you should minimize the u
*** 10730,10736 ****
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{17f}
  @section Attribute Abort_Signal
  
  
--- 10838,10844 ----
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{180}
  @section Attribute Abort_Signal
  
  
*************** completely outside the normal semantics
*** 10744,10750 ****
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{180}
  @section Attribute Address_Size
  
  
--- 10852,10858 ----
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{181}
  @section Attribute Address_Size
  
  
*************** reference to System.Address’Size is no
*** 10760,10766 ****
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{181}
  @section Attribute Asm_Input
  
  
--- 10868,10874 ----
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{182}
  @section Attribute Asm_Input
  
  
*************** to be a static expression, and is the co
*** 10774,10783 ****
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{182,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{183}
  @section Attribute Asm_Output
  
  
--- 10882,10891 ----
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{183,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{184}
  @section Attribute Asm_Output
  
  
*************** result.  The possible values for constra
*** 10793,10802 ****
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{182,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{184}
  @section Attribute Atomic_Always_Lock_Free
  
  
--- 10901,10910 ----
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{183,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{185}
  @section Attribute Atomic_Always_Lock_Free
  
  
*************** result indicates whether atomic operatio
*** 10807,10813 ****
  for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{185}
  @section Attribute Bit
  
  
--- 10915,10921 ----
  for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{186}
  @section Attribute Bit
  
  
*************** This attribute is designed to be compati
*** 10838,10844 ****
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{186}
  @section Attribute Bit_Position
  
  
--- 10946,10952 ----
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{187}
  @section Attribute Bit_Position
  
  
*************** type `universal_integer'.  The value dep
*** 10853,10859 ****
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{187}
  @section Attribute Code_Address
  
  
--- 10961,10967 ----
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{188}
  @section Attribute Code_Address
  
  
*************** the same value as is returned by the cor
*** 10896,10902 ****
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{188}
  @section Attribute Compiler_Version
  
  
--- 11004,11010 ----
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{189}
  @section Attribute Compiler_Version
  
  
*************** prefix) yields a static string identifyi
*** 10907,10913 ****
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{189}
  @section Attribute Constrained
  
  
--- 11015,11021 ----
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{18a}
  @section Attribute Constrained
  
  
*************** record type without discriminants is alw
*** 10922,10928 ****
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{18a}
  @section Attribute Default_Bit_Order
  
  
--- 11030,11036 ----
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{18b}
  @section Attribute Default_Bit_Order
  
  
*************** as a @code{Pos} value (0 for @code{High_
*** 10939,10945 ****
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{18b}
  @section Attribute Default_Scalar_Storage_Order
  
  
--- 11047,11053 ----
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{18c}
  @section Attribute Default_Scalar_Storage_Order
  
  
*************** equal to @code{Default_Bit_Order} if uns
*** 10956,10962 ****
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{18c}
  @section Attribute Deref
  
  
--- 11064,11070 ----
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{18d}
  @section Attribute Deref
  
  
*************** a named access-to-@cite{typ} type, excep
*** 10969,10975 ****
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{18d}
  @section Attribute Descriptor_Size
  
  
--- 11077,11083 ----
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{18e}
  @section Attribute Descriptor_Size
  
  
*************** since @code{Positive} has an alignment o
*** 10998,11004 ****
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{18e}
  @section Attribute Elaborated
  
  
--- 11106,11112 ----
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{18f}
  @section Attribute Elaborated
  
  
*************** units has been completed.  An exception
*** 11013,11019 ****
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{18f}
  @section Attribute Elab_Body
  
  
--- 11121,11127 ----
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{190}
  @section Attribute Elab_Body
  
  
*************** e.g., if it is necessary to do selective
*** 11029,11035 ****
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{190}
  @section Attribute Elab_Spec
  
  
--- 11137,11143 ----
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{191}
  @section Attribute Elab_Spec
  
  
*************** Ada code, e.g., if it is necessary to do
*** 11045,11051 ****
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{191}
  @section Attribute Elab_Subp_Body
  
  
--- 11153,11159 ----
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{192}
  @section Attribute Elab_Subp_Body
  
  
*************** elaboration procedure by the binder in C
*** 11059,11065 ****
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{192}
  @section Attribute Emax
  
  
--- 11167,11173 ----
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{193}
  @section Attribute Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11072,11078 ****
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{193}
  @section Attribute Enabled
  
  
--- 11180,11186 ----
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{194}
  @section Attribute Enabled
  
  
*************** a @code{pragma Suppress} or @code{pragma
*** 11096,11102 ****
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{194}
  @section Attribute Enum_Rep
  
  
--- 11204,11210 ----
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{195}
  @section Attribute Enum_Rep
  
  
*************** integer calculation is done at run time,
*** 11136,11142 ****
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{195}
  @section Attribute Enum_Val
  
  
--- 11244,11250 ----
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{196}
  @section Attribute Enum_Val
  
  
*************** absence of an enumeration representation
*** 11162,11168 ****
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{196}
  @section Attribute Epsilon
  
  
--- 11270,11276 ----
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{197}
  @section Attribute Epsilon
  
  
*************** the Ada 83 reference manual for an exact
*** 11175,11181 ****
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{197}
  @section Attribute Fast_Math
  
  
--- 11283,11289 ----
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{198}
  @section Attribute Fast_Math
  
  
*************** prefix) yields a static Boolean value th
*** 11186,11192 ****
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{198}
  @section Attribute Finalization_Size
  
  
--- 11294,11300 ----
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{199}
  @section Attribute Finalization_Size
  
  
*************** class-wide type whose tag denotes a type
*** 11204,11210 ****
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{199}
  @section Attribute Fixed_Value
  
  
--- 11312,11318 ----
  Note that only heap-allocated objects contain finalization data.
  
  @node Attribute Fixed_Value,Attribute From_Any,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{19a}
  @section Attribute Fixed_Value
  
  
*************** This attribute is primarily intended for
*** 11231,11237 ****
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{19a}
  @section Attribute From_Any
  
  
--- 11339,11345 ----
  input-output functions for fixed-point values.
  
  @node Attribute From_Any,Attribute Has_Access_Values,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{19b}
  @section Attribute From_Any
  
  
*************** This internal attribute is used for the
*** 11241,11247 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{19b}
  @section Attribute Has_Access_Values
  
  
--- 11349,11355 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Has_Access_Values,Attribute Has_Discriminants,Attribute From_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-access-values}@anchor{19c}
  @section Attribute Has_Access_Values
  
  
*************** definitions.  If the attribute is applie
*** 11259,11265 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{19c}
  @section Attribute Has_Discriminants
  
  
--- 11367,11373 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Has_Discriminants,Attribute Has_Tagged_Values,Attribute Has_Access_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-discriminants}@anchor{19d}
  @section Attribute Has_Discriminants
  
  
*************** definitions.  If the attribute is applie
*** 11275,11281 ****
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{19d}
  @section Attribute Has_Tagged_Values
  
  
--- 11383,11389 ----
  indicates whether or not the corresponding actual type has discriminants.
  
  @node Attribute Has_Tagged_Values,Attribute Img,Attribute Has_Discriminants,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-has-tagged-values}@anchor{19e}
  @section Attribute Has_Tagged_Values
  
  
*************** definitions. If the attribute is applied
*** 11292,11298 ****
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{19e}
  @section Attribute Img
  
  
--- 11400,11406 ----
  indicates whether or not the corresponding actual type has access values.
  
  @node Attribute Img,Attribute Initialized,Attribute Has_Tagged_Values,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-img}@anchor{19f}
  @section Attribute Img
  
  
*************** that returns the appropriate string when
*** 11322,11328 ****
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{19f}
  @section Attribute Initialized
  
  
--- 11430,11436 ----
  in an instantiation as a function parameter.
  
  @node Attribute Initialized,Attribute Integer_Value,Attribute Img,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-initialized}@anchor{1a0}
  @section Attribute Initialized
  
  
*************** For the syntax and semantics of this att
*** 11332,11338 ****
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{1a0}
  @section Attribute Integer_Value
  
  
--- 11440,11446 ----
  Manual, section 6.10.
  
  @node Attribute Integer_Value,Attribute Invalid_Value,Attribute Initialized,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-integer-value}@anchor{1a1}
  @section Attribute Integer_Value
  
  
*************** This attribute is primarily intended for
*** 11360,11366 ****
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Large,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{1a1}
  @section Attribute Invalid_Value
  
  
--- 11468,11474 ----
  standard input-output functions for fixed-point values.
  
  @node Attribute Invalid_Value,Attribute Large,Attribute Integer_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-invalid-value}@anchor{1a2}
  @section Attribute Invalid_Value
  
  
*************** including the ability to modify the valu
*** 11374,11380 ****
  relevant environment variables at run time.
  
  @node Attribute Large,Attribute Library_Level,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{1a2}
  @section Attribute Large
  
  
--- 11482,11488 ----
  relevant environment variables at run time.
  
  @node Attribute Large,Attribute Library_Level,Attribute Invalid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-large}@anchor{1a3}
  @section Attribute Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11387,11393 ****
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{1a3}
  @section Attribute Library_Level
  
  
--- 11495,11501 ----
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{1a4}
  @section Attribute Library_Level
  
  
*************** end Gen;
*** 11413,11419 ****
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{1a4}
  @section Attribute Loop_Entry
  
  
--- 11521,11527 ----
  @end example
  
  @node Attribute Loop_Entry,Attribute Machine_Size,Attribute Library_Level,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-loop-entry}@anchor{1a5}
  @section Attribute Loop_Entry
  
  
*************** entry. This copy is not performed if the
*** 11446,11452 ****
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{1a5}
  @section Attribute Machine_Size
  
  
--- 11554,11560 ----
  corresponding pragmas are ignored or disabled.
  
  @node Attribute Machine_Size,Attribute Mantissa,Attribute Loop_Entry,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-machine-size}@anchor{1a6}
  @section Attribute Machine_Size
  
  
*************** This attribute is identical to the @code
*** 11456,11462 ****
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{1a6}
  @section Attribute Mantissa
  
  
--- 11564,11570 ----
  provided for compatibility with the DEC Ada 83 attribute of this name.
  
  @node Attribute Mantissa,Attribute Maximum_Alignment,Attribute Machine_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mantissa}@anchor{1a7}
  @section Attribute Mantissa
  
  
*************** the Ada 83 reference manual for an exact
*** 11469,11475 ****
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{1a7}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1a8}
  @section Attribute Maximum_Alignment
  
  
--- 11577,11583 ----
  this attribute.
  
  @node Attribute Maximum_Alignment,Attribute Max_Integer_Size,Attribute Mantissa,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-maximum-alignment}@anchor{1a8}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1a9}
  @section Attribute Maximum_Alignment
  
  
*************** for an object, guaranteeing that it is p
*** 11485,11491 ****
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{1a9}
  @section Attribute Max_Integer_Size
  
  
--- 11593,11599 ----
  cases.
  
  @node Attribute Max_Integer_Size,Attribute Mechanism_Code,Attribute Maximum_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-max-integer-size}@anchor{1aa}
  @section Attribute Max_Integer_Size
  
  
*************** prefix) provides the size of the largest
*** 11496,11502 ****
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{1aa}
  @section Attribute Mechanism_Code
  
  
--- 11604,11610 ----
  the target. The result is a static constant.
  
  @node Attribute Mechanism_Code,Attribute Null_Parameter,Attribute Max_Integer_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-mechanism-code}@anchor{1ab}
  @section Attribute Mechanism_Code
  
  
*************** by reference
*** 11527,11533 ****
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{1ab}
  @section Attribute Null_Parameter
  
  
--- 11635,11641 ----
  @end table
  
  @node Attribute Null_Parameter,Attribute Object_Size,Attribute Mechanism_Code,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-null-parameter}@anchor{1ac}
  @section Attribute Null_Parameter
  
  
*************** There is no way of indicating this witho
*** 11552,11558 ****
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{158}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1ac}
  @section Attribute Object_Size
  
  
--- 11660,11666 ----
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{159}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1ad}
  @section Attribute Object_Size
  
  
*************** Similar additional checks are performed
*** 11622,11628 ****
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{1ad}
  @section Attribute Old
  
  
--- 11730,11736 ----
  statically matching subtypes.
  
  @node Attribute Old,Attribute Passed_By_Reference,Attribute Object_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-old}@anchor{1ae}
  @section Attribute Old
  
  
*************** definition are allowed under control of
*** 11637,11643 ****
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{1ae}
  @section Attribute Passed_By_Reference
  
  
--- 11745,11751 ----
  implementation defined pragma @code{Unevaluated_Use_Of_Old}.
  
  @node Attribute Passed_By_Reference,Attribute Pool_Address,Attribute Old,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-passed-by-reference}@anchor{1af}
  @section Attribute Passed_By_Reference
  
  
*************** passed by copy in calls.  For scalar typ
*** 11653,11659 ****
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{1af}
  @section Attribute Pool_Address
  
  
--- 11761,11767 ----
  and is static.  For non-scalar types, the result is nonstatic.
  
  @node Attribute Pool_Address,Attribute Range_Length,Attribute Passed_By_Reference,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-pool-address}@anchor{1b0}
  @section Attribute Pool_Address
  
  
*************** For an object created by @code{new}, @co
*** 11675,11681 ****
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{1b0}
  @section Attribute Range_Length
  
  
--- 11783,11789 ----
  what is passed to @code{Allocate} and returned from @code{Deallocate}.
  
  @node Attribute Range_Length,Attribute Restriction_Set,Attribute Pool_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-range-length}@anchor{1b1}
  @section Attribute Range_Length
  
  
*************** applied to the index subtype of a one di
*** 11688,11694 ****
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{1b1}
  @section Attribute Restriction_Set
  
  
--- 11796,11802 ----
  same result as @code{Length} applied to the array itself.
  
  @node Attribute Restriction_Set,Attribute Result,Attribute Range_Length,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-restriction-set}@anchor{1b2}
  @section Attribute Restriction_Set
  
  
*************** Restrictions pragma, they are not analyz
*** 11758,11764 ****
  so they do not have a type.
  
  @node Attribute Result,Attribute Round,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1b2}
  @section Attribute Result
  
  
--- 11866,11872 ----
  so they do not have a type.
  
  @node Attribute Result,Attribute Round,Attribute Restriction_Set,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-result}@anchor{1b3}
  @section Attribute Result
  
  
*************** For a further discussion of the use of t
*** 11771,11777 ****
  see the description of pragma Postcondition.
  
  @node Attribute Round,Attribute Safe_Emax,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-round}@anchor{1b3}
  @section Attribute Round
  
  
--- 11879,11885 ----
  see the description of pragma Postcondition.
  
  @node Attribute Round,Attribute Safe_Emax,Attribute Result,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-round}@anchor{1b4}
  @section Attribute Round
  
  
*************** also permits the use of the @code{'Round
*** 11782,11788 ****
  fixed point types.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Round,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1b4}
  @section Attribute Safe_Emax
  
  
--- 11890,11896 ----
  fixed point types.
  
  @node Attribute Safe_Emax,Attribute Safe_Large,Attribute Round,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-emax}@anchor{1b5}
  @section Attribute Safe_Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11795,11801 ****
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{1b5}
  @section Attribute Safe_Large
  
  
--- 11903,11909 ----
  this attribute.
  
  @node Attribute Safe_Large,Attribute Safe_Small,Attribute Safe_Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-large}@anchor{1b6}
  @section Attribute Safe_Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11808,11814 ****
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{1b6}
  @section Attribute Safe_Small
  
  
--- 11916,11922 ----
  this attribute.
  
  @node Attribute Safe_Small,Attribute Scalar_Storage_Order,Attribute Safe_Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-safe-small}@anchor{1b7}
  @section Attribute Safe_Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11821,11827 ****
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{167}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b7}
  @section Attribute Scalar_Storage_Order
  
  
--- 11929,11935 ----
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{168}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b8}
  @section Attribute Scalar_Storage_Order
  
  
*************** Note that debuggers may be unable to dis
*** 11984,11990 ****
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{f2}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1b8}
  @section Attribute Simple_Storage_Pool
  
  
--- 12092,12098 ----
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{f3}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1b9}
  @section Attribute Simple_Storage_Pool
  
  
*************** as defined in section 13.11.2 of the Ada
*** 12047,12053 ****
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{1b9}
  @section Attribute Small
  
  
--- 12155,12161 ----
  term `simple storage pool' is substituted for `storage pool'.
  
  @node Attribute Small,Attribute Small_Denominator,Attribute Simple_Storage_Pool,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small}@anchor{1ba}
  @section Attribute Small
  
  
*************** the Ada 83 reference manual for an exact
*** 12063,12069 ****
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{1ba}
  @section Attribute Small_Denominator
  
  
--- 12171,12177 ----
  this attribute when applied to floating-point types.
  
  @node Attribute Small_Denominator,Attribute Small_Numerator,Attribute Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-denominator}@anchor{1bb}
  @section Attribute Small_Denominator
  
  
*************** denominator in the representation of @co
*** 12076,12082 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{1bb}
  @section Attribute Small_Numerator
  
  
--- 12184,12190 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Small_Numerator,Attribute Storage_Unit,Attribute Small_Denominator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-small-numerator}@anchor{1bc}
  @section Attribute Small_Numerator
  
  
*************** numerator in the representation of @code
*** 12089,12095 ****
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1bc}
  @section Attribute Storage_Unit
  
  
--- 12197,12203 ----
  with coprime factors (i.e. as an irreducible fraction).
  
  @node Attribute Storage_Unit,Attribute Stub_Type,Attribute Small_Numerator,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-storage-unit}@anchor{1bd}
  @section Attribute Storage_Unit
  
  
*************** with coprime factors (i.e. as an irreduc
*** 12099,12105 ****
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1bd}
  @section Attribute Stub_Type
  
  
--- 12207,12213 ----
  prefix) provides the same value as @code{System.Storage_Unit}.
  
  @node Attribute Stub_Type,Attribute System_Allocator_Alignment,Attribute Storage_Unit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-stub-type}@anchor{1be}
  @section Attribute Stub_Type
  
  
*************** unit @code{System.Partition_Interface}.
*** 12123,12129 ****
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1be}
  @section Attribute System_Allocator_Alignment
  
  
--- 12231,12237 ----
  an implicit dependency on this unit.
  
  @node Attribute System_Allocator_Alignment,Attribute Target_Name,Attribute Stub_Type,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-system-allocator-alignment}@anchor{1bf}
  @section Attribute System_Allocator_Alignment
  
  
*************** with alignment too large or to enable a
*** 12140,12146 ****
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1bf}
  @section Attribute Target_Name
  
  
--- 12248,12254 ----
  alignment request is larger than this value.
  
  @node Attribute Target_Name,Attribute To_Address,Attribute System_Allocator_Alignment,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-target-name}@anchor{1c0}
  @section Attribute Target_Name
  
  
*************** standard gcc target name without the ter
*** 12153,12159 ****
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1c0}
  @section Attribute To_Address
  
  
--- 12261,12267 ----
  example, GNAT 5.0 on windows yields “i586-pc-mingw32msv”).
  
  @node Attribute To_Address,Attribute To_Any,Attribute Target_Name,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-address}@anchor{1c1}
  @section Attribute To_Address
  
  
*************** modular manner (e.g., -1 means the same
*** 12176,12182 ****
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1c1}
  @section Attribute To_Any
  
  
--- 12284,12290 ----
  a 32 bits machine).
  
  @node Attribute To_Any,Attribute Type_Class,Attribute To_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-to-any}@anchor{1c2}
  @section Attribute To_Any
  
  
*************** This internal attribute is used for the
*** 12186,12192 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1c2}
  @section Attribute Type_Class
  
  
--- 12294,12300 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Type_Class,Attribute Type_Key,Attribute To_Any,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-class}@anchor{1c3}
  @section Attribute Type_Class
  
  
*************** applies to all concurrent types.  This a
*** 12216,12222 ****
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1c3}
  @section Attribute Type_Key
  
  
--- 12324,12330 ----
  be compatible with the DEC Ada 83 attribute of the same name.
  
  @node Attribute Type_Key,Attribute TypeCode,Attribute Type_Class,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-type-key}@anchor{1c4}
  @section Attribute Type_Key
  
  
*************** about the type or subtype. This provides
*** 12228,12234 ****
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1c4}
  @section Attribute TypeCode
  
  
--- 12336,12342 ----
  other implementations that support this attribute.
  
  @node Attribute TypeCode,Attribute Unconstrained_Array,Attribute Type_Key,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-typecode}@anchor{1c5}
  @section Attribute TypeCode
  
  
*************** This internal attribute is used for the
*** 12238,12244 ****
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1c5}
  @section Attribute Unconstrained_Array
  
  
--- 12346,12352 ----
  stubs in the context of the Distributed Systems Annex.
  
  @node Attribute Unconstrained_Array,Attribute Universal_Literal_String,Attribute TypeCode,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unconstrained-array}@anchor{1c6}
  @section Attribute Unconstrained_Array
  
  
*************** still static, and yields the result of a
*** 12252,12258 ****
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1c6}
  @section Attribute Universal_Literal_String
  
  
--- 12360,12366 ----
  generic actual.
  
  @node Attribute Universal_Literal_String,Attribute Unrestricted_Access,Attribute Unconstrained_Array,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-universal-literal-string}@anchor{1c7}
  @section Attribute Universal_Literal_String
  
  
*************** end;
*** 12280,12286 ****
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1c7}
  @section Attribute Unrestricted_Access
  
  
--- 12388,12394 ----
  @end example
  
  @node Attribute Unrestricted_Access,Attribute Update,Attribute Universal_Literal_String,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-unrestricted-access}@anchor{1c8}
  @section Attribute Unrestricted_Access
  
  
*************** In general this is a risky approach. It
*** 12467,12473 ****
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1c8}
  @section Attribute Update
  
  
--- 12575,12581 ----
  of GNAT to another, so are best avoided if possible.
  
  @node Attribute Update,Attribute Valid_Value,Attribute Unrestricted_Access,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-update}@anchor{1c9}
  @section Attribute Update
  
  
*************** A := A'Update ((1, 2) => 20, (3, 4) => 3
*** 12548,12554 ****
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1c9}
  @section Attribute Valid_Value
  
  
--- 12656,12662 ----
  which changes element (1,2) to 20 and (3,4) to 30.
  
  @node Attribute Valid_Value,Attribute Valid_Scalars,Attribute Update,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-value}@anchor{1ca}
  @section Attribute Valid_Value
  
  
*************** a function that takes a String, and retu
*** 12560,12566 ****
  returns True if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1ca}
  @section Attribute Valid_Scalars
  
  
--- 12668,12674 ----
  returns True if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1cb}
  @section Attribute Valid_Scalars
  
  
*************** write a function with a single use of th
*** 12594,12600 ****
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1cb}
  @section Attribute VADS_Size
  
  
--- 12702,12708 ----
  function from multiple places.
  
  @node Attribute VADS_Size,Attribute Value_Size,Attribute Valid_Scalars,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-vads-size}@anchor{1cc}
  @section Attribute VADS_Size
  
  
*************** gives the result that would be obtained
*** 12614,12620 ****
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{179}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1cc}
  @section Attribute Value_Size
  
  
--- 12722,12728 ----
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{17a}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1cd}
  @section Attribute Value_Size
  
  
*************** a value of the given subtype.  It is the
*** 12628,12634 ****
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1cd}
  @section Attribute Wchar_T_Size
  
  
--- 12736,12742 ----
  but, unlike @code{Size}, may be set for non-first subtypes.
  
  @node Attribute Wchar_T_Size,Attribute Word_Size,Attribute Value_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-wchar-t-size}@anchor{1ce}
  @section Attribute Wchar_T_Size
  
  
*************** primarily for constructing the definitio
*** 12640,12646 ****
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1ce}
  @section Attribute Word_Size
  
  
--- 12748,12754 ----
  package @code{Interfaces.C}. The result is a static constant.
  
  @node Attribute Word_Size,,Attribute Wchar_T_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-word-size}@anchor{1cf}
  @section Attribute Word_Size
  
  
*************** prefix) provides the value @code{System.
*** 12651,12657 ****
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1cf}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1d0}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
--- 12759,12765 ----
  a static constant.
  
  @node Standard and Implementation Defined Restrictions,Implementation Advice,Implementation Defined Attributes,Top
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions doc}@anchor{1d0}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1d1}@anchor{gnat_rm/standard_and_implementation_defined_restrictions standard-and-implementation-defined-restrictions}@anchor{9}
  @chapter Standard and Implementation Defined Restrictions
  
  
*************** language defined or GNAT-specific, are l
*** 12680,12686 ****
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1d1}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1d2}
  @section Partition-Wide Restrictions
  
  
--- 12788,12794 ----
  @end menu
  
  @node Partition-Wide Restrictions,Program Unit Level Restrictions,,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id2}@anchor{1d2}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1d3}
  @section Partition-Wide Restrictions
  
  
*************** then all compilation units in the partit
*** 12773,12779 ****
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1d3}
  @subsection Immediate_Reclamation
  
  
--- 12881,12887 ----
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1d4}
  @subsection Immediate_Reclamation
  
  
*************** deallocation, any storage reserved at ru
*** 12785,12791 ****
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1d4}
  @subsection Max_Asynchronous_Select_Nesting
  
  
--- 12893,12899 ----
  immediately reclaimed when the object no longer exists.
  
  @node Max_Asynchronous_Select_Nesting,Max_Entry_Queue_Length,Immediate_Reclamation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-asynchronous-select-nesting}@anchor{1d5}
  @subsection Max_Asynchronous_Select_Nesting
  
  
*************** detected at compile time. Violations of
*** 12797,12803 ****
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1d5}
  @subsection Max_Entry_Queue_Length
  
  
--- 12905,12911 ----
  other than zero cause Storage_Error to be raised.
  
  @node Max_Entry_Queue_Length,Max_Protected_Entries,Max_Asynchronous_Select_Nesting,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-entry-queue-length}@anchor{1d6}
  @subsection Max_Entry_Queue_Length
  
  
*************** compatibility purposes (and a warning wi
*** 12818,12824 ****
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1d6}
  @subsection Max_Protected_Entries
  
  
--- 12926,12932 ----
  warnings on obsolescent features are activated).
  
  @node Max_Protected_Entries,Max_Select_Alternatives,Max_Entry_Queue_Length,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-protected-entries}@anchor{1d7}
  @subsection Max_Protected_Entries
  
  
*************** bounds of every entry family of a protec
*** 12829,12835 ****
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1d7}
  @subsection Max_Select_Alternatives
  
  
--- 12937,12943 ----
  defined by a discriminant of a subtype whose corresponding bound is static.
  
  @node Max_Select_Alternatives,Max_Storage_At_Blocking,Max_Protected_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-select-alternatives}@anchor{1d8}
  @subsection Max_Select_Alternatives
  
  
*************** defined by a discriminant of a subtype w
*** 12838,12844 ****
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1d8}
  @subsection Max_Storage_At_Blocking
  
  
--- 12946,12952 ----
  [RM D.7] Specifies the maximum number of alternatives in a selective accept.
  
  @node Max_Storage_At_Blocking,Max_Task_Entries,Max_Select_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-storage-at-blocking}@anchor{1d9}
  @subsection Max_Storage_At_Blocking
  
  
*************** Storage_Size that can be retained by a b
*** 12849,12855 ****
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1d9}
  @subsection Max_Task_Entries
  
  
--- 12957,12963 ----
  restriction causes Storage_Error to be raised.
  
  @node Max_Task_Entries,Max_Tasks,Max_Storage_At_Blocking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-task-entries}@anchor{1da}
  @subsection Max_Task_Entries
  
  
*************** defined by a discriminant of a subtype w
*** 12862,12868 ****
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1da}
  @subsection Max_Tasks
  
  
--- 12970,12976 ----
  corresponding bound is static.
  
  @node Max_Tasks,No_Abort_Statements,Max_Task_Entries,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions max-tasks}@anchor{1db}
  @subsection Max_Tasks
  
  
*************** time. Violations of this restriction wit
*** 12875,12881 ****
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1db}
  @subsection No_Abort_Statements
  
  
--- 12983,12989 ----
  Storage_Error to be raised.
  
  @node No_Abort_Statements,No_Access_Parameter_Allocators,Max_Tasks,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-abort-statements}@anchor{1dc}
  @subsection No_Abort_Statements
  
  
*************** Storage_Error to be raised.
*** 12885,12891 ****
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1dc}
  @subsection No_Access_Parameter_Allocators
  
  
--- 12993,12999 ----
  no calls to Task_Identification.Abort_Task.
  
  @node No_Access_Parameter_Allocators,No_Access_Subprograms,No_Abort_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-parameter-allocators}@anchor{1dd}
  @subsection No_Access_Parameter_Allocators
  
  
*************** occurrences of an allocator as the actua
*** 12896,12902 ****
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1dd}
  @subsection No_Access_Subprograms
  
  
--- 13004,13010 ----
  parameter.
  
  @node No_Access_Subprograms,No_Allocators,No_Access_Parameter_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-access-subprograms}@anchor{1de}
  @subsection No_Access_Subprograms
  
  
*************** parameter.
*** 12906,12912 ****
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1de}
  @subsection No_Allocators
  
  
--- 13014,13020 ----
  declarations of access-to-subprogram types.
  
  @node No_Allocators,No_Anonymous_Allocators,No_Access_Subprograms,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-allocators}@anchor{1df}
  @subsection No_Allocators
  
  
*************** declarations of access-to-subprogram typ
*** 12916,12922 ****
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1df}
  @subsection No_Anonymous_Allocators
  
  
--- 13024,13030 ----
  occurrences of an allocator.
  
  @node No_Anonymous_Allocators,No_Asynchronous_Control,No_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-anonymous-allocators}@anchor{1e0}
  @subsection No_Anonymous_Allocators
  
  
*************** occurrences of an allocator.
*** 12926,12932 ****
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1e0}
  @subsection No_Asynchronous_Control
  
  
--- 13034,13040 ----
  occurrences of an allocator of anonymous access type.
  
  @node No_Asynchronous_Control,No_Calendar,No_Anonymous_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-asynchronous-control}@anchor{1e1}
  @subsection No_Asynchronous_Control
  
  
*************** occurrences of an allocator of anonymous
*** 12936,12942 ****
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1e1}
  @subsection No_Calendar
  
  
--- 13044,13050 ----
  dependences on the predefined package Asynchronous_Task_Control.
  
  @node No_Calendar,No_Coextensions,No_Asynchronous_Control,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-calendar}@anchor{1e2}
  @subsection No_Calendar
  
  
*************** dependences on the predefined package As
*** 12946,12952 ****
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1e2}
  @subsection No_Coextensions
  
  
--- 13054,13060 ----
  dependences on package Calendar.
  
  @node No_Coextensions,No_Default_Initialization,No_Calendar,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-coextensions}@anchor{1e3}
  @subsection No_Coextensions
  
  
*************** dependences on package Calendar.
*** 12956,12962 ****
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1e3}
  @subsection No_Default_Initialization
  
  
--- 13064,13070 ----
  coextensions. See 3.10.2.
  
  @node No_Default_Initialization,No_Delay,No_Coextensions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-default-initialization}@anchor{1e4}
  @subsection No_Default_Initialization
  
  
*************** is to prohibit all cases of variables de
*** 12973,12979 ****
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1e4}
  @subsection No_Delay
  
  
--- 13081,13087 ----
  initializer (including the case of OUT scalar parameters).
  
  @node No_Delay,No_Dependence,No_Default_Initialization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-delay}@anchor{1e5}
  @subsection No_Delay
  
  
*************** initializer (including the case of OUT s
*** 12983,12989 ****
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1e5}
  @subsection No_Dependence
  
  
--- 13091,13097 ----
  delay statements and no semantic dependences on package Calendar.
  
  @node No_Dependence,No_Direct_Boolean_Operators,No_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dependence}@anchor{1e6}
  @subsection No_Dependence
  
  
*************** to support specific constructs of the la
*** 13026,13032 ****
  @end itemize
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1e6}
  @subsection No_Direct_Boolean_Operators
  
  
--- 13134,13140 ----
  @end itemize
  
  @node No_Direct_Boolean_Operators,No_Dispatch,No_Dependence,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-direct-boolean-operators}@anchor{1e7}
  @subsection No_Direct_Boolean_Operators
  
  
*************** protocol requires the use of short-circu
*** 13039,13045 ****
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1e7}
  @subsection No_Dispatch
  
  
--- 13147,13153 ----
  composite boolean operations.
  
  @node No_Dispatch,No_Dispatching_Calls,No_Direct_Boolean_Operators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatch}@anchor{1e8}
  @subsection No_Dispatch
  
  
*************** composite boolean operations.
*** 13049,13055 ****
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1e8}
  @subsection No_Dispatching_Calls
  
  
--- 13157,13163 ----
  occurrences of @code{T'Class}, for any (tagged) subtype @code{T}.
  
  @node No_Dispatching_Calls,No_Dynamic_Attachment,No_Dispatch,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dispatching-calls}@anchor{1e9}
  @subsection No_Dispatching_Calls
  
  
*************** end Example;
*** 13110,13116 ****
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1e9}
  @subsection No_Dynamic_Attachment
  
  
--- 13218,13224 ----
  @end example
  
  @node No_Dynamic_Attachment,No_Dynamic_Priorities,No_Dispatching_Calls,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-attachment}@anchor{1ea}
  @subsection No_Dynamic_Attachment
  
  
*************** compatibility purposes (and a warning wi
*** 13129,13135 ****
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1ea}
  @subsection No_Dynamic_Priorities
  
  
--- 13237,13243 ----
  warnings on obsolescent features are activated).
  
  @node No_Dynamic_Priorities,No_Entry_Calls_In_Elaboration_Code,No_Dynamic_Attachment,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-priorities}@anchor{1eb}
  @subsection No_Dynamic_Priorities
  
  
*************** warnings on obsolescent features are act
*** 13138,13144 ****
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1eb}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
--- 13246,13252 ----
  [RM D.7] There are no semantic dependencies on the package Dynamic_Priorities.
  
  @node No_Entry_Calls_In_Elaboration_Code,No_Enumeration_Maps,No_Dynamic_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-calls-in-elaboration-code}@anchor{1ec}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
*************** restriction, the compiler can assume tha
*** 13150,13156 ****
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1ec}
  @subsection No_Enumeration_Maps
  
  
--- 13258,13264 ----
  in a task can be executed at elaboration time.
  
  @node No_Enumeration_Maps,No_Exception_Handlers,No_Entry_Calls_In_Elaboration_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-enumeration-maps}@anchor{1ed}
  @subsection No_Enumeration_Maps
  
  
*************** enumeration maps are used (that is Image
*** 13161,13167 ****
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1ed}
  @subsection No_Exception_Handlers
  
  
--- 13269,13275 ----
  to enumeration types).
  
  @node No_Exception_Handlers,No_Exception_Propagation,No_Enumeration_Maps,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-handlers}@anchor{1ee}
  @subsection No_Exception_Handlers
  
  
*************** the raise statement generated by the com
*** 13186,13192 ****
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1ee}
  @subsection No_Exception_Propagation
  
  
--- 13294,13300 ----
  represents the line number in the source program where the raise occurs.
  
  @node No_Exception_Propagation,No_Exception_Registration,No_Exception_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-propagation}@anchor{1ef}
  @subsection No_Exception_Propagation
  
  
*************** the package GNAT.Current_Exception is no
*** 13203,13209 ****
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1ef}
  @subsection No_Exception_Registration
  
  
--- 13311,13317 ----
  statements (raise with no operand) are not permitted.
  
  @node No_Exception_Registration,No_Exceptions,No_Exception_Propagation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exception-registration}@anchor{1f0}
  @subsection No_Exception_Registration
  
  
*************** code is simplified by omitting the other
*** 13217,13223 ****
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1f0}
  @subsection No_Exceptions
  
  
--- 13325,13331 ----
  of exceptions when they are declared.
  
  @node No_Exceptions,No_Finalization,No_Exception_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-exceptions}@anchor{1f1}
  @subsection No_Exceptions
  
  
*************** raise statements and no exception handle
*** 13228,13234 ****
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1f1}
  @subsection No_Finalization
  
  
--- 13336,13342 ----
  generation of language-defined run-time checks.
  
  @node No_Finalization,No_Fixed_Point,No_Exceptions,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-finalization}@anchor{1f2}
  @subsection No_Finalization
  
  
*************** object or a nested component, either dec
*** 13269,13275 ****
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1f2}
  @subsection No_Fixed_Point
  
  
--- 13377,13383 ----
  deallocation of a controlled object no longer finalizes its contents.
  
  @node No_Fixed_Point,No_Floating_Point,No_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-fixed-point}@anchor{1f3}
  @subsection No_Fixed_Point
  
  
*************** deallocation of a controlled object no l
*** 13279,13285 ****
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1f3}
  @subsection No_Floating_Point
  
  
--- 13387,13393 ----
  occurrences of fixed point types and operations.
  
  @node No_Floating_Point,No_Implicit_Conditionals,No_Fixed_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-floating-point}@anchor{1f4}
  @subsection No_Floating_Point
  
  
*************** occurrences of fixed point types and ope
*** 13289,13295 ****
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1f4}
  @subsection No_Implicit_Conditionals
  
  
--- 13397,13403 ----
  occurrences of floating point types and operations.
  
  @node No_Implicit_Conditionals,No_Implicit_Dynamic_Code,No_Floating_Point,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-conditionals}@anchor{1f5}
  @subsection No_Implicit_Conditionals
  
  
*************** normal manner. Constructs generating imp
*** 13305,13311 ****
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1f5}
  @subsection No_Implicit_Dynamic_Code
  
  
--- 13413,13419 ----
  of composite objects and the Max/Min attributes.
  
  @node No_Implicit_Dynamic_Code,No_Implicit_Heap_Allocations,No_Implicit_Conditionals,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-dynamic-code}@anchor{1f6}
  @subsection No_Implicit_Dynamic_Code
  
  
*************** foreign-language convention; primitive o
*** 13335,13341 ****
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1f6}
  @subsection No_Implicit_Heap_Allocations
  
  
--- 13443,13449 ----
  types.
  
  @node No_Implicit_Heap_Allocations,No_Implicit_Protected_Object_Allocations,No_Implicit_Dynamic_Code,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-heap-allocations}@anchor{1f7}
  @subsection No_Implicit_Heap_Allocations
  
  
*************** types.
*** 13344,13350 ****
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1f7}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
--- 13452,13458 ----
  [RM D.7] No constructs are allowed to cause implicit heap allocation.
  
  @node No_Implicit_Protected_Object_Allocations,No_Implicit_Task_Allocations,No_Implicit_Heap_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-protected-object-allocations}@anchor{1f8}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
*************** types.
*** 13354,13360 ****
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1f8}
  @subsection No_Implicit_Task_Allocations
  
  
--- 13462,13468 ----
  protected object.
  
  @node No_Implicit_Task_Allocations,No_Initialize_Scalars,No_Implicit_Protected_Object_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-task-allocations}@anchor{1f9}
  @subsection No_Implicit_Task_Allocations
  
  
*************** protected object.
*** 13363,13369 ****
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1f9}
  @subsection No_Initialize_Scalars
  
  
--- 13471,13477 ----
  [GNAT] No constructs are allowed to cause implicit heap allocation of a task.
  
  @node No_Initialize_Scalars,No_IO,No_Implicit_Task_Allocations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-initialize-scalars}@anchor{1fa}
  @subsection No_Initialize_Scalars
  
  
*************** code, and in particular eliminates dummy
*** 13375,13381 ****
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1fa}
  @subsection No_IO
  
  
--- 13483,13489 ----
  are otherwise generated for some record and array types.
  
  @node No_IO,No_Local_Allocators,No_Initialize_Scalars,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-io}@anchor{1fb}
  @subsection No_IO
  
  
*************** dependences on any of the library units
*** 13386,13392 ****
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1fb}
  @subsection No_Local_Allocators
  
  
--- 13494,13500 ----
  Text_IO, Wide_Text_IO, Wide_Wide_Text_IO, or Stream_IO.
  
  @node No_Local_Allocators,No_Local_Protected_Objects,No_IO,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-allocators}@anchor{1fc}
  @subsection No_Local_Allocators
  
  
*************** occurrences of an allocator in subprogra
*** 13397,13403 ****
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1fc}
  @subsection No_Local_Protected_Objects
  
  
--- 13505,13511 ----
  and entry bodies.
  
  @node No_Local_Protected_Objects,No_Local_Tagged_Types,No_Local_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-protected-objects}@anchor{1fd}
  @subsection No_Local_Protected_Objects
  
  
*************** and entry bodies.
*** 13407,13413 ****
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1fd}
  @subsection No_Local_Tagged_Types
  
  
--- 13515,13521 ----
  only declared at the library level.
  
  @node No_Local_Tagged_Types,No_Local_Timing_Events,No_Local_Protected_Objects,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-tagged-types}@anchor{1fe}
  @subsection No_Local_Tagged_Types
  
  
*************** only declared at the library level.
*** 13417,13423 ****
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1fe}
  @subsection No_Local_Timing_Events
  
  
--- 13525,13531 ----
  declared at the library level.
  
  @node No_Local_Timing_Events,No_Long_Long_Integers,No_Local_Tagged_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-local-timing-events}@anchor{1ff}
  @subsection No_Local_Timing_Events
  
  
*************** declared at the library level.
*** 13427,13433 ****
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{1ff}
  @subsection No_Long_Long_Integers
  
  
--- 13535,13541 ----
  declared at the library level.
  
  @node No_Long_Long_Integers,No_Multiple_Elaboration,No_Local_Timing_Events,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-long-long-integers}@anchor{200}
  @subsection No_Long_Long_Integers
  
  
*************** implicit base type is Long_Long_Integer,
*** 13439,13445 ****
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{200}
  @subsection No_Multiple_Elaboration
  
  
--- 13547,13553 ----
  Long_Integer’Size.
  
  @node No_Multiple_Elaboration,No_Nested_Finalization,No_Long_Long_Integers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-multiple-elaboration}@anchor{201}
  @subsection No_Multiple_Elaboration
  
  
*************** possible, including non-Ada main program
*** 13455,13461 ****
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{201}
  @subsection No_Nested_Finalization
  
  
--- 13563,13569 ----
  permitted and will be diagnosed by the binder.
  
  @node No_Nested_Finalization,No_Protected_Type_Allocators,No_Multiple_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-nested-finalization}@anchor{202}
  @subsection No_Nested_Finalization
  
  
*************** permitted and will be diagnosed by the b
*** 13464,13470 ****
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{202}
  @subsection No_Protected_Type_Allocators
  
  
--- 13572,13578 ----
  [RM D.7] All objects requiring finalization are declared at the library level.
  
  @node No_Protected_Type_Allocators,No_Protected_Types,No_Nested_Finalization,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-type-allocators}@anchor{203}
  @subsection No_Protected_Type_Allocators
  
  
*************** permitted and will be diagnosed by the b
*** 13474,13480 ****
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{203}
  @subsection No_Protected_Types
  
  
--- 13582,13588 ----
  expressions that attempt to allocate protected objects.
  
  @node No_Protected_Types,No_Recursion,No_Protected_Type_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-protected-types}@anchor{204}
  @subsection No_Protected_Types
  
  
*************** expressions that attempt to allocate pro
*** 13484,13490 ****
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{204}
  @subsection No_Recursion
  
  
--- 13592,13598 ----
  declarations of protected types or protected objects.
  
  @node No_Recursion,No_Reentrancy,No_Protected_Types,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-recursion}@anchor{205}
  @subsection No_Recursion
  
  
*************** declarations of protected types or prote
*** 13494,13500 ****
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{205}
  @subsection No_Reentrancy
  
  
--- 13602,13608 ----
  part of its execution.
  
  @node No_Reentrancy,No_Relative_Delay,No_Recursion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-reentrancy}@anchor{206}
  @subsection No_Reentrancy
  
  
*************** part of its execution.
*** 13504,13510 ****
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{206}
  @subsection No_Relative_Delay
  
  
--- 13612,13618 ----
  two tasks at the same time.
  
  @node No_Relative_Delay,No_Requeue_Statements,No_Reentrancy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-relative-delay}@anchor{207}
  @subsection No_Relative_Delay
  
  
*************** relative statements and prevents express
*** 13515,13521 ****
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{207}
  @subsection No_Requeue_Statements
  
  
--- 13623,13629 ----
  appearing in source code.
  
  @node No_Requeue_Statements,No_Secondary_Stack,No_Relative_Delay,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-requeue-statements}@anchor{208}
  @subsection No_Requeue_Statements
  
  
*************** compatibility purposes (and a warning wi
*** 13533,13539 ****
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{208}
  @subsection No_Secondary_Stack
  
  
--- 13641,13647 ----
  warnings on oNobsolescent features are activated).
  
  @node No_Secondary_Stack,No_Select_Statements,No_Requeue_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-secondary-stack}@anchor{209}
  @subsection No_Secondary_Stack
  
  
*************** stack is used to implement functions ret
*** 13546,13552 ****
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{209}
  @subsection No_Select_Statements
  
  
--- 13654,13660 ----
  secondary stacks for tasks (excluding the environment task) at run time.
  
  @node No_Select_Statements,No_Specific_Termination_Handlers,No_Secondary_Stack,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-select-statements}@anchor{20a}
  @subsection No_Select_Statements
  
  
*************** secondary stacks for tasks (excluding th
*** 13556,13562 ****
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{20a}
  @subsection No_Specific_Termination_Handlers
  
  
--- 13664,13670 ----
  kind are permitted, that is the keyword @code{select} may not appear.
  
  @node No_Specific_Termination_Handlers,No_Specification_of_Aspect,No_Select_Statements,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specific-termination-handlers}@anchor{20b}
  @subsection No_Specific_Termination_Handlers
  
  
*************** kind are permitted, that is the keyword
*** 13566,13572 ****
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{20b}
  @subsection No_Specification_of_Aspect
  
  
--- 13674,13680 ----
  or to Ada.Task_Termination.Specific_Handler.
  
  @node No_Specification_of_Aspect,No_Standard_Allocators_After_Elaboration,No_Specific_Termination_Handlers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-specification-of-aspect}@anchor{20c}
  @subsection No_Specification_of_Aspect
  
  
*************** specification, attribute definition clau
*** 13577,13583 ****
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{20c}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
--- 13685,13691 ----
  given aspect.
  
  @node No_Standard_Allocators_After_Elaboration,No_Standard_Storage_Pools,No_Specification_of_Aspect,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-allocators-after-elaboration}@anchor{20d}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
*************** library items of the partition has compl
*** 13589,13595 ****
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{20d}
  @subsection No_Standard_Storage_Pools
  
  
--- 13697,13703 ----
  is raised.
  
  @node No_Standard_Storage_Pools,No_Stream_Optimizations,No_Standard_Allocators_After_Elaboration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-standard-storage-pools}@anchor{20e}
  @subsection No_Standard_Storage_Pools
  
  
*************** have an explicit Storage_Pool attribute
*** 13601,13607 ****
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{20e}
  @subsection No_Stream_Optimizations
  
  
--- 13709,13715 ----
  user-defined storage pool.
  
  @node No_Stream_Optimizations,No_Streams,No_Standard_Storage_Pools,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-stream-optimizations}@anchor{20f}
  @subsection No_Stream_Optimizations
  
  
*************** due to their superior performance. When
*** 13614,13620 ****
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{20f}
  @subsection No_Streams
  
  
--- 13722,13728 ----
  compiler performs all IO operations on a per-character basis.
  
  @node No_Streams,No_Tagged_Type_Registration,No_Stream_Optimizations,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-streams}@anchor{210}
  @subsection No_Streams
  
  
*************** configuration pragmas to avoid exposing
*** 13641,13647 ****
  entire partition.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{210}
  @subsection No_Tagged_Type_Registration
  
  
--- 13749,13755 ----
  entire partition.
  
  @node No_Tagged_Type_Registration,No_Task_Allocators,No_Streams,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tagged-type-registration}@anchor{211}
  @subsection No_Tagged_Type_Registration
  
  
*************** are declared. This restriction may be ne
*** 13656,13662 ****
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{211}
  @subsection No_Task_Allocators
  
  
--- 13764,13770 ----
  the No_Elaboration_Code restriction.
  
  @node No_Task_Allocators,No_Task_At_Interrupt_Priority,No_Tagged_Type_Registration,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-allocators}@anchor{212}
  @subsection No_Task_Allocators
  
  
*************** the No_Elaboration_Code restriction.
*** 13666,13672 ****
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{212}
  @subsection No_Task_At_Interrupt_Priority
  
  
--- 13774,13780 ----
  or types containing task subcomponents.
  
  @node No_Task_At_Interrupt_Priority,No_Task_Attributes_Package,No_Task_Allocators,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-at-interrupt-priority}@anchor{213}
  @subsection No_Task_At_Interrupt_Priority
  
  
*************** a consequence, the tasks are always crea
*** 13678,13684 ****
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{213}
  @subsection No_Task_Attributes_Package
  
  
--- 13786,13792 ----
  that an interrupt priority.
  
  @node No_Task_Attributes_Package,No_Task_Hierarchy,No_Task_At_Interrupt_Priority,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-attributes-package}@anchor{214}
  @subsection No_Task_Attributes_Package
  
  
*************** compatibility purposes (and a warning wi
*** 13695,13701 ****
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{214}
  @subsection No_Task_Hierarchy
  
  
--- 13803,13809 ----
  warnings on obsolescent features are activated).
  
  @node No_Task_Hierarchy,No_Task_Termination,No_Task_Attributes_Package,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-hierarchy}@anchor{215}
  @subsection No_Task_Hierarchy
  
  
*************** warnings on obsolescent features are act
*** 13705,13711 ****
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{215}
  @subsection No_Task_Termination
  
  
--- 13813,13819 ----
  directly on the environment task of the partition.
  
  @node No_Task_Termination,No_Tasking,No_Task_Hierarchy,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-task-termination}@anchor{216}
  @subsection No_Task_Termination
  
  
*************** directly on the environment task of the
*** 13714,13720 ****
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{216}
  @subsection No_Tasking
  
  
--- 13822,13828 ----
  [RM D.7] Tasks that terminate are erroneous.
  
  @node No_Tasking,No_Terminate_Alternatives,No_Task_Termination,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-tasking}@anchor{217}
  @subsection No_Tasking
  
  
*************** and cause an error message to be output
*** 13727,13733 ****
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{217}
  @subsection No_Terminate_Alternatives
  
  
--- 13835,13841 ----
  binder.
  
  @node No_Terminate_Alternatives,No_Unchecked_Access,No_Tasking,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-terminate-alternatives}@anchor{218}
  @subsection No_Terminate_Alternatives
  
  
*************** binder.
*** 13736,13742 ****
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{218}
  @subsection No_Unchecked_Access
  
  
--- 13844,13850 ----
  [RM D.7] There are no selective accepts with terminate alternatives.
  
  @node No_Unchecked_Access,No_Unchecked_Conversion,No_Terminate_Alternatives,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-access}@anchor{219}
  @subsection No_Unchecked_Access
  
  
*************** binder.
*** 13746,13752 ****
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{219}
  @subsection No_Unchecked_Conversion
  
  
--- 13854,13860 ----
  occurrences of the Unchecked_Access attribute.
  
  @node No_Unchecked_Conversion,No_Unchecked_Deallocation,No_Unchecked_Access,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-conversion}@anchor{21a}
  @subsection No_Unchecked_Conversion
  
  
*************** occurrences of the Unchecked_Access attr
*** 13756,13762 ****
  dependences on the predefined generic function Unchecked_Conversion.
  
  @node No_Unchecked_Deallocation,No_Use_Of_Attribute,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{21a}
  @subsection No_Unchecked_Deallocation
  
  
--- 13864,13870 ----
  dependences on the predefined generic function Unchecked_Conversion.
  
  @node No_Unchecked_Deallocation,No_Use_Of_Attribute,No_Unchecked_Conversion,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-unchecked-deallocation}@anchor{21b}
  @subsection No_Unchecked_Deallocation
  
  
*************** dependences on the predefined generic fu
*** 13766,13772 ****
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
  @node No_Use_Of_Attribute,No_Use_Of_Entity,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-attribute}@anchor{21b}
  @subsection No_Use_Of_Attribute
  
  
--- 13874,13880 ----
  dependences on the predefined generic procedure Unchecked_Deallocation.
  
  @node No_Use_Of_Attribute,No_Use_Of_Entity,No_Unchecked_Deallocation,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-attribute}@anchor{21c}
  @subsection No_Use_Of_Attribute
  
  
*************** dependences on the predefined generic pr
*** 13776,13782 ****
  earlier versions of Ada.
  
  @node No_Use_Of_Entity,No_Use_Of_Pragma,No_Use_Of_Attribute,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{21c}
  @subsection No_Use_Of_Entity
  
  
--- 13884,13890 ----
  earlier versions of Ada.
  
  @node No_Use_Of_Entity,No_Use_Of_Pragma,No_Use_Of_Attribute,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-entity}@anchor{21d}
  @subsection No_Use_Of_Entity
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13796,13802 ****
  @end example
  
  @node No_Use_Of_Pragma,Pure_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-pragma}@anchor{21d}
  @subsection No_Use_Of_Pragma
  
  
--- 13904,13910 ----
  @end example
  
  @node No_Use_Of_Pragma,Pure_Barriers,No_Use_Of_Entity,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-use-of-pragma}@anchor{21e}
  @subsection No_Use_Of_Pragma
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13806,13812 ****
  earlier versions of Ada.
  
  @node Pure_Barriers,Simple_Barriers,No_Use_Of_Pragma,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{21e}
  @subsection Pure_Barriers
  
  
--- 13914,13920 ----
  earlier versions of Ada.
  
  @node Pure_Barriers,Simple_Barriers,No_Use_Of_Pragma,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions pure-barriers}@anchor{21f}
  @subsection Pure_Barriers
  
  
*************** but still ensures absence of side effect
*** 13857,13863 ****
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{21f}
  @subsection Simple_Barriers
  
  
--- 13965,13971 ----
  during the evaluation of the barriers.
  
  @node Simple_Barriers,Static_Priorities,Pure_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions simple-barriers}@anchor{220}
  @subsection Simple_Barriers
  
  
*************** compatibility purposes (and a warning wi
*** 13876,13882 ****
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{220}
  @subsection Static_Priorities
  
  
--- 13984,13990 ----
  warnings on obsolescent features are activated).
  
  @node Static_Priorities,Static_Storage_Size,Simple_Barriers,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-priorities}@anchor{221}
  @subsection Static_Priorities
  
  
*************** are static, and that there are no depend
*** 13887,13893 ****
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{221}
  @subsection Static_Storage_Size
  
  
--- 13995,14001 ----
  @code{Ada.Dynamic_Priorities}.
  
  @node Static_Storage_Size,,Static_Priorities,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-storage-size}@anchor{222}
  @subsection Static_Storage_Size
  
  
*************** are static, and that there are no depend
*** 13897,13903 ****
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{222}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{223}
  @section Program Unit Level Restrictions
  
  
--- 14005,14011 ----
  in a Storage_Size pragma or attribute definition clause is static.
  
  @node Program Unit Level Restrictions,,Partition-Wide Restrictions,Standard and Implementation Defined Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions id3}@anchor{223}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{224}
  @section Program Unit Level Restrictions
  
  
*************** other compilation units in the partition
*** 13928,13934 ****
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{224}
  @subsection No_Elaboration_Code
  
  
--- 14036,14042 ----
  @end menu
  
  @node No_Elaboration_Code,No_Dynamic_Accessibility_Checks,,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-elaboration-code}@anchor{225}
  @subsection No_Elaboration_Code
  
  
*************** associated with the unit. This counter i
*** 13984,13990 ****
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{225}
  @subsection No_Dynamic_Accessibility_Checks
  
  
--- 14092,14098 ----
  before elaboration and to control multiple elaboration attempts.
  
  @node No_Dynamic_Accessibility_Checks,No_Dynamic_Sized_Objects,No_Elaboration_Code,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-accessibility-checks}@anchor{226}
  @subsection No_Dynamic_Accessibility_Checks
  
  
*************** In all other cases, the level of T is as
*** 14033,14039 ****
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{226}
  @subsection No_Dynamic_Sized_Objects
  
  
--- 14141,14147 ----
  @end itemize
  
  @node No_Dynamic_Sized_Objects,No_Entry_Queue,No_Dynamic_Accessibility_Checks,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-dynamic-sized-objects}@anchor{227}
  @subsection No_Dynamic_Sized_Objects
  
  
*************** access discriminants. It is often a good
*** 14051,14057 ****
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{227}
  @subsection No_Entry_Queue
  
  
--- 14159,14165 ----
  with No_Secondary_Stack.
  
  @node No_Entry_Queue,No_Implementation_Aspect_Specifications,No_Dynamic_Sized_Objects,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-entry-queue}@anchor{228}
  @subsection No_Entry_Queue
  
  
*************** checked at compile time.  A program exec
*** 14064,14070 ****
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{228}
  @subsection No_Implementation_Aspect_Specifications
  
  
--- 14172,14178 ----
  is made to queue a second task on such an entry.
  
  @node No_Implementation_Aspect_Specifications,No_Implementation_Attributes,No_Entry_Queue,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-aspect-specifications}@anchor{229}
  @subsection No_Implementation_Aspect_Specifications
  
  
*************** GNAT-defined aspects are present.  With
*** 14075,14081 ****
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{229}
  @subsection No_Implementation_Attributes
  
  
--- 14183,14189 ----
  aspects that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Attributes,No_Implementation_Identifiers,No_Implementation_Aspect_Specifications,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-attributes}@anchor{22a}
  @subsection No_Implementation_Attributes
  
  
*************** attributes that can be used are those de
*** 14087,14093 ****
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{22a}
  @subsection No_Implementation_Identifiers
  
  
--- 14195,14201 ----
  Manual.
  
  @node No_Implementation_Identifiers,No_Implementation_Pragmas,No_Implementation_Attributes,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-identifiers}@anchor{22b}
  @subsection No_Implementation_Identifiers
  
  
*************** implementation-defined identifiers (mark
*** 14098,14104 ****
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{22b}
  @subsection No_Implementation_Pragmas
  
  
--- 14206,14212 ----
  occur within language-defined packages.
  
  @node No_Implementation_Pragmas,No_Implementation_Restrictions,No_Implementation_Identifiers,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-pragmas}@anchor{22c}
  @subsection No_Implementation_Pragmas
  
  
*************** GNAT-defined pragmas are present.  With
*** 14109,14115 ****
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{22c}
  @subsection No_Implementation_Restrictions
  
  
--- 14217,14223 ----
  pragmas that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Restrictions,No_Implementation_Units,No_Implementation_Pragmas,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-restrictions}@anchor{22d}
  @subsection No_Implementation_Restrictions
  
  
*************** are present.  With this restriction, the
*** 14121,14127 ****
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{22d}
  @subsection No_Implementation_Units
  
  
--- 14229,14235 ----
  that can be used are those defined in the Ada Reference Manual.
  
  @node No_Implementation_Units,No_Implicit_Aliasing,No_Implementation_Restrictions,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implementation-units}@anchor{22e}
  @subsection No_Implementation_Units
  
  
*************** mention in the context clause of any imp
*** 14132,14138 ****
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{22e}
  @subsection No_Implicit_Aliasing
  
  
--- 14240,14246 ----
  of packages Ada, Interfaces, or System.
  
  @node No_Implicit_Aliasing,No_Implicit_Loops,No_Implementation_Units,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-aliasing}@anchor{22f}
  @subsection No_Implicit_Aliasing
  
  
*************** to be aliased, and in such cases, it can
*** 14147,14153 ****
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{22f}
  @subsection No_Implicit_Loops
  
  
--- 14255,14261 ----
  the standard attribute Unchecked_Access which is preferable.
  
  @node No_Implicit_Loops,No_Obsolescent_Features,No_Implicit_Aliasing,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-implicit-loops}@anchor{230}
  @subsection No_Implicit_Loops
  
  
*************** arrays larger than about 5000 scalar com
*** 14164,14170 ****
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{230}
  @subsection No_Obsolescent_Features
  
  
--- 14272,14278 ----
  is set in the spec of a package, it will not apply to its body.
  
  @node No_Obsolescent_Features,No_Wide_Characters,No_Implicit_Loops,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-obsolescent-features}@anchor{231}
  @subsection No_Obsolescent_Features
  
  
*************** is set in the spec of a package, it will
*** 14174,14180 ****
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{231}
  @subsection No_Wide_Characters
  
  
--- 14282,14288 ----
  features are used, as defined in Annex J of the Ada Reference Manual.
  
  @node No_Wide_Characters,Static_Dispatch_Tables,No_Obsolescent_Features,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions no-wide-characters}@anchor{232}
  @subsection No_Wide_Characters
  
  
*************** appear in the program (that is literals
*** 14188,14194 ****
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{232}
  @subsection Static_Dispatch_Tables
  
  
--- 14296,14302 ----
  type @code{Character}).
  
  @node Static_Dispatch_Tables,SPARK_05,No_Wide_Characters,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions static-dispatch-tables}@anchor{233}
  @subsection Static_Dispatch_Tables
  
  
*************** type @code{Character}).
*** 14198,14204 ****
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{233}
  @subsection SPARK_05
  
  
--- 14306,14312 ----
  associated with dispatch tables can be placed in read-only memory.
  
  @node SPARK_05,,Static_Dispatch_Tables,Program Unit Level Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions spark-05}@anchor{234}
  @subsection SPARK_05
  
  
*************** gnatprove -P project.gpr --mode=check_al
*** 14221,14227 ****
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{234}@anchor{gnat_rm/implementation_advice id1}@anchor{235}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
--- 14329,14335 ----
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{235}@anchor{gnat_rm/implementation_advice id1}@anchor{236}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
*************** case the text describes what GNAT does a
*** 14319,14325 ****
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{236}
  @section RM 1.1.3(20): Error Detection
  
  
--- 14427,14433 ----
  @end menu
  
  @node RM 1 1 3 20 Error Detection,RM 1 1 3 31 Child Units,,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-20-error-detection}@anchor{237}
  @section RM 1.1.3(20): Error Detection
  
  
*************** or diagnosed at compile time.
*** 14336,14342 ****
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{237}
  @section RM 1.1.3(31): Child Units
  
  
--- 14444,14450 ----
  @geindex Child Units
  
  @node RM 1 1 3 31 Child Units,RM 1 1 5 12 Bounded Errors,RM 1 1 3 20 Error Detection,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-3-31-child-units}@anchor{238}
  @section RM 1.1.3(31): Child Units
  
  
*************** Followed.
*** 14352,14358 ****
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{238}
  @section RM 1.1.5(12): Bounded Errors
  
  
--- 14460,14466 ----
  @geindex Bounded errors
  
  @node RM 1 1 5 12 Bounded Errors,RM 2 8 16 Pragmas,RM 1 1 3 31 Child Units,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-1-1-5-12-bounded-errors}@anchor{239}
  @section RM 1.1.5(12): Bounded Errors
  
  
*************** runtime.
*** 14369,14375 ****
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{239}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{23a}
  @section RM 2.8(16): Pragmas
  
  
--- 14477,14483 ----
  @geindex Pragmas
  
  @node RM 2 8 16 Pragmas,RM 2 8 17-19 Pragmas,RM 1 1 5 12 Bounded Errors,Implementation Advice
! @anchor{gnat_rm/implementation_advice id2}@anchor{23a}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{23b}
  @section RM 2.8(16): Pragmas
  
  
*************** that this advice not be followed.  For d
*** 14482,14488 ****
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{23b}
  @section RM 2.8(17-19): Pragmas
  
  
--- 14590,14596 ----
  @ref{7,,Implementation Defined Pragmas}.
  
  @node RM 2 8 17-19 Pragmas,RM 3 5 2 5 Alternative Character Sets,RM 2 8 16 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-2-8-17-19-pragmas}@anchor{23c}
  @section RM 2.8(17-19): Pragmas
  
  
*************** replacing @code{library_items}.”
*** 14503,14516 ****
  @end itemize
  @end quotation
  
! See @ref{23a,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{23c}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
--- 14611,14624 ----
  @end itemize
  @end quotation
  
! See @ref{23b,,RM 2.8(16); Pragmas}.
  
  @geindex Character Sets
  
  @geindex Alternative Character Sets
  
  @node RM 3 5 2 5 Alternative Character Sets,RM 3 5 4 28 Integer Types,RM 2 8 17-19 Pragmas,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-2-5-alternative-character-sets}@anchor{23d}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
*************** there is no such restriction.
*** 14538,14544 ****
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{23d}
  @section RM 3.5.4(28): Integer Types
  
  
--- 14646,14652 ----
  @geindex Integer types
  
  @node RM 3 5 4 28 Integer Types,RM 3 5 4 29 Integer Types,RM 3 5 2 5 Alternative Character Sets,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-28-integer-types}@anchor{23e}
  @section RM 3.5.4(28): Integer Types
  
  
*************** are supported for convenient interface t
*** 14557,14563 ****
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{23e}
  @section RM 3.5.4(29): Integer Types
  
  
--- 14665,14671 ----
  types of the machine are easily available.
  
  @node RM 3 5 4 29 Integer Types,RM 3 5 5 8 Enumeration Values,RM 3 5 4 28 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-4-29-integer-types}@anchor{23f}
  @section RM 3.5.4(29): Integer Types
  
  
*************** Followed.
*** 14573,14579 ****
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{23f}
  @section RM 3.5.5(8): Enumeration Values
  
  
--- 14681,14687 ----
  @geindex Enumeration values
  
  @node RM 3 5 5 8 Enumeration Values,RM 3 5 7 17 Float Types,RM 3 5 4 29 Integer Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-5-8-enumeration-values}@anchor{240}
  @section RM 3.5.5(8): Enumeration Values
  
  
*************** Followed.
*** 14593,14599 ****
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{240}
  @section RM 3.5.7(17): Float Types
  
  
--- 14701,14707 ----
  @geindex Float types
  
  @node RM 3 5 7 17 Float Types,RM 3 6 2 11 Multidimensional Arrays,RM 3 5 5 8 Enumeration Values,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-5-7-17-float-types}@anchor{241}
  @section RM 3.5.7(17): Float Types
  
  
*************** is a software rather than a hardware for
*** 14623,14629 ****
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{241}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
--- 14731,14737 ----
  @geindex multidimensional
  
  @node RM 3 6 2 11 Multidimensional Arrays,RM 9 6 30-31 Duration’Small,RM 3 5 7 17 Float Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-3-6-2-11-multidimensional-arrays}@anchor{242}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
*************** Followed.
*** 14641,14647 ****
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{242}
  @section RM 9.6(30-31): Duration’Small
  
  
--- 14749,14755 ----
  @geindex Duration'Small
  
  @node RM 9 6 30-31 Duration’Small,RM 10 2 1 12 Consistent Representation,RM 3 6 2 11 Multidimensional Arrays,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-9-6-30-31-duration-small}@anchor{243}
  @section RM 9.6(30-31): Duration’Small
  
  
*************** it need not be the same time base as use
*** 14662,14668 ****
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{243}
  @section RM 10.2.1(12): Consistent Representation
  
  
--- 14770,14776 ----
  Followed.
  
  @node RM 10 2 1 12 Consistent Representation,RM 11 4 1 19 Exception Information,RM 9 6 30-31 Duration’Small,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-10-2-1-12-consistent-representation}@anchor{244}
  @section RM 10.2.1(12): Consistent Representation
  
  
*************** advice without severely impacting effici
*** 14684,14690 ****
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{244}
  @section RM 11.4.1(19): Exception Information
  
  
--- 14792,14798 ----
  @geindex Exception information
  
  @node RM 11 4 1 19 Exception Information,RM 11 5 28 Suppression of Checks,RM 10 2 1 12 Consistent Representation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-4-1-19-exception-information}@anchor{245}
  @section RM 11.4.1(19): Exception Information
  
  
*************** Pragma @code{Discard_Names}.
*** 14715,14721 ****
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{245}
  @section RM 11.5(28): Suppression of Checks
  
  
--- 14823,14829 ----
  @geindex suppression of
  
  @node RM 11 5 28 Suppression of Checks,RM 13 1 21-24 Representation Clauses,RM 11 4 1 19 Exception Information,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-11-5-28-suppression-of-checks}@anchor{246}
  @section RM 11.5(28): Suppression of Checks
  
  
*************** Followed.
*** 14730,14736 ****
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{246}
  @section RM 13.1 (21-24): Representation Clauses
  
  
--- 14838,14844 ----
  @geindex Representation clauses
  
  @node RM 13 1 21-24 Representation Clauses,RM 13 2 6-8 Packed Types,RM 11 5 28 Suppression of Checks,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-1-21-24-representation-clauses}@anchor{247}
  @section RM 13.1 (21-24): Representation Clauses
  
  
*************** Followed.
*** 14782,14788 ****
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{247}
  @section RM 13.2(6-8): Packed Types
  
  
--- 14890,14896 ----
  @geindex Packed types
  
  @node RM 13 2 6-8 Packed Types,RM 13 3 14-19 Address Clauses,RM 13 1 21-24 Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-2-6-8-packed-types}@anchor{248}
  @section RM 13.2(6-8): Packed Types
  
  
*************** subcomponent of the packed type.
*** 14813,14819 ****
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{248}
  @section RM 13.3(14-19): Address Clauses
  
  
--- 14921,14927 ----
  @geindex Address clauses
  
  @node RM 13 3 14-19 Address Clauses,RM 13 3 29-35 Alignment Clauses,RM 13 2 6-8 Packed Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-14-19-address-clauses}@anchor{249}
  @section RM 13.3(14-19): Address Clauses
  
  
*************** Followed.
*** 14866,14872 ****
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{249}
  @section RM 13.3(29-35): Alignment Clauses
  
  
--- 14974,14980 ----
  @geindex Alignment clauses
  
  @node RM 13 3 29-35 Alignment Clauses,RM 13 3 42-43 Size Clauses,RM 13 3 14-19 Address Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-29-35-alignment-clauses}@anchor{24a}
  @section RM 13.3(29-35): Alignment Clauses
  
  
*************** Followed.
*** 14923,14929 ****
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{24a}
  @section RM 13.3(42-43): Size Clauses
  
  
--- 15031,15037 ----
  @geindex Size clauses
  
  @node RM 13 3 42-43 Size Clauses,RM 13 3 50-56 Size Clauses,RM 13 3 29-35 Alignment Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-42-43-size-clauses}@anchor{24b}
  @section RM 13.3(42-43): Size Clauses
  
  
*************** object’s @code{Alignment} (if the @cod
*** 14941,14947 ****
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{24b}
  @section RM 13.3(50-56): Size Clauses
  
  
--- 15049,15055 ----
  Followed.
  
  @node RM 13 3 50-56 Size Clauses,RM 13 3 71-73 Component Size Clauses,RM 13 3 42-43 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-50-56-size-clauses}@anchor{24c}
  @section RM 13.3(50-56): Size Clauses
  
  
*************** Followed.
*** 14992,14998 ****
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{24c}
  @section RM 13.3(71-73): Component Size Clauses
  
  
--- 15100,15106 ----
  @geindex Component_Size clauses
  
  @node RM 13 3 71-73 Component Size Clauses,RM 13 4 9-10 Enumeration Representation Clauses,RM 13 3 50-56 Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-3-71-73-component-size-clauses}@anchor{24d}
  @section RM 13.3(71-73): Component Size Clauses
  
  
*************** Followed.
*** 15026,15032 ****
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{24d}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
--- 15134,15140 ----
  @geindex enumeration
  
  @node RM 13 4 9-10 Enumeration Representation Clauses,RM 13 5 1 17-22 Record Representation Clauses,RM 13 3 71-73 Component Size Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-4-9-10-enumeration-representation-clauses}@anchor{24e}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
*************** Followed.
*** 15048,15054 ****
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{24e}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
--- 15156,15162 ----
  @geindex records
  
  @node RM 13 5 1 17-22 Record Representation Clauses,RM 13 5 2 5 Storage Place Attributes,RM 13 4 9-10 Enumeration Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-1-17-22-record-representation-clauses}@anchor{24f}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
*************** and all mentioned features are implement
*** 15108,15114 ****
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{24f}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
--- 15216,15222 ----
  @geindex Storage place attributes
  
  @node RM 13 5 2 5 Storage Place Attributes,RM 13 5 3 7-8 Bit Ordering,RM 13 5 1 17-22 Record Representation Clauses,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-2-5-storage-place-attributes}@anchor{250}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
*************** Followed.  There are no such components
*** 15128,15134 ****
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{250}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
--- 15236,15242 ----
  @geindex Bit ordering
  
  @node RM 13 5 3 7-8 Bit Ordering,RM 13 7 37 Address as Private,RM 13 5 2 5 Storage Place Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-5-3-7-8-bit-ordering}@anchor{251}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
*************** Followed.
*** 15146,15152 ****
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{251}
  @section RM 13.7(37): Address as Private
  
  
--- 15254,15260 ----
  @geindex as private type
  
  @node RM 13 7 37 Address as Private,RM 13 7 1 16 Address Operations,RM 13 5 3 7-8 Bit Ordering,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-37-address-as-private}@anchor{252}
  @section RM 13.7(37): Address as Private
  
  
*************** Followed.
*** 15164,15170 ****
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{252}
  @section RM 13.7.1(16): Address Operations
  
  
--- 15272,15278 ----
  @geindex operations of
  
  @node RM 13 7 1 16 Address Operations,RM 13 9 14-17 Unchecked Conversion,RM 13 7 37 Address as Private,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-7-1-16-address-operations}@anchor{253}
  @section RM 13.7.1(16): Address Operations
  
  
*************** operation raises @code{Program_Error}, s
*** 15182,15188 ****
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{253}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
--- 15290,15296 ----
  @geindex Unchecked conversion
  
  @node RM 13 9 14-17 Unchecked Conversion,RM 13 11 23-25 Implicit Heap Usage,RM 13 7 1 16 Address Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-9-14-17-unchecked-conversion}@anchor{254}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
*************** Followed.
*** 15226,15232 ****
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{254}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
--- 15334,15340 ----
  @geindex implicit
  
  @node RM 13 11 23-25 Implicit Heap Usage,RM 13 11 2 17 Unchecked Deallocation,RM 13 9 14-17 Unchecked Conversion,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-23-25-implicit-heap-usage}@anchor{255}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
*************** Followed.
*** 15277,15283 ****
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{255}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
--- 15385,15391 ----
  @geindex Unchecked deallocation
  
  @node RM 13 11 2 17 Unchecked Deallocation,RM 13 13 2 1 6 Stream Oriented Attributes,RM 13 11 23-25 Implicit Heap Usage,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-11-2-17-unchecked-deallocation}@anchor{256}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
*************** Followed.
*** 15292,15298 ****
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{256}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
--- 15400,15406 ----
  @geindex Stream oriented attributes
  
  @node RM 13 13 2 1 6 Stream Oriented Attributes,RM A 1 52 Names of Predefined Numeric Types,RM 13 11 2 17 Unchecked Deallocation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-13-13-2-1-6-stream-oriented-attributes}@anchor{257}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
*************** scalar types. This XDR alternative can b
*** 15323,15329 ****
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{257}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
--- 15431,15437 ----
  @geindex Stream oriented attributes
  
  @node RM A 1 52 Names of Predefined Numeric Types,RM A 3 2 49 Ada Characters Handling,RM 13 13 2 1 6 Stream Oriented Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-1-52-names-of-predefined-numeric-types}@anchor{258}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
*************** Followed.
*** 15341,15347 ****
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{258}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
--- 15449,15455 ----
  @geindex Ada.Characters.Handling
  
  @node RM A 3 2 49 Ada Characters Handling,RM A 4 4 106 Bounded-Length String Handling,RM A 1 52 Names of Predefined Numeric Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-3-2-49-ada-characters-handling}@anchor{259}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
*************** Followed.  GNAT provides no such localiz
*** 15358,15364 ****
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{259}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
--- 15466,15472 ----
  @geindex Bounded-length strings
  
  @node RM A 4 4 106 Bounded-Length String Handling,RM A 5 2 46-47 Random Number Generation,RM A 3 2 49 Ada Characters Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-4-4-106-bounded-length-string-handling}@anchor{25a}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
*************** Followed.  No implicit pointers or dynam
*** 15373,15379 ****
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{25a}
  @section RM A.5.2(46-47): Random Number Generation
  
  
--- 15481,15487 ----
  @geindex Random number generation
  
  @node RM A 5 2 46-47 Random Number Generation,RM A 10 7 23 Get_Immediate,RM A 4 4 106 Bounded-Length String Handling,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-5-2-46-47-random-number-generation}@anchor{25b}
  @section RM A.5.2(46-47): Random Number Generation
  
  
*************** condition here to hold true.
*** 15402,15408 ****
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{25b}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
--- 15510,15516 ----
  @geindex Get_Immediate
  
  @node RM A 10 7 23 Get_Immediate,RM A 18 Containers,RM A 5 2 46-47 Random Number Generation,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-10-7-23-get-immediate}@anchor{25c}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
*************** this functionality.
*** 15426,15432 ****
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{25c}
  @section RM A.18: @code{Containers}
  
  
--- 15534,15540 ----
  @geindex Containers
  
  @node RM A 18 Containers,RM B 1 39-41 Pragma Export,RM A 10 7 23 Get_Immediate,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-a-18-containers}@anchor{25d}
  @section RM A.18: @code{Containers}
  
  
*************** follow the implementation advice.
*** 15447,15453 ****
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{25d}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
--- 15555,15561 ----
  @geindex Export
  
  @node RM B 1 39-41 Pragma Export,RM B 2 12-13 Package Interfaces,RM A 18 Containers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-1-39-41-pragma-export}@anchor{25e}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
*************** Followed.
*** 15495,15501 ****
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{25e}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
--- 15603,15609 ----
  @geindex Interfaces
  
  @node RM B 2 12-13 Package Interfaces,RM B 3 63-71 Interfacing with C,RM B 1 39-41 Pragma Export,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-2-12-13-package-interfaces}@anchor{25f}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
*************** Followed.  GNAT provides all the package
*** 15525,15531 ****
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{25f}
  @section RM B.3(63-71): Interfacing with C
  
  
--- 15633,15639 ----
  @geindex interfacing with
  
  @node RM B 3 63-71 Interfacing with C,RM B 4 95-98 Interfacing with COBOL,RM B 2 12-13 Package Interfaces,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-3-63-71-interfacing-with-c}@anchor{260}
  @section RM B.3(63-71): Interfacing with C
  
  
*************** Followed.
*** 15613,15619 ****
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{260}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
--- 15721,15727 ----
  @geindex interfacing with
  
  @node RM B 4 95-98 Interfacing with COBOL,RM B 5 22-26 Interfacing with Fortran,RM B 3 63-71 Interfacing with C,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-4-95-98-interfacing-with-cobol}@anchor{261}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
*************** Followed.
*** 15654,15660 ****
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{261}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
--- 15762,15768 ----
  @geindex interfacing with
  
  @node RM B 5 22-26 Interfacing with Fortran,RM C 1 3-5 Access to Machine Operations,RM B 4 95-98 Interfacing with COBOL,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-b-5-22-26-interfacing-with-fortran}@anchor{262}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
*************** Followed.
*** 15705,15711 ****
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{262}
  @section RM C.1(3-5): Access to Machine Operations
  
  
--- 15813,15819 ----
  @geindex Machine operations
  
  @node RM C 1 3-5 Access to Machine Operations,RM C 1 10-16 Access to Machine Operations,RM B 5 22-26 Interfacing with Fortran,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-3-5-access-to-machine-operations}@anchor{263}
  @section RM C.1(3-5): Access to Machine Operations
  
  
*************** object that is specified as exported.”
*** 15740,15746 ****
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{263}
  @section RM C.1(10-16): Access to Machine Operations
  
  
--- 15848,15854 ----
  Followed.
  
  @node RM C 1 10-16 Access to Machine Operations,RM C 3 28 Interrupt Support,RM C 1 3-5 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-1-10-16-access-to-machine-operations}@anchor{264}
  @section RM C.1(10-16): Access to Machine Operations
  
  
*************** Followed on any target supporting such o
*** 15801,15807 ****
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{264}
  @section RM C.3(28): Interrupt Support
  
  
--- 15909,15915 ----
  @geindex Interrupt support
  
  @node RM C 3 28 Interrupt Support,RM C 3 1 20-21 Protected Procedure Handlers,RM C 1 10-16 Access to Machine Operations,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-28-interrupt-support}@anchor{265}
  @section RM C.3(28): Interrupt Support
  
  
*************** of interrupt blocking.
*** 15819,15825 ****
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{265}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
--- 15927,15933 ----
  @geindex Protected procedure handlers
  
  @node RM C 3 1 20-21 Protected Procedure Handlers,RM C 3 2 25 Package Interrupts,RM C 3 28 Interrupt Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-1-20-21-protected-procedure-handlers}@anchor{266}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
*************** Followed.  Compile time warnings are giv
*** 15845,15851 ****
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{266}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
--- 15953,15959 ----
  @geindex Interrupts
  
  @node RM C 3 2 25 Package Interrupts,RM C 4 14 Pre-elaboration Requirements,RM C 3 1 20-21 Protected Procedure Handlers,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-3-2-25-package-interrupts}@anchor{267}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
*************** Followed.
*** 15863,15869 ****
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{267}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
--- 15971,15977 ----
  @geindex Pre-elaboration requirements
  
  @node RM C 4 14 Pre-elaboration Requirements,RM C 5 8 Pragma Discard_Names,RM C 3 2 25 Package Interrupts,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-4-14-pre-elaboration-requirements}@anchor{268}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
*************** Followed.  Executable code is generated
*** 15879,15885 ****
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{268}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
--- 15987,15993 ----
  to initialize large arrays.
  
  @node RM C 5 8 Pragma Discard_Names,RM C 7 2 30 The Package Task_Attributes,RM C 4 14 Pre-elaboration Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-5-8-pragma-discard-names}@anchor{269}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
*************** Followed.
*** 15897,15903 ****
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{269}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
--- 16005,16011 ----
  @geindex Task_Attributes
  
  @node RM C 7 2 30 The Package Task_Attributes,RM D 3 17 Locking Policies,RM C 5 8 Pragma Discard_Names,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-c-7-2-30-the-package-task-attributes}@anchor{26a}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
*************** Not followed.  This implementation is no
*** 15918,15924 ****
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{26a}
  @section RM D.3(17): Locking Policies
  
  
--- 16026,16032 ----
  @geindex Locking Policies
  
  @node RM D 3 17 Locking Policies,RM D 4 16 Entry Queuing Policies,RM C 7 2 30 The Package Task_Attributes,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-3-17-locking-policies}@anchor{26b}
  @section RM D.3(17): Locking Policies
  
  
*************** whose names (@code{Inheritance_Locking}
*** 15935,15941 ****
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{26b}
  @section RM D.4(16): Entry Queuing Policies
  
  
--- 16043,16049 ----
  @geindex Entry queuing policies
  
  @node RM D 4 16 Entry Queuing Policies,RM D 6 9-10 Preemptive Abort,RM D 3 17 Locking Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-4-16-entry-queuing-policies}@anchor{26c}
  @section RM D.4(16): Entry Queuing Policies
  
  
*************** Followed.  No such implementation-define
*** 15950,15956 ****
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{26c}
  @section RM D.6(9-10): Preemptive Abort
  
  
--- 16058,16064 ----
  @geindex Preemptive abort
  
  @node RM D 6 9-10 Preemptive Abort,RM D 7 21 Tasking Restrictions,RM D 4 16 Entry Queuing Policies,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-6-9-10-preemptive-abort}@anchor{26d}
  @section RM D.6(9-10): Preemptive Abort
  
  
*************** Followed.
*** 15976,15982 ****
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{26d}
  @section RM D.7(21): Tasking Restrictions
  
  
--- 16084,16090 ----
  @geindex Tasking restrictions
  
  @node RM D 7 21 Tasking Restrictions,RM D 8 47-49 Monotonic Time,RM D 6 9-10 Preemptive Abort,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-7-21-tasking-restrictions}@anchor{26e}
  @section RM D.7(21): Tasking Restrictions
  
  
*************** pragma @code{Profile (Restricted)} for m
*** 15995,16001 ****
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{26e}
  @section RM D.8(47-49): Monotonic Time
  
  
--- 16103,16109 ----
  @geindex monotonic
  
  @node RM D 8 47-49 Monotonic Time,RM E 5 28-29 Partition Communication Subsystem,RM D 7 21 Tasking Restrictions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-d-8-47-49-monotonic-time}@anchor{26f}
  @section RM D.8(47-49): Monotonic Time
  
  
*************** Followed.
*** 16030,16036 ****
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{26f}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
--- 16138,16144 ----
  @geindex PCS
  
  @node RM E 5 28-29 Partition Communication Subsystem,RM F 7 COBOL Support,RM D 8 47-49 Monotonic Time,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-e-5-28-29-partition-communication-subsystem}@anchor{270}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
*************** should allow them to block until the cor
*** 16042,16048 ****
  returns.”
  @end quotation
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product.
  
  @quotation
  
--- 16150,16157 ----
  returns.”
  @end quotation
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product (NB! See the note in @ref{271,,PolyORB} regarding the lifetime
! of this product).
  
  @quotation
  
*************** write the @code{Item} into the stream.�
*** 16054,16060 ****
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{270}
  @section RM F(7): COBOL Support
  
  
--- 16163,16169 ----
  @geindex COBOL support
  
  @node RM F 7 COBOL Support,RM F 1 2 Decimal Radix Support,RM E 5 28-29 Partition Communication Subsystem,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-7-cobol-support}@anchor{272}
  @section RM F(7): COBOL Support
  
  
*************** Followed.
*** 16074,16080 ****
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{271}
  @section RM F.1(2): Decimal Radix Support
  
  
--- 16183,16189 ----
  @geindex Decimal radix support
  
  @node RM F 1 2 Decimal Radix Support,RM G Numerics,RM F 7 COBOL Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-f-1-2-decimal-radix-support}@anchor{273}
  @section RM F.1(2): Decimal Radix Support
  
  
*************** representations.
*** 16090,16096 ****
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{272}
  @section RM G: Numerics
  
  
--- 16199,16205 ----
  @geindex Numerics
  
  @node RM G Numerics,RM G 1 1 56-58 Complex Types,RM F 1 2 Decimal Radix Support,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-numerics}@anchor{274}
  @section RM G: Numerics
  
  
*************** Followed.
*** 16110,16116 ****
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{273}
  @section RM G.1.1(56-58): Complex Types
  
  
--- 16219,16225 ----
  @geindex Complex types
  
  @node RM G 1 1 56-58 Complex Types,RM G 1 2 49 Complex Elementary Functions,RM G Numerics,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-1-56-58-complex-types}@anchor{275}
  @section RM G.1.1(56-58): Complex Types
  
  
*************** Followed.
*** 16172,16178 ****
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{274}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
--- 16281,16287 ----
  @geindex Complex elementary functions
  
  @node RM G 1 2 49 Complex Elementary Functions,RM G 2 4 19 Accuracy Requirements,RM G 1 1 56-58 Complex Types,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-1-2-49-complex-elementary-functions}@anchor{276}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
*************** Followed.
*** 16194,16200 ****
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{275}
  @section RM G.2.4(19): Accuracy Requirements
  
  
--- 16303,16309 ----
  @geindex Accuracy requirements
  
  @node RM G 2 4 19 Accuracy Requirements,RM G 2 6 15 Complex Arithmetic Accuracy,RM G 1 2 49 Complex Elementary Functions,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-4-19-accuracy-requirements}@anchor{277}
  @section RM G.2.4(19): Accuracy Requirements
  
  
*************** Followed.
*** 16218,16224 ****
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{276}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
--- 16327,16333 ----
  @geindex complex arithmetic
  
  @node RM G 2 6 15 Complex Arithmetic Accuracy,RM H 6 15/2 Pragma Partition_Elaboration_Policy,RM G 2 4 19 Accuracy Requirements,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-g-2-6-15-complex-arithmetic-accuracy}@anchor{278}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
*************** Followed.
*** 16236,16242 ****
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{277}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
--- 16345,16351 ----
  @geindex Sequential elaboration policy
  
  @node RM H 6 15/2 Pragma Partition_Elaboration_Policy,,RM G 2 6 15 Complex Arithmetic Accuracy,Implementation Advice
! @anchor{gnat_rm/implementation_advice rm-h-6-15-2-pragma-partition-elaboration-policy}@anchor{279}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
*************** immediately terminated.”
*** 16251,16257 ****
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{278}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{279}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
--- 16360,16366 ----
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{27a}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{27b}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
*************** may have been set by a call to @code{Ada
*** 16892,16898 ****
  “The mechanisms for building and running partitions.  See 10.2(24).”
  @end itemize
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. See the separate PolyORB user guide for details.
  
  
  @itemize *
--- 17001,17008 ----
  “The mechanisms for building and running partitions.  See 10.2(24).”
  @end itemize
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. `NB!' See the note in @ref{271,,PolyORB} regarding the lifetime
! of this product.
  
  
  @itemize *
*************** implementation.  See 10.2(28).”
*** 16913,16920 ****
  @end itemize
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. See the PolyORB user guide for
! further details.
  
  
  @itemize *
--- 17023,17029 ----
  @end itemize
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. `NB!' See the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** See separate section on data representat
*** 17097,17103 ****
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{130,,Implementation Defined Aspects}.
  
  
  @itemize *
--- 17206,17212 ----
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{131,,Implementation Defined Aspects}.
  
  
  @itemize *
*************** When the @code{Pattern} parameter is not
*** 17541,17547 ****
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{27a,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
--- 17650,17656 ----
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{27c,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
*************** programs.  See E(5).”
*** 18300,18306 ****
  @end itemize
  
  The PolyORB product provides means creating and executing
! distributed programs. See the PolyORB user guide for further details.
  
  
  @itemize *
--- 18409,18415 ----
  @end itemize
  
  The PolyORB product provides means creating and executing
! distributed programs. `NB!' See the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** inaccessible.  See E.1(7).”
*** 18311,18316 ****
--- 18420,18427 ----
  @end itemize
  
  See the PolyORB user guide for full details on such events.
+ `NB!' Consider the note in @ref{271,,PolyORB} regarding the lifetime
+ of this product.
  
  
  @itemize *
*************** shared resources between partitions in c
*** 18321,18327 ****
  @end itemize
  
  See the PolyORB user guide for full details on these aspects of
! multi-partition execution.
  
  
  @itemize *
--- 18432,18438 ----
  @end itemize
  
  See the PolyORB user guide for full details on these aspects of
! multi-partition execution. `NB!' Consider the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** immediately aborted as a result of cance
*** 18332,18338 ****
  @end itemize
  
  See the PolyORB user guide for details on the effect of abort in
! a distributed application.
  
  
  @itemize *
--- 18443,18449 ----
  @end itemize
  
  See the PolyORB user guide for details on the effect of abort in
! a distributed application.  `NB!' Consider the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** System.RPC.Partition_ID’Last is Intege
*** 18351,18357 ****
  @end itemize
  
  See the PolyORB user guide for a full description of all
! implementation defined interfaces.
  
  
  @itemize *
--- 18462,18468 ----
  @end itemize
  
  See the PolyORB user guide for a full description of all
! implementation defined interfaces.  `NB!' See the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** Information on those subjects is not yet
*** 18639,18645 ****
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{27b}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{27c}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
--- 18750,18756 ----
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{27d}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
*************** Ada standard does not require Ada compil
*** 18677,18683 ****
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{27d}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{27e}
  @section Intrinsic Operators
  
  
--- 18788,18794 ----
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{27f}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{280}
  @section Intrinsic Operators
  
  
*************** It is also possible to specify such oper
*** 18708,18714 ****
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{27f}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{280}
  @section Compilation_ISO_Date
  
  
--- 18819,18825 ----
  full views are appropriate arithmetic types.
  
  @node Compilation_ISO_Date,Compilation_Date,Intrinsic Operators,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-iso-date}@anchor{281}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{282}
  @section Compilation_ISO_Date
  
  
*************** application program should simply call t
*** 18722,18728 ****
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{281}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{282}
  @section Compilation_Date
  
  
--- 18833,18839 ----
  the current compilation (in local time format YYYY-MM-DD).
  
  @node Compilation_Date,Compilation_Time,Compilation_ISO_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-date}@anchor{283}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{284}
  @section Compilation_Date
  
  
*************** Same as Compilation_ISO_Date, except the
*** 18732,18738 ****
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{283}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{284}
  @section Compilation_Time
  
  
--- 18843,18849 ----
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{285}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{286}
  @section Compilation_Time
  
  
*************** application program should simply call t
*** 18746,18752 ****
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{285}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{286}
  @section Enclosing_Entity
  
  
--- 18857,18863 ----
  the current compilation (in local time format HH:MM:SS).
  
  @node Enclosing_Entity,Exception_Information,Compilation_Time,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms enclosing-entity}@anchor{287}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{288}
  @section Enclosing_Entity
  
  
*************** application program should simply call t
*** 18760,18766 ****
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{287}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{288}
  @section Exception_Information
  
  
--- 18871,18877 ----
  the current subprogram, package, task, entry, or protected subprogram.
  
  @node Exception_Information,Exception_Message,Enclosing_Entity,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-information}@anchor{289}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{28a}
  @section Exception_Information
  
  
*************** so an application program should simply
*** 18774,18780 ****
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{289}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{28a}
  @section Exception_Message
  
  
--- 18885,18891 ----
  the exception information associated with the current exception.
  
  @node Exception_Message,Exception_Name,Exception_Information,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-message}@anchor{28b}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{28c}
  @section Exception_Message
  
  
*************** so an application program should simply
*** 18788,18794 ****
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{28b}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{28c}
  @section Exception_Name
  
  
--- 18899,18905 ----
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{28d}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{28e}
  @section Exception_Name
  
  
*************** so an application program should simply
*** 18802,18808 ****
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{28d}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{28e}
  @section File
  
  
--- 18913,18919 ----
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{28f}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{290}
  @section File
  
  
*************** application program should simply call t
*** 18816,18822 ****
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{28f}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{290}
  @section Line
  
  
--- 18927,18933 ----
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{291}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{292}
  @section Line
  
  
*************** application program should simply call t
*** 18830,18836 ****
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{291}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{292}
  @section Shifts and Rotates
  
  
--- 18941,18947 ----
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{293}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{294}
  @section Shifts and Rotates
  
  
*************** corresponding operator for modular type.
*** 18873,18879 ****
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{293}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{294}
  @section Source_Location
  
  
--- 18984,18990 ----
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{295}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{296}
  @section Source_Location
  
  
*************** application program should simply call t
*** 18887,18893 ****
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{295}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{296}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
--- 18998,19004 ----
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{297}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{298}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
*************** and this section describes the additiona
*** 18933,18939 ****
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{297}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{298}
  @section Alignment Clauses
  
  
--- 19044,19050 ----
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{299}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{29a}
  @section Alignment Clauses
  
  
*************** For elementary types, the alignment is t
*** 18955,18961 ****
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{1a7,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
--- 19066,19072 ----
  objects of the type divided by @code{Storage_Unit},
  and the maximum alignment supported by the target.
  (This maximum alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{1a8,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
*************** assumption is non-portable, and other co
*** 19064,19070 ****
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{299}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{29a}
  @section Size Clauses
  
  
--- 19175,19181 ----
  alignments for the subtype @code{RS}.
  
  @node Size Clauses,Storage_Size Clauses,Alignment Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id3}@anchor{29b}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{29c}
  @section Size Clauses
  
  
*************** if it is known that a Size value can be
*** 19141,19147 ****
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{29b}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{29c}
  @section Storage_Size Clauses
  
  
--- 19252,19258 ----
  type Integer.
  
  @node Storage_Size Clauses,Size of Variant Record Objects,Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id4}@anchor{29d}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{29e}
  @section Storage_Size Clauses
  
  
*************** Of course in practice, there will not be
*** 19214,19220 ****
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{29d}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{29e}
  @section Size of Variant Record Objects
  
  
--- 19325,19331 ----
  case of such an access declaration.
  
  @node Size of Variant Record Objects,Biased Representation,Storage_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id5}@anchor{29f}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{2a0}
  @section Size of Variant Record Objects
  
  
*************** the maximum size, regardless of the curr
*** 19324,19330 ****
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{29f}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{2a0}
  @section Biased Representation
  
  
--- 19435,19441 ----
  variant value.
  
  @node Biased Representation,Value_Size and Object_Size Clauses,Size of Variant Record Objects,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas biased-representation}@anchor{2a1}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{2a2}
  @section Biased Representation
  
  
*************** biased representation can be used for al
*** 19362,19368 ****
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{2a1}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{2a2}
  @section Value_Size and Object_Size Clauses
  
  
--- 19473,19479 ----
  enumeration types for which a representation clause is given.
  
  @node Value_Size and Object_Size Clauses,Component_Size Clauses,Biased Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id7}@anchor{2a3}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{2a4}
  @section Value_Size and Object_Size Clauses
  
  
*************** definition clause forces biased represen
*** 19678,19684 ****
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{2a3}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{2a4}
  @section Component_Size Clauses
  
  
--- 19789,19795 ----
  warning can be turned off using @code{-gnatw.B}.
  
  @node Component_Size Clauses,Bit_Order Clauses,Value_Size and Object_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas component-size-clauses}@anchor{2a5}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{2a6}
  @section Component_Size Clauses
  
  
*************** and a pragma Pack for the same array typ
*** 19726,19732 ****
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{2a5}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a6}
  @section Bit_Order Clauses
  
  
--- 19837,19843 ----
  clauses are given, the pragma Pack will be ignored.
  
  @node Bit_Order Clauses,Effect of Bit_Order on Byte Ordering,Component_Size Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas bit-order-clauses}@anchor{2a7}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a8}
  @section Bit_Order Clauses
  
  
*************** if desired.  The following section conta
*** 19832,19838 ****
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{2a7}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2a8}
  @section Effect of Bit_Order on Byte Ordering
  
  
--- 19943,19949 ----
  details regarding the issue of byte ordering.
  
  @node Effect of Bit_Order on Byte Ordering,Pragma Pack for Arrays,Bit_Order Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-bit-order-on-byte-ordering}@anchor{2a9}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2aa}
  @section Effect of Bit_Order on Byte Ordering
  
  
*************** to set the boolean constant @code{Master
*** 20089,20095 ****
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{2a9}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2aa}
  @section Pragma Pack for Arrays
  
  
--- 20200,20206 ----
  an appropriate manner.
  
  @node Pragma Pack for Arrays,Pragma Pack for Records,Effect of Bit_Order on Byte Ordering,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id11}@anchor{2ab}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2ac}
  @section Pragma Pack for Arrays
  
  
*************** Here 31-bit packing is achieved as requi
*** 20209,20215 ****
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{2ab}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2ac}
  @section Pragma Pack for Records
  
  
--- 20320,20326 ----
  since in this case the programmer intention is clear.
  
  @node Pragma Pack for Records,Record Representation Clauses,Pragma Pack for Arrays,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id12}@anchor{2ad}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2ae}
  @section Pragma Pack for Records
  
  
*************** array that is longer than 64 bits, so it
*** 20293,20299 ****
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{2ad}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2ae}
  @section Record Representation Clauses
  
  
--- 20404,20410 ----
  boundary, and takes an integral number of bytes, i.e., 72 bits.
  
  @node Record Representation Clauses,Handling of Records with Holes,Pragma Pack for Records,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id13}@anchor{2af}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2b0}
  @section Record Representation Clauses
  
  
*************** end record;
*** 20372,20378 ****
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{2af}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2b0}
  @section Handling of Records with Holes
  
  
--- 20483,20489 ----
  @end example
  
  @node Handling of Records with Holes,Enumeration Clauses,Record Representation Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas handling-of-records-with-holes}@anchor{2b1}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2b2}
  @section Handling of Records with Holes
  
  
*************** for Hrec'Size use 64;
*** 20448,20454 ****
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{2b1}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2b2}
  @section Enumeration Clauses
  
  
--- 20559,20565 ----
  @end example
  
  @node Enumeration Clauses,Address Clauses,Handling of Records with Holes,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas enumeration-clauses}@anchor{2b3}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2b4}
  @section Enumeration Clauses
  
  
*************** the overhead of converting representatio
*** 20491,20497 ****
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{2b3}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2b4}
  @section Address Clauses
  
  
--- 20602,20608 ----
  positional values, (i.e., the value delivered by the @code{Pos} attribute).
  
  @node Address Clauses,Use of Address Clauses for Memory-Mapped I/O,Enumeration Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas address-clauses}@anchor{2b5}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2b6}
  @section Address Clauses
  
  
*************** then the program compiles without the wa
*** 20831,20837 ****
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{2b5}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b6}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
--- 20942,20948 ----
  the output @code{X was not clobbered}.
  
  @node Use of Address Clauses for Memory-Mapped I/O,Effect of Convention on Representation,Address Clauses,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas id17}@anchor{2b7}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b8}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
*************** provides the pragma @code{Volatile_Full_
*** 20889,20895 ****
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{2b7}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2b8}
  @section Effect of Convention on Representation
  
  
--- 21000,21006 ----
  pragma @code{Atomic} and will give the additional guarantee.
  
  @node Effect of Convention on Representation,Conventions and Anonymous Access Types,Use of Address Clauses for Memory-Mapped I/O,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas effect-of-convention-on-representation}@anchor{2b9}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2ba}
  @section Effect of Convention on Representation
  
  
*************** when one of these values is read, any no
*** 20967,20973 ****
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{2b9}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2ba}
  @section Conventions and Anonymous Access Types
  
  
--- 21078,21084 ----
  @end itemize
  
  @node Conventions and Anonymous Access Types,Determining the Representations chosen by GNAT,Effect of Convention on Representation,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas conventions-and-anonymous-access-types}@anchor{2bb}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2bc}
  @section Conventions and Anonymous Access Types
  
  
*************** package ConvComp is
*** 21043,21049 ****
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{2bb}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2bc}
  @section Determining the Representations chosen by GNAT
  
  
--- 21154,21160 ----
  @end example
  
  @node Determining the Representations chosen by GNAT,,Conventions and Anonymous Access Types,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas determining-the-representations-chosen-by-gnat}@anchor{2bd}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2be}
  @section Determining the Representations chosen by GNAT
  
  
*************** generated by the compiler into the origi
*** 21195,21201 ****
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{2bd}@anchor{gnat_rm/standard_library_routines id1}@anchor{2be}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
--- 21306,21312 ----
  the actual representation to be used.
  
  @node Standard Library Routines,The Implementation of Standard I/O,Representation Clauses and Pragmas,Top
! @anchor{gnat_rm/standard_library_routines doc}@anchor{2bf}@anchor{gnat_rm/standard_library_routines id1}@anchor{2c0}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
*************** For packages in Interfaces and System, a
*** 22022,22028 ****
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2bf}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2c0}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
--- 22133,22139 ----
  available in GNAT, see the Ada 2012 RM for full details.
  
  @node The Implementation of Standard I/O,The GNAT Library,Standard Library Routines,Top
! @anchor{gnat_rm/the_implementation_of_standard_i_o doc}@anchor{2c1}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o the-implementation-of-standard-i-o}@anchor{f}
  @chapter The Implementation of Standard I/O
  
  
*************** these additional facilities are also des
*** 22074,22080 ****
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2c1}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2c2}
  @section Standard I/O Packages
  
  
--- 22185,22191 ----
  @end menu
  
  @node Standard I/O Packages,FORM Strings,,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id2}@anchor{2c3}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2c4}
  @section Standard I/O Packages
  
  
*************** flush the common I/O streams and in part
*** 22145,22151 ****
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2c3}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2c4}
  @section FORM Strings
  
  
--- 22256,22262 ----
  elaborating the Ada code.
  
  @node FORM Strings,Direct_IO,Standard I/O Packages,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o form-strings}@anchor{2c5}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2c6}
  @section FORM Strings
  
  
*************** unrecognized keyword appears in a form s
*** 22171,22177 ****
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2c5}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c6}
  @section Direct_IO
  
  
--- 22282,22288 ----
  and not considered invalid.
  
  @node Direct_IO,Sequential_IO,FORM Strings,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o direct-io}@anchor{2c7}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c8}
  @section Direct_IO
  
  
*************** There is no limit on the size of Direct_
*** 22190,22196 ****
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2c7}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2c8}
  @section Sequential_IO
  
  
--- 22301,22307 ----
  necessary to accommodate whatever records are written to the file.
  
  @node Sequential_IO,Text_IO,Direct_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id5}@anchor{2c9}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2ca}
  @section Sequential_IO
  
  
*************** using Stream_IO, and this is the preferr
*** 22237,22243 ****
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2c9}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2ca}
  @section Text_IO
  
  
--- 22348,22354 ----
  above program fragment rewritten to use Stream_IO will work correctly.
  
  @node Text_IO,Wide_Text_IO,Sequential_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id6}@anchor{2cb}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2cc}
  @section Text_IO
  
  
*************** the file.
*** 22320,22326 ****
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2cb}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2cc}
  @subsection Stream Pointer Positioning
  
  
--- 22431,22437 ----
  @end menu
  
  @node Stream Pointer Positioning,Reading and Writing Non-Regular Files,,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id7}@anchor{2cd}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2ce}
  @subsection Stream Pointer Positioning
  
  
*************** between two Ada files, then the differen
*** 22356,22362 ****
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2cd}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2ce}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22467,22473 ----
  situations.
  
  @node Reading and Writing Non-Regular Files,Get_Immediate,Stream Pointer Positioning,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id8}@anchor{2cf}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2d0}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** to read data past that end of
*** 22407,22413 ****
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2cf}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2d0}
  @subsection Get_Immediate
  
  
--- 22518,22524 ----
  file indication, until another end of file indication is entered.
  
  @node Get_Immediate,Treating Text_IO Files as Streams,Reading and Writing Non-Regular Files,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o get-immediate}@anchor{2d1}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2d2}
  @subsection Get_Immediate
  
  
*************** possible), it is undefined whether the F
*** 22425,22431 ****
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2d1}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2d2}
  @subsection Treating Text_IO Files as Streams
  
  
--- 22536,22542 ----
  page mark.
  
  @node Treating Text_IO Files as Streams,Text_IO Extensions,Get_Immediate,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id10}@anchor{2d3}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2d4}
  @subsection Treating Text_IO Files as Streams
  
  
*************** skipped and the effect is similar to tha
*** 22441,22447 ****
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2d3}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2d4}
  @subsection Text_IO Extensions
  
  
--- 22552,22558 ----
  @code{Get_Immediate}.
  
  @node Text_IO Extensions,Text_IO Facilities for Unbounded Strings,Treating Text_IO Files as Streams,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id11}@anchor{2d5}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2d6}
  @subsection Text_IO Extensions
  
  
*************** the string is to be read.
*** 22469,22475 ****
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2d5}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d6}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
--- 22580,22586 ----
  @end itemize
  
  @node Text_IO Facilities for Unbounded Strings,,Text_IO Extensions,Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id12}@anchor{2d7}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d8}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
*************** files @code{a-szuzti.ads} and @code{a-sz
*** 22517,22523 ****
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2d7}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2d8}
  @section Wide_Text_IO
  
  
--- 22628,22634 ----
  @code{Wide_Wide_Text_IO} functionality for unbounded wide wide strings.
  
  @node Wide_Text_IO,Wide_Wide_Text_IO,Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id13}@anchor{2d9}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2da}
  @section Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22764,22775 ****
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2d9}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2da}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2ca,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
--- 22875,22886 ----
  @end menu
  
  @node Stream Pointer Positioning<2>,Reading and Writing Non-Regular Files<2>,,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id14}@anchor{2db}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2dc}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2cc,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Tex
*** 22788,22794 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2db}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2dc}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 22899,22905 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<2>,,Stream Pointer Positioning<2>,Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id15}@anchor{2dd}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2de}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22799,22805 ****
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2dd}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2de}
  @section Wide_Wide_Text_IO
  
  
--- 22910,22916 ----
  it is possible to read beyond an end of file.
  
  @node Wide_Wide_Text_IO,Stream_IO,Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id16}@anchor{2df}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2e0}
  @section Wide_Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22968,22979 ****
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2df}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2e0}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2ca,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
--- 23079,23090 ----
  @end menu
  
  @node Stream Pointer Positioning<3>,Reading and Writing Non-Regular Files<3>,,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id17}@anchor{2e1}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2e2}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2cc,,Text_IO}).  There is one additional
  case:
  
  If @code{Ada.Wide_Wide_Text_IO.Look_Ahead} reads a character outside the
*************** to a normal program using @code{Wide_Wid
*** 22992,22998 ****
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2e1}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2e2}
  @subsection Reading and Writing Non-Regular Files
  
  
--- 23103,23109 ----
  can be observed if the wide text file shares a stream with another file.
  
  @node Reading and Writing Non-Regular Files<3>,,Stream Pointer Positioning<3>,Wide_Wide_Text_IO
! @anchor{gnat_rm/the_implementation_of_standard_i_o id18}@anchor{2e3}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2e4}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 23003,23009 ****
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2e3}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2e4}
  @section Stream_IO
  
  
--- 23114,23120 ----
  it is possible to read beyond an end of file.
  
  @node Stream_IO,Text Translation,Wide_Wide_Text_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id19}@anchor{2e5}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2e6}
  @section Stream_IO
  
  
*************** manner described for stream attributes.
*** 23025,23031 ****
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2e5}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e6}
  @section Text Translation
  
  
--- 23136,23142 ----
  @end itemize
  
  @node Text Translation,Shared Files,Stream_IO,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id20}@anchor{2e7}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e8}
  @section Text Translation
  
  
*************** mode. (corresponds to_O_U16TEXT).
*** 23059,23065 ****
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2e7}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2e8}
  @section Shared Files
  
  
--- 23170,23176 ----
  @end itemize
  
  @node Shared Files,Filenames encoding,Text Translation,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id21}@anchor{2e9}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2ea}
  @section Shared Files
  
  
*************** heterogeneous input-output.  Although th
*** 23122,23128 ****
  for this purpose (using the stream attributes).
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2e9}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2ea}
  @section Filenames encoding
  
  
--- 23233,23239 ----
  for this purpose (using the stream attributes).
  
  @node Filenames encoding,File content encoding,Shared Files,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o filenames-encoding}@anchor{2eb}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2ec}
  @section Filenames encoding
  
  
*************** platform. On the other Operating Systems
*** 23162,23168 ****
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2eb}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ec}
  @section File content encoding
  
  
--- 23273,23279 ----
  UTF-8 natively.
  
  @node File content encoding,Open Modes,Filenames encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o file-content-encoding}@anchor{2ed}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ee}
  @section File content encoding
  
  
*************** Unicode 8-bit encoding
*** 23195,23201 ****
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2ed}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2ee}
  @section Open Modes
  
  
--- 23306,23312 ----
  This encoding is only supported on the Windows platform.
  
  @node Open Modes,Operations on C Streams,File content encoding,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id24}@anchor{2ef}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2f0}
  @section Open Modes
  
  
*************** subsequently requires switching from rea
*** 23298,23304 ****
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2ef}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2f0}
  @section Operations on C Streams
  
  
--- 23409,23415 ----
  then the file is reopened in @code{r+} mode to permit the required operation.
  
  @node Operations on C Streams,Interfacing to C Streams,Open Modes,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id25}@anchor{2f1}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2f2}
  @section Operations on C Streams
  
  
*************** end Interfaces.C_Streams;
*** 23458,23464 ****
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2f1}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2f2}
  @section Interfacing to C Streams
  
  
--- 23569,23575 ----
  @end example
  
  @node Interfacing to C Streams,,Operations on C Streams,The Implementation of Standard I/O
! @anchor{gnat_rm/the_implementation_of_standard_i_o id26}@anchor{2f3}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2f4}
  @section Interfacing to C Streams
  
  
*************** imported from a C program, allowing an A
*** 23551,23557 ****
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2f3}@anchor{gnat_rm/the_gnat_library id1}@anchor{2f4}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
--- 23662,23668 ----
  existing C file.
  
  @node The GNAT Library,Interfacing to Other Languages,The Implementation of Standard I/O,Top
! @anchor{gnat_rm/the_gnat_library doc}@anchor{2f5}@anchor{gnat_rm/the_gnat_library id1}@anchor{2f6}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
*************** of GNAT, and will generate a warning mes
*** 23737,23743 ****
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2f5}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f6}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
--- 23848,23854 ----
  @end menu
  
  @node Ada Characters Latin_9 a-chlat9 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-latin-9-a-chlat9-ads}@anchor{2f7}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f8}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23754,23760 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2f7}@anchor{gnat_rm/the_gnat_library id3}@anchor{2f8}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
--- 23865,23871 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_1 a-cwila1 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Latin_9 a-chlat9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-1-a-cwila1-ads}@anchor{2f9}@anchor{gnat_rm/the_gnat_library id3}@anchor{2fa}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23771,23777 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2f9}@anchor{gnat_rm/the_gnat_library id4}@anchor{2fa}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
--- 23882,23888 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Latin_9 a-cwila9 ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Latin_1 a-cwila1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-latin-9-a-cwila9-ads}@anchor{2fb}@anchor{gnat_rm/the_gnat_library id4}@anchor{2fc}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23788,23794 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2fb}@anchor{gnat_rm/the_gnat_library id5}@anchor{2fc}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
--- 23899,23905 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Characters Wide_Latin_9 a-cwila9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-1-a-chzla1-ads}@anchor{2fd}@anchor{gnat_rm/the_gnat_library id5}@anchor{2fe}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23805,23811 ****
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2fd}@anchor{gnat_rm/the_gnat_library id6}@anchor{2fe}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
--- 23916,23922 ----
  (RM A.3.3(27)).
  
  @node Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,Ada Containers Bounded_Holders a-coboho ads,Ada Characters Wide_Wide_Latin_1 a-chzla1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-characters-wide-wide-latin-9-a-chzla9-ads}@anchor{2ff}@anchor{gnat_rm/the_gnat_library id6}@anchor{300}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23822,23828 ****
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{2ff}@anchor{gnat_rm/the_gnat_library id7}@anchor{300}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
--- 23933,23939 ----
  (RM A.3.3(27)).
  
  @node Ada Containers Bounded_Holders a-coboho ads,Ada Command_Line Environment a-colien ads,Ada Characters Wide_Wide_Latin_9 a-chzla9 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-containers-bounded-holders-a-coboho-ads}@anchor{301}@anchor{gnat_rm/the_gnat_library id7}@anchor{302}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
*************** This child of @code{Ada.Containers} defi
*** 23834,23840 ****
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{301}@anchor{gnat_rm/the_gnat_library id8}@anchor{302}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
--- 23945,23951 ----
  Indefinite_Holders that avoids heap allocation.
  
  @node Ada Command_Line Environment a-colien ads,Ada Command_Line Remove a-colire ads,Ada Containers Bounded_Holders a-coboho ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-environment-a-colien-ads}@anchor{303}@anchor{gnat_rm/the_gnat_library id8}@anchor{304}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
*************** provides a mechanism for obtaining envir
*** 23847,23853 ****
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{303}@anchor{gnat_rm/the_gnat_library id9}@anchor{304}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
--- 23958,23964 ----
  where this concept makes sense.
  
  @node Ada Command_Line Remove a-colire ads,Ada Command_Line Response_File a-clrefi ads,Ada Command_Line Environment a-colien ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-remove-a-colire-ads}@anchor{305}@anchor{gnat_rm/the_gnat_library id9}@anchor{306}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
*************** to further calls to the subprograms in @
*** 23865,23871 ****
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{305}@anchor{gnat_rm/the_gnat_library id10}@anchor{306}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
--- 23976,23982 ----
  will not see the removed argument.
  
  @node Ada Command_Line Response_File a-clrefi ads,Ada Direct_IO C_Streams a-diocst ads,Ada Command_Line Remove a-colire ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-command-line-response-file-a-clrefi-ads}@anchor{307}@anchor{gnat_rm/the_gnat_library id10}@anchor{308}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
*************** Using a response file allow passing a se
*** 23885,23891 ****
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{307}@anchor{gnat_rm/the_gnat_library id11}@anchor{308}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
--- 23996,24002 ----
  than the maximum allowed by the system on the command line.
  
  @node Ada Direct_IO C_Streams a-diocst ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Command_Line Response_File a-clrefi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-direct-io-c-streams-a-diocst-ads}@anchor{309}@anchor{gnat_rm/the_gnat_library id11}@anchor{30a}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23900,23906 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{309}@anchor{gnat_rm/the_gnat_library id12}@anchor{30a}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
--- 24011,24017 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Exceptions Is_Null_Occurrence a-einuoc ads,Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Direct_IO C_Streams a-diocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-is-null-occurrence-a-einuoc-ads}@anchor{30b}@anchor{gnat_rm/the_gnat_library id12}@anchor{30c}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
*************** exception occurrence (@code{Null_Occurre
*** 23914,23920 ****
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{30b}@anchor{gnat_rm/the_gnat_library id13}@anchor{30c}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
--- 24025,24031 ----
  an exception.
  
  @node Ada Exceptions Last_Chance_Handler a-elchha ads,Ada Exceptions Traceback a-exctra ads,Ada Exceptions Is_Null_Occurrence a-einuoc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-last-chance-handler-a-elchha-ads}@anchor{30d}@anchor{gnat_rm/the_gnat_library id13}@anchor{30e}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
*************** exceptions (hence the name last chance),
*** 23928,23934 ****
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{30d}@anchor{gnat_rm/the_gnat_library id14}@anchor{30e}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
--- 24039,24045 ----
  terminating the program. Note that this subprogram never returns.
  
  @node Ada Exceptions Traceback a-exctra ads,Ada Sequential_IO C_Streams a-siocst ads,Ada Exceptions Last_Chance_Handler a-elchha ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-exceptions-traceback-a-exctra-ads}@anchor{30f}@anchor{gnat_rm/the_gnat_library id14}@anchor{310}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
*************** give a traceback array of addresses base
*** 23941,23947 ****
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{30f}@anchor{gnat_rm/the_gnat_library id15}@anchor{310}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
--- 24052,24058 ----
  occurrence.
  
  @node Ada Sequential_IO C_Streams a-siocst ads,Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Exceptions Traceback a-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-sequential-io-c-streams-a-siocst-ads}@anchor{311}@anchor{gnat_rm/the_gnat_library id15}@anchor{312}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23956,23962 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{311}@anchor{gnat_rm/the_gnat_library id16}@anchor{312}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
--- 24067,24073 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Streams Stream_IO C_Streams a-ssicst ads,Ada Strings Unbounded Text_IO a-suteio ads,Ada Sequential_IO C_Streams a-siocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-streams-stream-io-c-streams-a-ssicst-ads}@anchor{313}@anchor{gnat_rm/the_gnat_library id16}@anchor{314}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23971,23977 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{313}@anchor{gnat_rm/the_gnat_library id17}@anchor{314}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
--- 24082,24088 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Strings Unbounded Text_IO a-suteio ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Streams Stream_IO C_Streams a-ssicst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-unbounded-text-io-a-suteio-ads}@anchor{315}@anchor{gnat_rm/the_gnat_library id17}@anchor{316}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
*************** strings, avoiding the necessity for an i
*** 23988,23994 ****
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{315}@anchor{gnat_rm/the_gnat_library id18}@anchor{316}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
--- 24099,24105 ----
  with ordinary strings.
  
  @node Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Strings Unbounded Text_IO a-suteio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-unbounded-wide-text-io-a-swuwti-ads}@anchor{317}@anchor{gnat_rm/the_gnat_library id18}@anchor{318}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
*************** wide strings, avoiding the necessity for
*** 24005,24011 ****
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{317}@anchor{gnat_rm/the_gnat_library id19}@anchor{318}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
--- 24116,24122 ----
  with ordinary wide strings.
  
  @node Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,Ada Task_Initialization a-tasini ads,Ada Strings Wide_Unbounded Wide_Text_IO a-swuwti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-strings-wide-wide-unbounded-wide-wide-text-io-a-szuzti-ads}@anchor{319}@anchor{gnat_rm/the_gnat_library id19}@anchor{31a}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
*************** wide wide strings, avoiding the necessit
*** 24022,24028 ****
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{319}@anchor{gnat_rm/the_gnat_library id20}@anchor{31a}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
--- 24133,24139 ----
  with ordinary wide wide strings.
  
  @node Ada Task_Initialization a-tasini ads,Ada Text_IO C_Streams a-tiocst ads,Ada Strings Wide_Wide_Unbounded Wide_Wide_Text_IO a-szuzti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-task-initialization-a-tasini-ads}@anchor{31b}@anchor{gnat_rm/the_gnat_library id20}@anchor{31c}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
*************** parameterless procedures. Note that such
*** 24034,24040 ****
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{31b}@anchor{gnat_rm/the_gnat_library id21}@anchor{31c}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
--- 24145,24151 ----
  those tasks activated after the handler is set.
  
  @node Ada Text_IO C_Streams a-tiocst ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Task_Initialization a-tasini ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-c-streams-a-tiocst-ads}@anchor{31d}@anchor{gnat_rm/the_gnat_library id21}@anchor{31e}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 24049,24055 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{31d}@anchor{gnat_rm/the_gnat_library id22}@anchor{31e}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
--- 24160,24166 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Text_IO Reset_Standard_Files a-tirsfi ads,Ada Wide_Characters Unicode a-wichun ads,Ada Text_IO C_Streams a-tiocst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-text-io-reset-standard-files-a-tirsfi-ads}@anchor{31f}@anchor{gnat_rm/the_gnat_library id22}@anchor{320}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
*************** execution (for example a standard input
*** 24064,24070 ****
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{31f}@anchor{gnat_rm/the_gnat_library id23}@anchor{320}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
--- 24175,24181 ----
  interactive).
  
  @node Ada Wide_Characters Unicode a-wichun ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Text_IO Reset_Standard_Files a-tirsfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-characters-unicode-a-wichun-ads}@anchor{321}@anchor{gnat_rm/the_gnat_library id23}@anchor{322}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
*************** This package provides subprograms that a
*** 24077,24083 ****
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{321}@anchor{gnat_rm/the_gnat_library id24}@anchor{322}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
--- 24188,24194 ----
  Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Text_IO C_Streams a-wtcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Characters Unicode a-wichun ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-c-streams-a-wtcstr-ads}@anchor{323}@anchor{gnat_rm/the_gnat_library id24}@anchor{324}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 24092,24098 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{323}@anchor{gnat_rm/the_gnat_library id25}@anchor{324}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
--- 24203,24209 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Text_IO C_Streams a-wtcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-text-io-reset-standard-files-a-wrstfi-ads}@anchor{325}@anchor{gnat_rm/the_gnat_library id25}@anchor{326}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
*************** execution (for example a standard input
*** 24107,24113 ****
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{325}@anchor{gnat_rm/the_gnat_library id26}@anchor{326}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
--- 24218,24224 ----
  interactive).
  
  @node Ada Wide_Wide_Characters Unicode a-zchuni ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Text_IO Reset_Standard_Files a-wrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-characters-unicode-a-zchuni-ads}@anchor{327}@anchor{gnat_rm/the_gnat_library id26}@anchor{328}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
*************** This package provides subprograms that a
*** 24120,24126 ****
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{327}@anchor{gnat_rm/the_gnat_library id27}@anchor{328}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
--- 24231,24237 ----
  Wide_Wide_Character values according to Unicode categories.
  
  @node Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,Ada Wide_Wide_Characters Unicode a-zchuni ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-c-streams-a-ztcstr-ads}@anchor{329}@anchor{gnat_rm/the_gnat_library id27}@anchor{32a}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 24135,24141 ****
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{329}@anchor{gnat_rm/the_gnat_library id28}@anchor{32a}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
--- 24246,24252 ----
  can be constructed from a stream opened on the C side.
  
  @node Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,GNAT Altivec g-altive ads,Ada Wide_Wide_Text_IO C_Streams a-ztcstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library ada-wide-wide-text-io-reset-standard-files-a-zrstfi-ads}@anchor{32b}@anchor{gnat_rm/the_gnat_library id28}@anchor{32c}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
*************** change during execution (for example a s
*** 24150,24156 ****
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{32b}@anchor{gnat_rm/the_gnat_library id29}@anchor{32c}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
--- 24261,24267 ----
  redefined to be interactive).
  
  @node GNAT Altivec g-altive ads,GNAT Altivec Conversions g-altcon ads,Ada Wide_Wide_Text_IO Reset_Standard_Files a-zrstfi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-g-altive-ads}@anchor{32d}@anchor{gnat_rm/the_gnat_library id29}@anchor{32e}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
*************** definitions of constants and types commo
*** 24163,24169 ****
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{32d}@anchor{gnat_rm/the_gnat_library id30}@anchor{32e}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
--- 24274,24280 ----
  binding.
  
  @node GNAT Altivec Conversions g-altcon ads,GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec g-altive ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-conversions-g-altcon-ads}@anchor{32f}@anchor{gnat_rm/the_gnat_library id30}@anchor{330}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
*************** binding.
*** 24174,24180 ****
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{32f}@anchor{gnat_rm/the_gnat_library id31}@anchor{330}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
--- 24285,24291 ----
  This package provides the Vector/View conversion routines.
  
  @node GNAT Altivec Vector_Operations g-alveop ads,GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Conversions g-altcon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-operations-g-alveop-ads}@anchor{331}@anchor{gnat_rm/the_gnat_library id31}@anchor{332}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
*************** library. The hard binding is provided as
*** 24188,24194 ****
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{331}@anchor{gnat_rm/the_gnat_library id32}@anchor{332}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
--- 24299,24305 ----
  is common to both bindings.
  
  @node GNAT Altivec Vector_Types g-alvety ads,GNAT Altivec Vector_Views g-alvevi ads,GNAT Altivec Vector_Operations g-alveop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-types-g-alvety-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id32}@anchor{334}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
*************** This package exposes the various vector
*** 24200,24206 ****
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{333}@anchor{gnat_rm/the_gnat_library id33}@anchor{334}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
--- 24311,24317 ----
  to AltiVec facilities.
  
  @node GNAT Altivec Vector_Views g-alvevi ads,GNAT Array_Split g-arrspl ads,GNAT Altivec Vector_Types g-alvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-altivec-vector-views-g-alvevi-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id33}@anchor{336}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
*************** vector elements and provides a simple wa
*** 24215,24221 ****
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{335}@anchor{gnat_rm/the_gnat_library id34}@anchor{336}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
--- 24326,24332 ----
  objects.
  
  @node GNAT Array_Split g-arrspl ads,GNAT AWK g-awk ads,GNAT Altivec Vector_Views g-alvevi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-array-split-g-arrspl-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id34}@anchor{338}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
*************** an array wherever the separators appear,
*** 24228,24234 ****
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{337}@anchor{gnat_rm/the_gnat_library id35}@anchor{338}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
--- 24339,24345 ----
  to the resulting slices.
  
  @node GNAT AWK g-awk ads,GNAT Binary_Search g-binsea ads,GNAT Array_Split g-arrspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-awk-g-awk-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id35}@anchor{33a}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
*************** or more files containing formatted data.
*** 24243,24249 ****
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{339}@anchor{gnat_rm/the_gnat_library id36}@anchor{33a}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
--- 24354,24360 ----
  where each record is a line and a field is a data element in this line.
  
  @node GNAT Binary_Search g-binsea ads,GNAT Bind_Environment g-binenv ads,GNAT AWK g-awk ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-binary-search-g-binsea-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id36}@anchor{33c}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
*************** Allow binary search of a sorted array (o
*** 24255,24261 ****
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{33b}@anchor{gnat_rm/the_gnat_library id37}@anchor{33c}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
--- 24366,24372 ----
  the generic does not reference the array directly).
  
  @node GNAT Bind_Environment g-binenv ads,GNAT Branch_Prediction g-brapre ads,GNAT Binary_Search g-binsea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bind-environment-g-binenv-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id37}@anchor{33e}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
*************** These associations can be specified usin
*** 24268,24274 ****
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{33d}@anchor{gnat_rm/the_gnat_library id38}@anchor{33e}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
--- 24379,24385 ----
  line switch.
  
  @node GNAT Branch_Prediction g-brapre ads,GNAT Bounded_Buffers g-boubuf ads,GNAT Bind_Environment g-binenv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-branch-prediction-g-brapre-ads}@anchor{33f}@anchor{gnat_rm/the_gnat_library id38}@anchor{340}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
*************** line switch.
*** 24279,24285 ****
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{33f}@anchor{gnat_rm/the_gnat_library id39}@anchor{340}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
--- 24390,24396 ----
  Provides routines giving hints to the branch predictor of the code generator.
  
  @node GNAT Bounded_Buffers g-boubuf ads,GNAT Bounded_Mailboxes g-boumai ads,GNAT Branch_Prediction g-brapre ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-buffers-g-boubuf-ads}@anchor{341}@anchor{gnat_rm/the_gnat_library id39}@anchor{342}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
*************** useful directly or as parts of the imple
*** 24294,24300 ****
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{341}@anchor{gnat_rm/the_gnat_library id40}@anchor{342}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
--- 24405,24411 ----
  such as mailboxes.
  
  @node GNAT Bounded_Mailboxes g-boumai ads,GNAT Bubble_Sort g-bubsor ads,GNAT Bounded_Buffers g-boubuf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bounded-mailboxes-g-boumai-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id40}@anchor{344}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
*************** such as mailboxes.
*** 24307,24313 ****
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{343}@anchor{gnat_rm/the_gnat_library id41}@anchor{344}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
--- 24418,24424 ----
  Provides a thread-safe asynchronous intertask mailbox communication facility.
  
  @node GNAT Bubble_Sort g-bubsor ads,GNAT Bubble_Sort_A g-busora ads,GNAT Bounded_Mailboxes g-boumai ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-bubsor-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id41}@anchor{346}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
*************** data items.  Exchange and comparison pro
*** 24322,24328 ****
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{345}@anchor{gnat_rm/the_gnat_library id42}@anchor{346}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
--- 24433,24439 ----
  access-to-procedure values.
  
  @node GNAT Bubble_Sort_A g-busora ads,GNAT Bubble_Sort_G g-busorg ads,GNAT Bubble_Sort g-bubsor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-a-g-busora-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id42}@anchor{348}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
*************** access-to-procedure values. This is an o
*** 24338,24344 ****
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{347}@anchor{gnat_rm/the_gnat_library id43}@anchor{348}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
--- 24449,24455 ----
  compatibility. Usually @code{GNAT.Bubble_Sort} will be preferable.
  
  @node GNAT Bubble_Sort_G g-busorg ads,GNAT Byte_Order_Mark g-byorma ads,GNAT Bubble_Sort_A g-busora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-bubble-sort-g-g-busorg-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id43}@anchor{34a}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24354,24360 ****
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{349}@anchor{gnat_rm/the_gnat_library id44}@anchor{34a}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
--- 24465,24471 ----
  multiple instantiations.
  
  @node GNAT Byte_Order_Mark g-byorma ads,GNAT Byte_Swapping g-bytswa ads,GNAT Bubble_Sort_G g-busorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-order-mark-g-byorma-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id44}@anchor{34c}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
*************** the encoding of the string. The routine
*** 24370,24376 ****
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT C_Time g-c_time ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{34b}@anchor{gnat_rm/the_gnat_library id45}@anchor{34c}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
--- 24481,24487 ----
  sequences for various UCS input formats.
  
  @node GNAT Byte_Swapping g-bytswa ads,GNAT C_Time g-c_time ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id45}@anchor{34e}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
*************** General routines for swapping the bytes
*** 24384,24390 ****
  Machine-specific implementations are available in some cases.
  
  @node GNAT C_Time g-c_time ads,GNAT Calendar g-calend ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-c-time-g-c-time-ads}@anchor{34d}@anchor{gnat_rm/the_gnat_library id46}@anchor{34e}
  @section @code{GNAT.C_Time} (@code{g-c_time.ads})
  
  
--- 24495,24501 ----
  Machine-specific implementations are available in some cases.
  
  @node GNAT C_Time g-c_time ads,GNAT Calendar g-calend ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-c-time-g-c-time-ads}@anchor{34f}@anchor{gnat_rm/the_gnat_library id46}@anchor{350}
  @section @code{GNAT.C_Time} (@code{g-c_time.ads})
  
  
*************** Provides the time_t, timeval and timespe
*** 24396,24402 ****
  types defined by the OS, as well as various conversion functions.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT C_Time g-c_time ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{34f}@anchor{gnat_rm/the_gnat_library id47}@anchor{350}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
--- 24507,24513 ----
  types defined by the OS, as well as various conversion functions.
  
  @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT C_Time g-c_time ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{351}@anchor{gnat_rm/the_gnat_library id47}@anchor{352}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
*************** Extends the facilities provided by @code
*** 24408,24414 ****
  of days of the week, an extended @code{Split} and @code{Time_Of} capability.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{351}@anchor{gnat_rm/the_gnat_library id48}@anchor{352}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
--- 24519,24525 ----
  of days of the week, an extended @code{Split} and @code{Time_Of} capability.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{353}@anchor{gnat_rm/the_gnat_library id48}@anchor{354}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
*************** of days of the week, an extended @code{S
*** 24419,24425 ****
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{353}@anchor{gnat_rm/the_gnat_library id49}@anchor{354}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
--- 24530,24536 ----
  @geindex GNAT.Calendar.Time_IO (g-catiio.ads)
  
  @node GNAT CRC32 g-crc32 ads,GNAT Case_Util g-casuti ads,GNAT Calendar Time_IO g-catiio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-crc32-g-crc32-ads}@anchor{355}@anchor{gnat_rm/the_gnat_library id49}@anchor{356}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
*************** of this algorithm see
*** 24436,24442 ****
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{355}@anchor{gnat_rm/the_gnat_library id50}@anchor{356}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
--- 24547,24553 ----
  Aug. 1988.  Sarwate, D.V.
  
  @node GNAT Case_Util g-casuti ads,GNAT CGI g-cgi ads,GNAT CRC32 g-crc32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-case-util-g-casuti-ads}@anchor{357}@anchor{gnat_rm/the_gnat_library id50}@anchor{358}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
*************** without the overhead of the full casing
*** 24451,24457 ****
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{357}@anchor{gnat_rm/the_gnat_library id51}@anchor{358}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
--- 24562,24568 ----
  in @code{Ada.Characters.Handling}.
  
  @node GNAT CGI g-cgi ads,GNAT CGI Cookie g-cgicoo ads,GNAT Case_Util g-casuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-g-cgi-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id51}@anchor{35a}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
*************** builds a table whose index is the key an
*** 24466,24472 ****
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{359}@anchor{gnat_rm/the_gnat_library id52}@anchor{35a}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
--- 24577,24583 ----
  with this table.
  
  @node GNAT CGI Cookie g-cgicoo ads,GNAT CGI Debug g-cgideb ads,GNAT CGI g-cgi ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-cookie-g-cgicoo-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id52}@anchor{35c}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
*************** Common Gateway Interface (CGI).  It expo
*** 24481,24487 ****
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{35b}@anchor{gnat_rm/the_gnat_library id53}@anchor{35c}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
--- 24592,24598 ----
  cookies (piece of information kept in the Web client software).
  
  @node GNAT CGI Debug g-cgideb ads,GNAT Command_Line g-comlin ads,GNAT CGI Cookie g-cgicoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-cgi-debug-g-cgideb-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id53}@anchor{35e}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
*************** This is a package to help debugging CGI
*** 24493,24499 ****
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{35d}@anchor{gnat_rm/the_gnat_library id54}@anchor{35e}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
--- 24604,24610 ----
  programs written in Ada.
  
  @node GNAT Command_Line g-comlin ads,GNAT Compiler_Version g-comver ads,GNAT CGI Debug g-cgideb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-command-line-g-comlin-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id54}@anchor{360}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
*************** including the ability to scan for named
*** 24506,24512 ****
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{35f}@anchor{gnat_rm/the_gnat_library id55}@anchor{360}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
--- 24617,24623 ----
  and expand file names using wildcard notations.
  
  @node GNAT Compiler_Version g-comver ads,GNAT Ctrl_C g-ctrl_c ads,GNAT Command_Line g-comlin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-compiler-version-g-comver-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id55}@anchor{362}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
*************** of the compiler if a consistent tool set
*** 24524,24530 ****
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{361}@anchor{gnat_rm/the_gnat_library id56}@anchor{362}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
--- 24635,24641 ----
  of a partition).
  
  @node GNAT Ctrl_C g-ctrl_c ads,GNAT Current_Exception g-curexc ads,GNAT Compiler_Version g-comver ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-ctrl-c-g-ctrl-c-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id56}@anchor{364}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
*************** of a partition).
*** 24535,24541 ****
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{363}@anchor{gnat_rm/the_gnat_library id57}@anchor{364}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
--- 24646,24652 ----
  Provides a simple interface to handle Ctrl-C keyboard events.
  
  @node GNAT Current_Exception g-curexc ads,GNAT Debug_Pools g-debpoo ads,GNAT Ctrl_C g-ctrl_c ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-current-exception-g-curexc-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id57}@anchor{366}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
*************** This is particularly useful in simulatin
*** 24552,24558 ****
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{365}@anchor{gnat_rm/the_gnat_library id58}@anchor{366}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
--- 24663,24669 ----
  obtaining information about exceptions provided by Ada 83 compilers.
  
  @node GNAT Debug_Pools g-debpoo ads,GNAT Debug_Utilities g-debuti ads,GNAT Current_Exception g-curexc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-pools-g-debpoo-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id58}@anchor{368}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
*************** problems.
*** 24569,24575 ****
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{367}@anchor{gnat_rm/the_gnat_library id59}@anchor{368}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
--- 24680,24686 ----
  See @code{The GNAT Debug_Pool Facility} section in the @cite{GNAT User’s Guide}.
  
  @node GNAT Debug_Utilities g-debuti ads,GNAT Decode_String g-decstr ads,GNAT Debug_Pools g-debpoo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-debug-utilities-g-debuti-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id59}@anchor{36a}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
*************** to and from string images of address val
*** 24582,24588 ****
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{369}@anchor{gnat_rm/the_gnat_library id60}@anchor{36a}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
--- 24693,24699 ----
  for hexadecimal literals.
  
  @node GNAT Decode_String g-decstr ads,GNAT Decode_UTF8_String g-deutst ads,GNAT Debug_Utilities g-debuti ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-string-g-decstr-ads}@anchor{36b}@anchor{gnat_rm/the_gnat_library id60}@anchor{36c}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
*************** Useful in conjunction with Unicode chara
*** 24606,24612 ****
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{36b}@anchor{gnat_rm/the_gnat_library id61}@anchor{36c}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
--- 24717,24723 ----
  preinstantiation for UTF-8. See next entry.
  
  @node GNAT Decode_UTF8_String g-deutst ads,GNAT Directory_Operations g-dirope ads,GNAT Decode_String g-decstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-decode-utf8-string-g-deutst-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id61}@anchor{36e}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
*************** preinstantiation for UTF-8. See next ent
*** 24627,24633 ****
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{36d}@anchor{gnat_rm/the_gnat_library id62}@anchor{36e}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
--- 24738,24744 ----
  A preinstantiation of GNAT.Decode_Strings for UTF-8 encoding.
  
  @node GNAT Directory_Operations g-dirope ads,GNAT Directory_Operations Iteration g-diopit ads,GNAT Decode_UTF8_String g-deutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-g-dirope-ads}@anchor{36f}@anchor{gnat_rm/the_gnat_library id62}@anchor{370}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
*************** the current directory, making new direct
*** 24640,24646 ****
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{36f}@anchor{gnat_rm/the_gnat_library id63}@anchor{370}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
--- 24751,24757 ----
  directory.
  
  @node GNAT Directory_Operations Iteration g-diopit ads,GNAT Dynamic_HTables g-dynhta ads,GNAT Directory_Operations g-dirope ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-directory-operations-iteration-g-diopit-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id63}@anchor{372}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
*************** A child unit of GNAT.Directory_Operation
*** 24652,24658 ****
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{371}@anchor{gnat_rm/the_gnat_library id64}@anchor{372}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
--- 24763,24769 ----
  for iterating through directories.
  
  @node GNAT Dynamic_HTables g-dynhta ads,GNAT Dynamic_Tables g-dyntab ads,GNAT Directory_Operations Iteration g-diopit ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-htables-g-dynhta-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id64}@anchor{374}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
*************** dynamic instances of the hash table, whi
*** 24670,24676 ****
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{373}@anchor{gnat_rm/the_gnat_library id65}@anchor{374}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
--- 24781,24787 ----
  @code{GNAT.HTable} creates a single instance of the hash table.
  
  @node GNAT Dynamic_Tables g-dyntab ads,GNAT Encode_String g-encstr ads,GNAT Dynamic_HTables g-dynhta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-dynamic-tables-g-dyntab-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id65}@anchor{376}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
*************** dynamic instances of the table, while an
*** 24690,24696 ****
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{375}@anchor{gnat_rm/the_gnat_library id66}@anchor{376}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
--- 24801,24807 ----
  @code{GNAT.Table} creates a single instance of the table type.
  
  @node GNAT Encode_String g-encstr ads,GNAT Encode_UTF8_String g-enutst ads,GNAT Dynamic_Tables g-dyntab ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-string-g-encstr-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id66}@anchor{378}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
*************** encoding method. Useful in conjunction w
*** 24712,24718 ****
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{377}@anchor{gnat_rm/the_gnat_library id67}@anchor{378}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
--- 24823,24829 ----
  Note there is a preinstantiation for UTF-8. See next entry.
  
  @node GNAT Encode_UTF8_String g-enutst ads,GNAT Exception_Actions g-excact ads,GNAT Encode_String g-encstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-encode-utf8-string-g-enutst-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id67}@anchor{37a}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
*************** Note there is a preinstantiation for UTF
*** 24733,24739 ****
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{379}@anchor{gnat_rm/the_gnat_library id68}@anchor{37a}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
--- 24844,24850 ----
  A preinstantiation of GNAT.Encode_Strings for UTF-8 encoding.
  
  @node GNAT Exception_Actions g-excact ads,GNAT Exception_Traces g-exctra ads,GNAT Encode_UTF8_String g-enutst ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-actions-g-excact-ads}@anchor{37b}@anchor{gnat_rm/the_gnat_library id68}@anchor{37c}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
*************** for specific exceptions, or when any exc
*** 24746,24752 ****
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{37b}@anchor{gnat_rm/the_gnat_library id69}@anchor{37c}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
--- 24857,24863 ----
  can be used for instance to force a core dump to ease debugging.
  
  @node GNAT Exception_Traces g-exctra ads,GNAT Exceptions g-except ads,GNAT Exception_Actions g-excact ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exception-traces-g-exctra-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id69}@anchor{37e}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
*************** Provides an interface allowing to contro
*** 24760,24766 ****
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{37d}@anchor{gnat_rm/the_gnat_library id70}@anchor{37e}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
--- 24871,24877 ----
  occurrences.
  
  @node GNAT Exceptions g-except ads,GNAT Expect g-expect ads,GNAT Exception_Traces g-exctra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-exceptions-g-except-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id70}@anchor{380}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
*************** predefined exceptions, and for example a
*** 24781,24787 ****
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{37f}@anchor{gnat_rm/the_gnat_library id71}@anchor{380}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
--- 24892,24898 ----
  @code{Constraint_Error} with a message from a pure subprogram.
  
  @node GNAT Expect g-expect ads,GNAT Expect TTY g-exptty ads,GNAT Exceptions g-except ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-g-expect-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id71}@anchor{382}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
*************** It is not implemented for cross ports, a
*** 24797,24803 ****
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{381}@anchor{gnat_rm/the_gnat_library id72}@anchor{382}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
--- 24908,24914 ----
  implemented for VxWorks or LynxOS.
  
  @node GNAT Expect TTY g-exptty ads,GNAT Float_Control g-flocon ads,GNAT Expect g-expect ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-expect-tty-g-exptty-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id72}@anchor{384}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
*************** ports. It is not implemented for cross p
*** 24809,24815 ****
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{383}@anchor{gnat_rm/the_gnat_library id73}@anchor{384}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
--- 24920,24926 ----
  in particular is not implemented for VxWorks or LynxOS.
  
  @node GNAT Float_Control g-flocon ads,GNAT Formatted_String g-forstr ads,GNAT Expect TTY g-exptty ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-float-control-g-flocon-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id73}@anchor{386}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
*************** library calls may cause this mode to be
*** 24823,24829 ****
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{385}@anchor{gnat_rm/the_gnat_library id74}@anchor{386}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
--- 24934,24940 ----
  in this package can be used to reestablish the required mode.
  
  @node GNAT Formatted_String g-forstr ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Float_Control g-flocon ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-formatted-string-g-forstr-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id74}@anchor{388}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
*************** derived from Integer, Float or enumerati
*** 24838,24844 ****
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{387}@anchor{gnat_rm/the_gnat_library id75}@anchor{388}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
--- 24949,24955 ----
  formatted string.
  
  @node GNAT Generic_Fast_Math_Functions g-gfmafu ads,GNAT Heap_Sort g-heasor ads,GNAT Formatted_String g-forstr ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-generic-fast-math-functions-g-gfmafu-ads}@anchor{389}@anchor{gnat_rm/the_gnat_library id75}@anchor{38a}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
*************** have a vector implementation that can be
*** 24856,24862 ****
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{389}@anchor{gnat_rm/the_gnat_library id76}@anchor{38a}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
--- 24967,24973 ----
  compiler when auto-vectorization is enabled.
  
  @node GNAT Heap_Sort g-heasor ads,GNAT Heap_Sort_A g-hesora ads,GNAT Generic_Fast_Math_Functions g-gfmafu ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-heasor-ads}@anchor{38b}@anchor{gnat_rm/the_gnat_library id76}@anchor{38c}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
*************** access-to-procedure values.  The algorit
*** 24870,24876 ****
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{38b}@anchor{gnat_rm/the_gnat_library id77}@anchor{38c}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
--- 24981,24987 ----
  that performs approximately N*log(N) comparisons in the worst case.
  
  @node GNAT Heap_Sort_A g-hesora ads,GNAT Heap_Sort_G g-hesorg ads,GNAT Heap_Sort g-heasor ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-a-g-hesora-ads}@anchor{38d}@anchor{gnat_rm/the_gnat_library id77}@anchor{38e}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
*************** This differs from @code{GNAT.Heap_Sort}
*** 24886,24892 ****
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{38d}@anchor{gnat_rm/the_gnat_library id78}@anchor{38e}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
--- 24997,25003 ----
  interface, but may be slightly more efficient.
  
  @node GNAT Heap_Sort_G g-hesorg ads,GNAT HTable g-htable ads,GNAT Heap_Sort_A g-hesora ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-heap-sort-g-g-hesorg-ads}@anchor{38f}@anchor{gnat_rm/the_gnat_library id78}@anchor{390}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24900,24906 ****
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{38f}@anchor{gnat_rm/the_gnat_library id79}@anchor{390}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
--- 25011,25017 ----
  multiple instantiations.
  
  @node GNAT HTable g-htable ads,GNAT IO g-io ads,GNAT Heap_Sort_G g-hesorg ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-htable-g-htable-ads}@anchor{391}@anchor{gnat_rm/the_gnat_library id79}@anchor{392}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
*************** data.  Provides two approaches, one a si
*** 24913,24919 ****
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{391}@anchor{gnat_rm/the_gnat_library id80}@anchor{392}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
--- 25024,25030 ----
  allowing arbitrary dynamic hash tables.
  
  @node GNAT IO g-io ads,GNAT IO_Aux g-io_aux ads,GNAT HTable g-htable ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-g-io-ads}@anchor{393}@anchor{gnat_rm/the_gnat_library id80}@anchor{394}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
*************** Standard_Input, and writing characters,
*** 24929,24935 ****
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{393}@anchor{gnat_rm/the_gnat_library id81}@anchor{394}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
--- 25040,25046 ----
  Standard_Output or Standard_Error.
  
  @node GNAT IO_Aux g-io_aux ads,GNAT Lock_Files g-locfil ads,GNAT IO g-io ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-io-aux-g-io-aux-ads}@anchor{395}@anchor{gnat_rm/the_gnat_library id81}@anchor{396}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
*************** Provides some auxiliary functions for us
*** 24943,24949 ****
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{395}@anchor{gnat_rm/the_gnat_library id82}@anchor{396}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
--- 25054,25060 ----
  for whether a file exists, and functions for reading a line of text.
  
  @node GNAT Lock_Files g-locfil ads,GNAT MBBS_Discrete_Random g-mbdira ads,GNAT IO_Aux g-io_aux ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-lock-files-g-locfil-ads}@anchor{397}@anchor{gnat_rm/the_gnat_library id82}@anchor{398}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
*************** Provides a general interface for using f
*** 24957,24963 ****
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{397}@anchor{gnat_rm/the_gnat_library id83}@anchor{398}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
--- 25068,25074 ----
  providing program level synchronization.
  
  @node GNAT MBBS_Discrete_Random g-mbdira ads,GNAT MBBS_Float_Random g-mbflra ads,GNAT Lock_Files g-locfil ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-discrete-random-g-mbdira-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id83}@anchor{39a}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
*************** The original implementation of @code{Ada
*** 24969,24975 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{399}@anchor{gnat_rm/the_gnat_library id84}@anchor{39a}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
--- 25080,25086 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MBBS_Float_Random g-mbflra ads,GNAT MD5 g-md5 ads,GNAT MBBS_Discrete_Random g-mbdira ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-mbbs-float-random-g-mbflra-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id84}@anchor{39c}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
*************** The original implementation of @code{Ada
*** 24981,24987 ****
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{39b}@anchor{gnat_rm/the_gnat_library id85}@anchor{39c}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
--- 25092,25098 ----
  a modified version of the Blum-Blum-Shub generator.
  
  @node GNAT MD5 g-md5 ads,GNAT Memory_Dump g-memdum ads,GNAT MBBS_Float_Random g-mbflra ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-md5-g-md5-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id85}@anchor{39e}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
*************** the HMAC-MD5 message authentication func
*** 24994,25000 ****
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{39d}@anchor{gnat_rm/the_gnat_library id86}@anchor{39e}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
--- 25105,25111 ----
  FIPS PUB 198.
  
  @node GNAT Memory_Dump g-memdum ads,GNAT Most_Recent_Exception g-moreex ads,GNAT MD5 g-md5 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-memory-dump-g-memdum-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id86}@anchor{3a0}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
*************** standard output or standard error files.
*** 25007,25013 ****
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{39f}@anchor{gnat_rm/the_gnat_library id87}@anchor{3a0}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
--- 25118,25124 ----
  output.
  
  @node GNAT Most_Recent_Exception g-moreex ads,GNAT OS_Lib g-os_lib ads,GNAT Memory_Dump g-memdum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-most-recent-exception-g-moreex-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id87}@anchor{3a2}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
*************** various logging purposes, including dupl
*** 25021,25027 ****
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{3a1}@anchor{gnat_rm/the_gnat_library id88}@anchor{3a2}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
--- 25132,25138 ----
  Ada 83 implementation dependent extensions.
  
  @node GNAT OS_Lib g-os_lib ads,GNAT Perfect_Hash_Generators g-pehage ads,GNAT Most_Recent_Exception g-moreex ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-os-lib-g-os-lib-ads}@anchor{3a3}@anchor{gnat_rm/the_gnat_library id88}@anchor{3a4}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
*************** including a portable spawn procedure, an
*** 25037,25043 ****
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{3a3}@anchor{gnat_rm/the_gnat_library id89}@anchor{3a4}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
--- 25148,25154 ----
  and error return codes.
  
  @node GNAT Perfect_Hash_Generators g-pehage ads,GNAT Random_Numbers g-rannum ads,GNAT OS_Lib g-os_lib ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-perfect-hash-generators-g-pehage-ads}@anchor{3a5}@anchor{gnat_rm/the_gnat_library id89}@anchor{3a6}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
*************** hashcode are in the same order. These ha
*** 25055,25061 ****
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{3a5}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a6}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
--- 25166,25172 ----
  convenient for use with realtime applications.
  
  @node GNAT Random_Numbers g-rannum ads,GNAT Regexp g-regexp ads,GNAT Perfect_Hash_Generators g-pehage ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-random-numbers-g-rannum-ads}@anchor{3a7}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a8}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
*************** however NOT suitable for situations requ
*** 25069,25075 ****
  randomness.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{27a}@anchor{gnat_rm/the_gnat_library id91}@anchor{3a7}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
--- 25180,25186 ----
  randomness.
  
  @node GNAT Regexp g-regexp ads,GNAT Registry g-regist ads,GNAT Random_Numbers g-rannum ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regexp-g-regexp-ads}@anchor{27c}@anchor{gnat_rm/the_gnat_library id91}@anchor{3a9}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
*************** simplest of the three pattern matching p
*** 25085,25091 ****
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{3a8}@anchor{gnat_rm/the_gnat_library id92}@anchor{3a9}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
--- 25196,25202 ----
  suitable for ‘file globbing’ applications.
  
  @node GNAT Registry g-regist ads,GNAT Regpat g-regpat ads,GNAT Regexp g-regexp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-registry-g-regist-ads}@anchor{3aa}@anchor{gnat_rm/the_gnat_library id92}@anchor{3ab}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
*************** registry API, but at a lower level of ab
*** 25099,25105 ****
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{3aa}@anchor{gnat_rm/the_gnat_library id93}@anchor{3ab}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
--- 25210,25216 ----
  package provided with the Win32Ada binding
  
  @node GNAT Regpat g-regpat ads,GNAT Rewrite_Data g-rewdat ads,GNAT Registry g-regist ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-regpat-g-regpat-ads}@anchor{3ac}@anchor{gnat_rm/the_gnat_library id93}@anchor{3ad}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
*************** from the original V7 style regular expre
*** 25114,25120 ****
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{3ac}@anchor{gnat_rm/the_gnat_library id94}@anchor{3ad}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
--- 25225,25231 ----
  Henry Spencer (and binary compatible with this C library).
  
  @node GNAT Rewrite_Data g-rewdat ads,GNAT Secondary_Stack_Info g-sestin ads,GNAT Regpat g-regpat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-rewrite-data-g-rewdat-ads}@anchor{3ae}@anchor{gnat_rm/the_gnat_library id94}@anchor{3af}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
*************** full content to be processed is not load
*** 25128,25134 ****
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{3ae}@anchor{gnat_rm/the_gnat_library id95}@anchor{3af}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
--- 25239,25245 ----
  this interface usable for large files or socket streams.
  
  @node GNAT Secondary_Stack_Info g-sestin ads,GNAT Semaphores g-semaph ads,GNAT Rewrite_Data g-rewdat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-secondary-stack-info-g-sestin-ads}@anchor{3b0}@anchor{gnat_rm/the_gnat_library id95}@anchor{3b1}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
*************** Provides the capability to query the hig
*** 25140,25146 ****
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{3b0}@anchor{gnat_rm/the_gnat_library id96}@anchor{3b1}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
--- 25251,25257 ----
  secondary stack.
  
  @node GNAT Semaphores g-semaph ads,GNAT Serial_Communications g-sercom ads,GNAT Secondary_Stack_Info g-sestin ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-semaphores-g-semaph-ads}@anchor{3b2}@anchor{gnat_rm/the_gnat_library id96}@anchor{3b3}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
*************** secondary stack.
*** 25151,25157 ****
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{3b2}@anchor{gnat_rm/the_gnat_library id97}@anchor{3b3}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
--- 25262,25268 ----
  Provides classic counting and binary semaphores using protected types.
  
  @node GNAT Serial_Communications g-sercom ads,GNAT SHA1 g-sha1 ads,GNAT Semaphores g-semaph ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-serial-communications-g-sercom-ads}@anchor{3b4}@anchor{gnat_rm/the_gnat_library id97}@anchor{3b5}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
*************** Provides a simple interface to send and
*** 25163,25169 ****
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{3b4}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b5}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
--- 25274,25280 ----
  port. This is only supported on GNU/Linux and Windows.
  
  @node GNAT SHA1 g-sha1 ads,GNAT SHA224 g-sha224 ads,GNAT Serial_Communications g-sercom ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha1-g-sha1-ads}@anchor{3b6}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b7}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
*************** and RFC 3174, and the HMAC-SHA1 message
*** 25176,25182 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{3b6}@anchor{gnat_rm/the_gnat_library id99}@anchor{3b7}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
--- 25287,25293 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA224 g-sha224 ads,GNAT SHA256 g-sha256 ads,GNAT SHA1 g-sha1 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha224-g-sha224-ads}@anchor{3b8}@anchor{gnat_rm/the_gnat_library id99}@anchor{3b9}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
*************** and the HMAC-SHA224 message authenticati
*** 25189,25195 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{3b8}@anchor{gnat_rm/the_gnat_library id100}@anchor{3b9}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
--- 25300,25306 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA256 g-sha256 ads,GNAT SHA384 g-sha384 ads,GNAT SHA224 g-sha224 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha256-g-sha256-ads}@anchor{3ba}@anchor{gnat_rm/the_gnat_library id100}@anchor{3bb}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
*************** and the HMAC-SHA256 message authenticati
*** 25202,25208 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{3ba}@anchor{gnat_rm/the_gnat_library id101}@anchor{3bb}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
--- 25313,25319 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA384 g-sha384 ads,GNAT SHA512 g-sha512 ads,GNAT SHA256 g-sha256 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha384-g-sha384-ads}@anchor{3bc}@anchor{gnat_rm/the_gnat_library id101}@anchor{3bd}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
*************** and the HMAC-SHA384 message authenticati
*** 25215,25221 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{3bc}@anchor{gnat_rm/the_gnat_library id102}@anchor{3bd}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
--- 25326,25332 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT SHA512 g-sha512 ads,GNAT Signals g-signal ads,GNAT SHA384 g-sha384 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sha512-g-sha512-ads}@anchor{3be}@anchor{gnat_rm/the_gnat_library id102}@anchor{3bf}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
*************** and the HMAC-SHA512 message authenticati
*** 25228,25234 ****
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{3be}@anchor{gnat_rm/the_gnat_library id103}@anchor{3bf}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
--- 25339,25345 ----
  in RFC 2104 and FIPS PUB 198.
  
  @node GNAT Signals g-signal ads,GNAT Sockets g-socket ads,GNAT SHA512 g-sha512 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-signals-g-signal-ads}@anchor{3c0}@anchor{gnat_rm/the_gnat_library id103}@anchor{3c1}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
*************** Provides the ability to manipulate the b
*** 25240,25246 ****
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3c0}@anchor{gnat_rm/the_gnat_library id104}@anchor{3c1}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
--- 25351,25357 ----
  targets.
  
  @node GNAT Sockets g-socket ads,GNAT Source_Info g-souinf ads,GNAT Signals g-signal ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sockets-g-socket-ads}@anchor{3c2}@anchor{gnat_rm/the_gnat_library id104}@anchor{3c3}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
*************** on all native GNAT ports and on VxWorks
*** 25255,25261 ****
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3c2}@anchor{gnat_rm/the_gnat_library id105}@anchor{3c3}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
--- 25366,25372 ----
  the LynxOS cross port.
  
  @node GNAT Source_Info g-souinf ads,GNAT Spelling_Checker g-speche ads,GNAT Sockets g-socket ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-source-info-g-souinf-ads}@anchor{3c4}@anchor{gnat_rm/the_gnat_library id105}@anchor{3c5}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
*************** subprograms yielding the date and time o
*** 25269,25275 ****
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3c4}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c5}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
--- 25380,25386 ----
  C macros @code{__DATE__} and @code{__TIME__})
  
  @node GNAT Spelling_Checker g-speche ads,GNAT Spelling_Checker_Generic g-spchge ads,GNAT Source_Info g-souinf ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-g-speche-ads}@anchor{3c6}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c7}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
*************** Provides a function for determining whet
*** 25281,25287 ****
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3c6}@anchor{gnat_rm/the_gnat_library id107}@anchor{3c7}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
--- 25392,25398 ----
  near misspelling of another string.
  
  @node GNAT Spelling_Checker_Generic g-spchge ads,GNAT Spitbol Patterns g-spipat ads,GNAT Spelling_Checker g-speche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spelling-checker-generic-g-spchge-ads}@anchor{3c8}@anchor{gnat_rm/the_gnat_library id107}@anchor{3c9}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
*************** determining whether one string is a plau
*** 25294,25300 ****
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3c8}@anchor{gnat_rm/the_gnat_library id108}@anchor{3c9}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
--- 25405,25411 ----
  string.
  
  @node GNAT Spitbol Patterns g-spipat ads,GNAT Spitbol g-spitbo ads,GNAT Spelling_Checker_Generic g-spchge ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-patterns-g-spipat-ads}@anchor{3ca}@anchor{gnat_rm/the_gnat_library id108}@anchor{3cb}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
*************** the SNOBOL4 dynamic pattern construction
*** 25310,25316 ****
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3ca}@anchor{gnat_rm/the_gnat_library id109}@anchor{3cb}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
--- 25421,25427 ----
  efficient algorithm developed by Robert Dewar for the SPITBOL system.
  
  @node GNAT Spitbol g-spitbo ads,GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Patterns g-spipat ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-g-spitbo-ads}@anchor{3cc}@anchor{gnat_rm/the_gnat_library id109}@anchor{3cd}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
*************** useful for constructing arbitrary mappin
*** 25325,25331 ****
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3cc}@anchor{gnat_rm/the_gnat_library id110}@anchor{3cd}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
--- 25436,25442 ----
  the SNOBOL4 TABLE function.
  
  @node GNAT Spitbol Table_Boolean g-sptabo ads,GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol g-spitbo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-boolean-g-sptabo-ads}@anchor{3ce}@anchor{gnat_rm/the_gnat_library id110}@anchor{3cf}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
*************** for type @code{Standard.Boolean}, giving
*** 25340,25346 ****
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3ce}@anchor{gnat_rm/the_gnat_library id111}@anchor{3cf}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
--- 25451,25457 ----
  string values.
  
  @node GNAT Spitbol Table_Integer g-sptain ads,GNAT Spitbol Table_VString g-sptavs ads,GNAT Spitbol Table_Boolean g-sptabo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-integer-g-sptain-ads}@anchor{3d0}@anchor{gnat_rm/the_gnat_library id111}@anchor{3d1}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
*************** for type @code{Standard.Integer}, giving
*** 25357,25363 ****
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3d0}@anchor{gnat_rm/the_gnat_library id112}@anchor{3d1}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
--- 25468,25474 ----
  from string to integer values.
  
  @node GNAT Spitbol Table_VString g-sptavs ads,GNAT SSE g-sse ads,GNAT Spitbol Table_Integer g-sptain ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-spitbol-table-vstring-g-sptavs-ads}@anchor{3d2}@anchor{gnat_rm/the_gnat_library id112}@anchor{3d3}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
*************** a variable length string type, giving an
*** 25374,25380 ****
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3d2}@anchor{gnat_rm/the_gnat_library id113}@anchor{3d3}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
--- 25485,25491 ----
  maps from strings to strings.
  
  @node GNAT SSE g-sse ads,GNAT SSE Vector_Types g-ssvety ads,GNAT Spitbol Table_VString g-sptavs ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-g-sse-ads}@anchor{3d4}@anchor{gnat_rm/the_gnat_library id113}@anchor{3d5}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
*************** targets.  It exposes vector component ty
*** 25386,25392 ****
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3d4}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d5}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
--- 25497,25503 ----
  introduction to the binding contents and use.
  
  @node GNAT SSE Vector_Types g-ssvety ads,GNAT String_Hash g-strhas ads,GNAT SSE g-sse ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-sse-vector-types-g-ssvety-ads}@anchor{3d6}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d7}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
*************** introduction to the binding contents and
*** 25395,25401 ****
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3d6}@anchor{gnat_rm/the_gnat_library id115}@anchor{3d7}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
--- 25506,25512 ----
  SSE vector types for use with SSE related intrinsics.
  
  @node GNAT String_Hash g-strhas ads,GNAT Strings g-string ads,GNAT SSE Vector_Types g-ssvety ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-hash-g-strhas-ads}@anchor{3d8}@anchor{gnat_rm/the_gnat_library id115}@anchor{3d9}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
*************** Provides a generic hash function working
*** 25407,25413 ****
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3d8}@anchor{gnat_rm/the_gnat_library id116}@anchor{3d9}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
--- 25518,25524 ----
  type and the hash result type are parameters.
  
  @node GNAT Strings g-string ads,GNAT String_Split g-strspl ads,GNAT String_Hash g-strhas ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-strings-g-string-ads}@anchor{3da}@anchor{gnat_rm/the_gnat_library id116}@anchor{3db}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
*************** Common String access types and related s
*** 25417,25423 ****
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3da}@anchor{gnat_rm/the_gnat_library id117}@anchor{3db}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
--- 25528,25534 ----
  defines a string access and an array of string access types.
  
  @node GNAT String_Split g-strspl ads,GNAT Table g-table ads,GNAT Strings g-string ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-string-split-g-strspl-ads}@anchor{3dc}@anchor{gnat_rm/the_gnat_library id117}@anchor{3dd}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
*************** to the resulting slices. This package is
*** 25431,25437 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3dc}@anchor{gnat_rm/the_gnat_library id118}@anchor{3dd}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
--- 25542,25548 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Table g-table ads,GNAT Task_Lock g-tasloc ads,GNAT String_Split g-strspl ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-table-g-table-ads}@anchor{3de}@anchor{gnat_rm/the_gnat_library id118}@anchor{3df}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
*************** while an instantiation of @code{GNAT.Dyn
*** 25451,25457 ****
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3de}@anchor{gnat_rm/the_gnat_library id119}@anchor{3df}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
--- 25562,25568 ----
  used to define dynamic instances of the table.
  
  @node GNAT Task_Lock g-tasloc ads,GNAT Time_Stamp g-timsta ads,GNAT Table g-table ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-task-lock-g-tasloc-ads}@anchor{3e0}@anchor{gnat_rm/the_gnat_library id119}@anchor{3e1}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
*************** single global task lock.  Appropriate fo
*** 25468,25474 ****
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3e0}@anchor{gnat_rm/the_gnat_library id120}@anchor{3e1}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
--- 25579,25585 ----
  between tasks is very rarely expected.
  
  @node GNAT Time_Stamp g-timsta ads,GNAT Threads g-thread ads,GNAT Task_Lock g-tasloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-time-stamp-g-timsta-ads}@anchor{3e2}@anchor{gnat_rm/the_gnat_library id120}@anchor{3e3}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
*************** represents the current date and time in
*** 25483,25489 ****
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3e2}@anchor{gnat_rm/the_gnat_library id121}@anchor{3e3}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
--- 25594,25600 ----
  routine with minimal code and there are no dependencies on any other unit.
  
  @node GNAT Threads g-thread ads,GNAT Traceback g-traceb ads,GNAT Time_Stamp g-timsta ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-threads-g-thread-ads}@anchor{3e4}@anchor{gnat_rm/the_gnat_library id121}@anchor{3e5}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
*************** further details if your program has thre
*** 25500,25506 ****
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3e4}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e5}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
--- 25611,25617 ----
  environment which then accesses Ada code.
  
  @node GNAT Traceback g-traceb ads,GNAT Traceback Symbolic g-trasym ads,GNAT Threads g-thread ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-g-traceb-ads}@anchor{3e6}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e7}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
*************** Provides a facility for obtaining non-sy
*** 25512,25518 ****
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3e6}@anchor{gnat_rm/the_gnat_library id123}@anchor{3e7}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
--- 25623,25629 ----
  in various debugging situations.
  
  @node GNAT Traceback Symbolic g-trasym ads,GNAT UTF_32 g-utf_32 ads,GNAT Traceback g-traceb ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-traceback-symbolic-g-trasym-ads}@anchor{3e8}@anchor{gnat_rm/the_gnat_library id123}@anchor{3e9}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
*************** in various debugging situations.
*** 25521,25527 ****
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3e8}@anchor{gnat_rm/the_gnat_library id124}@anchor{3e9}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
--- 25632,25638 ----
  @geindex Trace back facilities
  
  @node GNAT UTF_32 g-utf_32 ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Traceback Symbolic g-trasym ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-g-utf-32-ads}@anchor{3ea}@anchor{gnat_rm/the_gnat_library id124}@anchor{3eb}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
*************** lower case to upper case fold routine co
*** 25540,25546 ****
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3ea}@anchor{gnat_rm/the_gnat_library id125}@anchor{3eb}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
--- 25651,25657 ----
  the Ada 2005 rules for identifier equivalence.
  
  @node GNAT UTF_32_Spelling_Checker g-u3spch ads,GNAT Wide_Spelling_Checker g-wispch ads,GNAT UTF_32 g-utf_32 ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-utf-32-spelling-checker-g-u3spch-ads}@anchor{3ec}@anchor{gnat_rm/the_gnat_library id125}@anchor{3ed}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
*************** near misspelling of another wide wide st
*** 25553,25559 ****
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3ec}@anchor{gnat_rm/the_gnat_library id126}@anchor{3ed}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
--- 25664,25670 ----
  using the UTF_32_String type defined in System.Wch_Cnv.
  
  @node GNAT Wide_Spelling_Checker g-wispch ads,GNAT Wide_String_Split g-wistsp ads,GNAT UTF_32_Spelling_Checker g-u3spch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-spelling-checker-g-wispch-ads}@anchor{3ee}@anchor{gnat_rm/the_gnat_library id126}@anchor{3ef}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
*************** Provides a function for determining whet
*** 25565,25571 ****
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3ee}@anchor{gnat_rm/the_gnat_library id127}@anchor{3ef}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
--- 25676,25682 ----
  near misspelling of another wide string.
  
  @node GNAT Wide_String_Split g-wistsp ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Spelling_Checker g-wispch ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-string-split-g-wistsp-ads}@anchor{3f0}@anchor{gnat_rm/the_gnat_library id127}@anchor{3f1}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25579,25585 ****
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3f0}@anchor{gnat_rm/the_gnat_library id128}@anchor{3f1}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
--- 25690,25696 ----
  @code{GNAT.Array_Split}.
  
  @node GNAT Wide_Wide_Spelling_Checker g-zspche ads,GNAT Wide_Wide_String_Split g-zistsp ads,GNAT Wide_String_Split g-wistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-spelling-checker-g-zspche-ads}@anchor{3f2}@anchor{gnat_rm/the_gnat_library id128}@anchor{3f3}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
*************** Provides a function for determining whet
*** 25591,25597 ****
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3f2}@anchor{gnat_rm/the_gnat_library id129}@anchor{3f3}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
--- 25702,25708 ----
  near misspelling of another wide wide string.
  
  @node GNAT Wide_Wide_String_Split g-zistsp ads,Interfaces C Extensions i-cexten ads,GNAT Wide_Wide_Spelling_Checker g-zspche ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-wide-wide-string-split-g-zistsp-ads}@anchor{3f4}@anchor{gnat_rm/the_gnat_library id129}@anchor{3f5}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25605,25611 ****
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3f4}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3f5}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
--- 25716,25722 ----
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3f6}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3f7}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
*************** for use with either manually or automati
*** 25616,25622 ****
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3f6}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3f7}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
--- 25727,25733 ----
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3f8}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3f9}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
*************** This package is a binding for the most c
*** 25629,25635 ****
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3f8}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3f9}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
--- 25740,25746 ----
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3fa}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3fb}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
*************** from a packed decimal format compatible
*** 25644,25650 ****
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3fa}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3fb}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
--- 25755,25761 ----
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3fc}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3fd}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
*************** mainframes.
*** 25658,25664 ****
  This package provides a limited binding to the VxWorks API.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3fc}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3fd}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
--- 25769,25775 ----
  This package provides a limited binding to the VxWorks API.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3fe}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{3ff}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
*************** function codes. A particular use of this
*** 25681,25687 ****
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{3fe}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{3ff}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
--- 25792,25798 ----
  to enable the use of Get_Immediate under VxWorks.
  
  @node System Address_Image s-addima ads,System Assertions s-assert ads,Interfaces VxWorks IO i-vxwoio ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id135}@anchor{400}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{401}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
*************** function that gives an (implementation d
*** 25697,25703 ****
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{400}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{401}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
--- 25808,25814 ----
  string which identifies an address.
  
  @node System Assertions s-assert ads,System Atomic_Counters s-atocou ads,System Address_Image s-addima ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id136}@anchor{402}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{403}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
*************** by an run-time assertion failure, as wel
*** 25713,25719 ****
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{402}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{403}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
--- 25824,25830 ----
  is used internally to raise this assertion.
  
  @node System Atomic_Counters s-atocou ads,System Memory s-memory ads,System Assertions s-assert ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id137}@anchor{404}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{405}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
*************** on most targets, including all Alpha, AA
*** 25727,25733 ****
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{404}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{405}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
--- 25838,25844 ----
  x86, and x86_64 platforms.
  
  @node System Memory s-memory ads,System Multiprocessors s-multip ads,System Atomic_Counters s-atocou ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id138}@anchor{406}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{407}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
*************** calls to this unit may be made for low l
*** 25745,25751 ****
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{406}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{407}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
--- 25856,25862 ----
  example see the body of @code{GNAT.Tables}).
  
  @node System Multiprocessors s-multip ads,System Multiprocessors Dispatching_Domains s-mudido ads,System Memory s-memory ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id139}@anchor{408}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{409}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25758,25764 ****
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{408}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{409}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
--- 25869,25875 ----
  technically an implementation-defined addition).
  
  @node System Multiprocessors Dispatching_Domains s-mudido ads,System Partition_Interface s-parint ads,System Multiprocessors s-multip ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id140}@anchor{40a}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{40b}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25771,25777 ****
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{40a}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{40b}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
--- 25882,25888 ----
  technically an implementation-defined addition).
  
  @node System Partition_Interface s-parint ads,System Pool_Global s-pooglo ads,System Multiprocessors Dispatching_Domains s-mudido ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id141}@anchor{40c}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{40d}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
*************** technically an implementation-defined ad
*** 25781,25790 ****
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with @code{PolyORB}.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{40c}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{40d}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
--- 25892,25902 ----
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with @code{PolyORB}.  `NB!' See the note in @ref{271,,PolyORB} regarding
! the lifetime of this product.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{40e}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{40f}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
*************** declared. It uses malloc/free to allocat
*** 25801,25807 ****
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{40e}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{40f}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
--- 25913,25919 ----
  do any automatic reclamation.
  
  @node System Pool_Local s-pooloc ads,System Restrictions s-restri ads,System Pool_Global s-pooglo ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id143}@anchor{410}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{411}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
*************** a list of allocated blocks, so that all
*** 25818,25824 ****
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{410}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{411}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
--- 25930,25936 ----
  be freed automatically when the pool is finalized.
  
  @node System Restrictions s-restri ads,System Rident s-rident ads,System Pool_Local s-pooloc ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id144}@anchor{412}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{413}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
*************** compiler determined information on which
*** 25834,25840 ****
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{412}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{413}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
--- 25946,25952 ----
  are violated by one or more packages in the partition.
  
  @node System Rident s-rident ads,System Strings Stream_Ops s-ststop ads,System Restrictions s-restri ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id145}@anchor{414}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{415}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
*************** since the necessary instantiation is inc
*** 25850,25856 ****
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{414}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{415}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
--- 25962,25968 ----
  package System.Restrictions.
  
  @node System Strings Stream_Ops s-ststop ads,System Unsigned_Types s-unstyp ads,System Rident s-rident ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id146}@anchor{416}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{417}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
*************** stream attributes are applied to string
*** 25866,25872 ****
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{416}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{417}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
--- 25978,25984 ----
  package can be used directly by application programs.
  
  @node System Unsigned_Types s-unstyp ads,System Wch_Cnv s-wchcnv ads,System Strings Stream_Ops s-ststop ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id147}@anchor{418}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{419}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
*************** also contains some related definitions f
*** 25879,25885 ****
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{418}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{419}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
--- 25991,25997 ----
  used by the compiler in connection with packed array types.
  
  @node System Wch_Cnv s-wchcnv ads,System Wch_Con s-wchcon ads,System Unsigned_Types s-unstyp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id148}@anchor{41a}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{41b}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
*************** encoding method.  It uses definitions in
*** 25900,25906 ****
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id149}@anchor{41a}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{41b}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
--- 26012,26018 ----
  package @code{System.Wch_Con}.
  
  @node System Wch_Con s-wchcon ads,,System Wch_Cnv s-wchcnv ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id149}@anchor{41c}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{41d}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
*************** in ordinary strings.  These definitions
*** 25912,25918 ****
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{41c}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{41d}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
--- 26024,26030 ----
  the package @code{System.Wch_Cnv}.
  
  @node Interfacing to Other Languages,Specialized Needs Annexes,The GNAT Library,Top
! @anchor{gnat_rm/interfacing_to_other_languages doc}@anchor{41e}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{41f}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
*************** provided.
*** 25930,25936 ****
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{41e}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{41f}
  @section Interfacing to C
  
  
--- 26042,26048 ----
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{420}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{421}
  @section Interfacing to C
  
  
*************** of the length corresponding to the @code
*** 26070,26076 ****
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{49}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{420}
  @section Interfacing to C++
  
  
--- 26182,26188 ----
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{4a}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{422}
  @section Interfacing to C++
  
  
*************** builds an opaque @code{Type_Info_Ptr} to
*** 26287,26293 ****
  object at a given @code{System.Address}.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{421}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{422}
  @section Interfacing to COBOL
  
  
--- 26399,26405 ----
  object at a given @code{System.Address}.
  
  @node Interfacing to COBOL,Interfacing to Fortran,Interfacing to C++,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id5}@anchor{423}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{424}
  @section Interfacing to COBOL
  
  
*************** Interfacing to COBOL is achieved as desc
*** 26295,26301 ****
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{423}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{424}
  @section Interfacing to Fortran
  
  
--- 26407,26413 ----
  the Ada Reference Manual.
  
  @node Interfacing to Fortran,Interfacing to non-GNAT Ada code,Interfacing to COBOL,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id6}@anchor{425}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{426}
  @section Interfacing to Fortran
  
  
*************** multi-dimensional array causes the array
*** 26305,26311 ****
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{425}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{426}
  @section Interfacing to non-GNAT Ada code
  
  
--- 26417,26423 ----
  order as required for convenient interface to Fortran.
  
  @node Interfacing to non-GNAT Ada code,,Interfacing to Fortran,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id7}@anchor{427}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{428}
  @section Interfacing to non-GNAT Ada code
  
  
*************** values or simple record types without va
*** 26329,26335 ****
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{427}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{428}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
--- 26441,26447 ----
  types with fixed bounds.
  
  @node Specialized Needs Annexes,Implementation of Specific Ada Features,Interfacing to Other Languages,Top
! @anchor{gnat_rm/specialized_needs_annexes doc}@anchor{429}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{42a}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
*************** The Real-Time Systems Annex is fully imp
*** 26350,26356 ****
  
  Stub generation is fully implemented in the GNAT compiler.  In addition,
  a complete compatible PCS is available as part of @code{PolyORB},
! a separate product. Note, that PolyORB is a deprecated product and will be eventually replaced with other technologies such as @code{RTI}.
  
  @item `Information Systems (Annex F)'
  
--- 26462,26468 ----
  
  Stub generation is fully implemented in the GNAT compiler.  In addition,
  a complete compatible PCS is available as part of @code{PolyORB},
! a separate product. `NB!' See the note in @ref{271,,PolyORB} regarding the lifetime of this product.
  
  @item `Information Systems (Annex F)'
  
*************** in Ada 2005) is fully implemented.
*** 26367,26373 ****
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2022 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{429}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{42a}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
--- 26479,26485 ----
  @end table
  
  @node Implementation of Specific Ada Features,Implementation of Ada 2022 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{42b}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
*************** facilities.
*** 26386,26392 ****
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{42b}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{182}
  @section Machine Code Insertions
  
  
--- 26498,26504 ----
  @end menu
  
  @node Machine Code Insertions,GNAT Implementation of Tasking,,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id2}@anchor{42d}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{183}
  @section Machine Code Insertions
  
  
*************** according to normal visibility rules. In
*** 26554,26560 ****
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{42d}
  @section GNAT Implementation of Tasking
  
  
--- 26666,26672 ----
  qualification is required.
  
  @node GNAT Implementation of Tasking,GNAT Implementation of Shared Passive Packages,Machine Code Insertions,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-tasking}@anchor{42e}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{42f}
  @section GNAT Implementation of Tasking
  
  
*************** to compliance with the Real-Time Systems
*** 26570,26576 ****
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{42e}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{42f}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
--- 26682,26688 ----
  @end menu
  
  @node Mapping Ada Tasks onto the Underlying Kernel Threads,Ensuring Compliance with the Real-Time Annex,,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features id4}@anchor{430}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{431}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
*************** support this functionality when the pare
*** 26639,26645 ****
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{430}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{431}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
--- 26751,26757 ----
  @geindex Forking a new process
  
  @node Ensuring Compliance with the Real-Time Annex,Support for Locking Policies,Mapping Ada Tasks onto the Underlying Kernel Threads,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features ensuring-compliance-with-the-real-time-annex}@anchor{432}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{433}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
*************** placed at the end.
*** 26690,26696 ****
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{432}
  @subsection Support for Locking Policies
  
  
--- 26802,26808 ----
  @c Support_for_Locking_Policies
  
  @node Support for Locking Policies,,Ensuring Compliance with the Real-Time Annex,GNAT Implementation of Tasking
! @anchor{gnat_rm/implementation_of_specific_ada_features support-for-locking-policies}@anchor{434}
  @subsection Support for Locking Policies
  
  
*************** then ceiling locking is used.
*** 26724,26730 ****
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{433}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{434}
  @section GNAT Implementation of Shared Passive Packages
  
  
--- 26836,26842 ----
  Otherwise, the @code{Ceiling_Locking} policy is ignored.
  
  @node GNAT Implementation of Shared Passive Packages,Code Generation for Array Aggregates,GNAT Implementation of Tasking,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features gnat-implementation-of-shared-passive-packages}@anchor{435}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{436}
  @section GNAT Implementation of Shared Passive Packages
  
  
*************** This is used to provide the required loc
*** 26822,26828 ****
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{435}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{436}
  @section Code Generation for Array Aggregates
  
  
--- 26934,26940 ----
  semantics for proper protected object synchronization.
  
  @node Code Generation for Array Aggregates,The Size of Discriminated Records with Default Discriminants,GNAT Implementation of Shared Passive Packages,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features code-generation-for-array-aggregates}@anchor{437}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{438}
  @section Code Generation for Array Aggregates
  
  
*************** component values and static subtypes als
*** 26853,26859 ****
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{437}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{438}
  @subsection Static constant aggregates with static bounds
  
  
--- 26965,26971 ----
  @end menu
  
  @node Static constant aggregates with static bounds,Constant aggregates with unconstrained nominal types,,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features id8}@anchor{439}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{43a}
  @subsection Static constant aggregates with static bounds
  
  
*************** Zero2: constant two_dim := (others => (o
*** 26900,26906 ****
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{439}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{43a}
  @subsection Constant aggregates with unconstrained nominal types
  
  
--- 27012,27018 ----
  @end example
  
  @node Constant aggregates with unconstrained nominal types,Aggregates with static bounds,Static constant aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features constant-aggregates-with-unconstrained-nominal-types}@anchor{43b}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{43c}
  @subsection Constant aggregates with unconstrained nominal types
  
  
*************** Cr_Unc : constant One_Unc := (12,24,36);
*** 26915,26921 ****
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{43b}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{43c}
  @subsection Aggregates with static bounds
  
  
--- 27027,27033 ----
  @end example
  
  @node Aggregates with static bounds,Aggregates with nonstatic bounds,Constant aggregates with unconstrained nominal types,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-static-bounds}@anchor{43d}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{43e}
  @subsection Aggregates with static bounds
  
  
*************** end loop;
*** 26943,26949 ****
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{43d}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{43e}
  @subsection Aggregates with nonstatic bounds
  
  
--- 27055,27061 ----
  @end example
  
  @node Aggregates with nonstatic bounds,Aggregates in assignment statements,Aggregates with static bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-with-nonstatic-bounds}@anchor{43f}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{440}
  @subsection Aggregates with nonstatic bounds
  
  
*************** have to be applied to sub-arrays individ
*** 26954,26960 ****
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{43f}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{440}
  @subsection Aggregates in assignment statements
  
  
--- 27066,27072 ----
  compatible subtypes.
  
  @node Aggregates in assignment statements,,Aggregates with nonstatic bounds,Code Generation for Array Aggregates
! @anchor{gnat_rm/implementation_of_specific_ada_features aggregates-in-assignment-statements}@anchor{441}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{442}
  @subsection Aggregates in assignment statements
  
  
*************** a temporary (created either by the front
*** 26996,27002 ****
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{441}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{442}
  @section The Size of Discriminated Records with Default Discriminants
  
  
--- 27108,27114 ----
  that temporary will be copied onto the target.
  
  @node The Size of Discriminated Records with Default Discriminants,Image Values For Nonscalar Types,Code Generation for Array Aggregates,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id13}@anchor{443}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{444}
  @section The Size of Discriminated Records with Default Discriminants
  
  
*************** say) must be consistent, so it is impera
*** 27076,27082 ****
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{443}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{444}
  @section Image Values For Nonscalar Types
  
  
--- 27188,27194 ----
  remain invariant.
  
  @node Image Values For Nonscalar Types,Strict Conformance to the Ada Reference Manual,The Size of Discriminated Records with Default Discriminants,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id14}@anchor{445}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{446}
  @section Image Values For Nonscalar Types
  
  
*************** control of image text is required for so
*** 27096,27102 ****
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{445}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{446}
  @section Strict Conformance to the Ada Reference Manual
  
  
--- 27208,27214 ----
  explicitly specified.
  
  @node Strict Conformance to the Ada Reference Manual,,Image Values For Nonscalar Types,Implementation of Specific Ada Features
! @anchor{gnat_rm/implementation_of_specific_ada_features id15}@anchor{447}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{448}
  @section Strict Conformance to the Ada Reference Manual
  
  
*************** behavior (although at the cost of a sign
*** 27123,27129 ****
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2022 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2022_features doc}@anchor{447}@anchor{gnat_rm/implementation_of_ada_2022_features id1}@anchor{448}@anchor{gnat_rm/implementation_of_ada_2022_features implementation-of-ada-2022-features}@anchor{14}
  @chapter Implementation of Ada 2022 Features
  
  
--- 27235,27241 ----
  infinite and NaN values are properly generated.
  
  @node Implementation of Ada 2022 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2022_features doc}@anchor{449}@anchor{gnat_rm/implementation_of_ada_2022_features id1}@anchor{44a}@anchor{gnat_rm/implementation_of_ada_2022_features implementation-of-ada-2022-features}@anchor{14}
  @chapter Implementation of Ada 2022 Features
  
  
*************** RM references: 3.02.04 (31/5) 4.06 (51.1
*** 30542,30548 ****
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2022 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{449}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{44a}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{44b}
  @chapter GNAT language extensions
  
  
--- 30654,30660 ----
  @end itemize
  
  @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2022 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{44b}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{44c}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{44d}
  @chapter GNAT language extensions
  
  
*************** These features might be removed or heavi
*** 30574,30580 ****
  @end menu
  
  @node How to activate the extended GNAT Ada superset,Curated Extensions,,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions how-to-activate-the-extended-gnat-ada-superset}@anchor{44c}
  @section How to activate the extended GNAT Ada superset
  
  
--- 30686,30692 ----
  @end menu
  
  @node How to activate the extended GNAT Ada superset,Curated Extensions,,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions how-to-activate-the-extended-gnat-ada-superset}@anchor{44e}
  @section How to activate the extended GNAT Ada superset
  
  
*************** There are two ways to activate the exten
*** 30584,30590 ****
  @itemize *
  
  @item 
! The @ref{69,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
--- 30696,30702 ----
  @itemize *
  
  @item 
! The @ref{6a,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
*************** for use in playground experiments.
*** 30615,30621 ****
  @end cartouche
  
  @node Curated Extensions,Experimental Language Extensions,How to activate the extended GNAT Ada superset,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions curated-extensions}@anchor{44d}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6a}
  @section Curated Extensions
  
  
--- 30727,30733 ----
  @end cartouche
  
  @node Curated Extensions,Experimental Language Extensions,How to activate the extended GNAT Ada superset,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions curated-extensions}@anchor{44f}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6b}
  @section Curated Extensions
  
  
*************** Features activated via @code{-gnatX} or
*** 30632,30644 ****
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  * First Controlling Parameter:: 
- * Unsigned_Base_Range aspect:: 
  * Generalized Finalization:: 
  
  @end menu
  
  @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{44e}
  @subsection Local Declarations Without Block
  
  
--- 30744,30755 ----
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  * First Controlling Parameter:: 
  * Generalized Finalization:: 
  
  @end menu
  
  @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{450}
  @subsection Local Declarations Without Block
  
  
*************** And as such the second `@w{`}A`@w{`} dec
*** 30731,30737 ****
  @end cartouche
  
  @node Deep delta Aggregates,Fixed lower bounds for array types and subtypes,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions deep-delta-aggregates}@anchor{44f}
  @subsection Deep delta Aggregates
  
  
--- 30842,30848 ----
  @end cartouche
  
  @node Deep delta Aggregates,Fixed lower bounds for array types and subtypes,Local Declarations Without Block,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions deep-delta-aggregates}@anchor{451}
  @subsection Deep delta Aggregates
  
  
*************** The syntax of delta aggregates in the ex
*** 30753,30759 ****
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{450}
  @subsubsection Syntax
  
  
--- 30864,30870 ----
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{452}
  @subsubsection Syntax
  
  
*************** array_subcomponent_choice ::=
*** 30799,30805 ****
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{451}
  @subsubsection Legality Rules
  
  
--- 30910,30916 ----
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{453}
  @subsubsection Legality Rules
  
  
*************** the object denoted by the base_expressio
*** 30836,30842 ****
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{452}
  @subsubsection Dynamic Semantics
  
  
--- 30947,30953 ----
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{454}
  @subsubsection Dynamic Semantics
  
  
*************** and assigned to the corresponding subcom
*** 30893,30899 ****
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{453}
  @subsubsection Examples
  
  
--- 31004,31010 ----
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{455}
  @subsubsection Examples
  
  
*************** end;
*** 30921,30927 ****
  @end example
  
  @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Deep delta Aggregates,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{454}
  @subsection Fixed lower bounds for array types and subtypes
  
  
--- 31032,31038 ----
  @end example
  
  @node Fixed lower bounds for array types and subtypes,Prefixed-view notation for calls to primitive subprograms of untagged types,Deep delta Aggregates,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions fixed-lower-bounds-for-array-types-and-subtypes}@anchor{456}
  @subsection Fixed lower bounds for array types and subtypes
  
  
*************** lower bound of unconstrained array forma
*** 30972,30978 ****
  ranges with static fixed lower bounds.
  
  @node Prefixed-view notation for calls to primitive subprograms of untagged types,Expression defaults for generic formal functions,Fixed lower bounds for array types and subtypes,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions prefixed-view-notation-for-calls-to-primitive-subprograms-of-untagged-types}@anchor{455}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
--- 31083,31089 ----
  ranges with static fixed lower bounds.
  
  @node Prefixed-view notation for calls to primitive subprograms of untagged types,Expression defaults for generic formal functions,Fixed lower bounds for array types and subtypes,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions prefixed-view-notation-for-calls-to-primitive-subprograms-of-untagged-types}@anchor{457}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
*************** pragma Assert (V.Nth_Element(1) = 42);
*** 31022,31028 ****
  @end example
  
  @node Expression defaults for generic formal functions,String interpolation,Prefixed-view notation for calls to primitive subprograms of untagged types,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions expression-defaults-for-generic-formal-functions}@anchor{456}
  @subsection Expression defaults for generic formal functions
  
  
--- 31133,31139 ----
  @end example
  
  @node Expression defaults for generic formal functions,String interpolation,Prefixed-view notation for calls to primitive subprograms of untagged types,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions expression-defaults-for-generic-formal-functions}@anchor{458}
  @subsection Expression defaults for generic formal functions
  
  
*************** If the default is used (i.e. there is no
*** 31053,31059 ****
  then calls to Copy in the instance will simply return Item.
  
  @node String interpolation,Constrained attribute for generic objects,Expression defaults for generic formal functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions string-interpolation}@anchor{457}
  @subsection String interpolation
  
  
--- 31164,31170 ----
  then calls to Copy in the instance will simply return Item.
  
  @node String interpolation,Constrained attribute for generic objects,Expression defaults for generic formal functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions string-interpolation}@anchor{459}
  @subsection String interpolation
  
  
*************** a double quote is " and an open brace is
*** 31220,31226 ****
  @end example
  
  @node Constrained attribute for generic objects,Static aspect on intrinsic functions,String interpolation,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions constrained-attribute-for-generic-objects}@anchor{458}
  @subsection Constrained attribute for generic objects
  
  
--- 31331,31337 ----
  @end example
  
  @node Constrained attribute for generic objects,Static aspect on intrinsic functions,String interpolation,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions constrained-attribute-for-generic-objects}@anchor{45a}
  @subsection Constrained attribute for generic objects
  
  
*************** The @code{Constrained} attribute is perm
*** 31228,31234 ****
  result indicates whether the corresponding actual is constrained.
  
  @node Static aspect on intrinsic functions,First Controlling Parameter,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{459}
  @subsection @code{Static} aspect on intrinsic functions
  
  
--- 31339,31345 ----
  result indicates whether the corresponding actual is constrained.
  
  @node Static aspect on intrinsic functions,First Controlling Parameter,Constrained attribute for generic objects,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions static-aspect-on-intrinsic-functions}@anchor{45b}
  @subsection @code{Static} aspect on intrinsic functions
  
  
*************** The Ada 202x @code{Static} aspect can be
*** 31236,31243 ****
  and the compiler will evaluate some of these intrinsics statically, in
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
! @node First Controlling Parameter,Unsigned_Base_Range aspect,Static aspect on intrinsic functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{45a}
  @subsection First Controlling Parameter
  
  
--- 31347,31354 ----
  and the compiler will evaluate some of these intrinsics statically, in
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
! @node First Controlling Parameter,Generalized Finalization,Static aspect on intrinsic functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{45c}
  @subsection First Controlling Parameter
  
  
*************** overriding a primitive or creating new o
*** 31336,31369 ****
  The result of a function is never a controlling result.
  @end itemize
  
! @node Unsigned_Base_Range aspect,Generalized Finalization,First Controlling Parameter,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions unsigned-base-range-aspect}@anchor{45b}
! @subsection @code{Unsigned_Base_Range} aspect
! 
! 
! A new pragma/aspect, @code{Unsigned_Base_Range}, is introduced to explicitly
! enforce the use of an unsigned base type for signed integer types.
! RM-3.5.4(9) mandates a symmetric base range for signed integer types. This
! requirement often requires the use of larger data types for arithmetic
! operations, potentially introducing undesirable run-time overhead and
! performance penalties, particularly in embedded systems. For instance,
! on a 64-bit architecture, a 64-bit multiplication can be performed with
! a single hardware instruction, whereas a 128-bit multiplication requires
! multiple instructions and intermediate steps.
! 
! Here is an example of this feature:
! 
! @example
! type Uns_64 is range 0 .. 2 ** 64 - 1
!   with Size => 64,
!        Unsigned_Base_Range => True;
! @end example
! 
! It ensures that arithmetic operations of type @code{Uns_64} are carried
! out using 64 bits.
! 
! @node Generalized Finalization,,Unsigned_Base_Range aspect,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45c}
  @subsection Generalized Finalization
  
  
--- 31447,31454 ----
  The result of a function is never a controlling result.
  @end itemize
  
! @node Generalized Finalization,,First Controlling Parameter,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45d}
  @subsection Generalized Finalization
  
  
*************** in this case.
*** 31434,31440 ****
  
  @item 
  The @code{Adjust} and @code{Finalize} procedures are automatically considered as
! having the @ref{45d,,No_Raise aspect} specified for them. In particular, the
  compiler has permission to enforce none of the guarantees specified by the
  RM 7.6.1 (14/1) and subsequent subclauses.
  @end itemize
--- 31519,31525 ----
  
  @item 
  The @code{Adjust} and @code{Finalize} procedures are automatically considered as
! having the @ref{45e,,No_Raise aspect} specified for them. In particular, the
  compiler has permission to enforce none of the guarantees specified by the
  RM 7.6.1 (14/1) and subsequent subclauses.
  @end itemize
*************** end P;
*** 31495,31501 ****
  @end menu
  
  @node Finalizable tagged types,Composite types,,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{45e}
  @subsubsection Finalizable tagged types
  
  
--- 31580,31586 ----
  @end menu
  
  @node Finalizable tagged types,Composite types,,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{45f}
  @subsubsection Finalizable tagged types
  
  
*************** dispatching whenever it makes sense, i.e
*** 31505,31511 ****
  class-wide type and the class includes at least one finalizable tagged type.
  
  @node Composite types,Interoperability with controlled types,Finalizable tagged types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{45f}
  @subsubsection Composite types
  
  
--- 31590,31596 ----
  class-wide type and the class includes at least one finalizable tagged type.
  
  @node Composite types,Interoperability with controlled types,Finalizable tagged types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{460}
  @subsubsection Composite types
  
  
*************** in order to call the primitives of their
*** 31515,31521 ****
  the same as for controlled components of composite types.
  
  @node Interoperability with controlled types,,Composite types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{460}
  @subsubsection Interoperability with controlled types
  
  
--- 31600,31606 ----
  the same as for controlled components of composite types.
  
  @node Interoperability with controlled types,,Composite types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{461}
  @subsubsection Interoperability with controlled types
  
  
*************** versa, but the stricter dynamic semantic
*** 31525,31531 ****
  types, is applied in this case.
  
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6b}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{461}
  @section Experimental Language Extensions
  
  
--- 31610,31616 ----
  types, is applied in this case.
  
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6c}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{462}
  @section Experimental Language Extensions
  
  
*************** Features activated via @code{-gnatX0} or
*** 31551,31557 ****
  @end menu
  
  @node Conditional when constructs,Implicit With,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{462}
  @subsection Conditional when constructs
  
  
--- 31636,31642 ----
  @end menu
  
  @node Conditional when constructs,Implicit With,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{463}
  @subsection Conditional when constructs
  
  
*************** end;
*** 31620,31626 ****
  @end example
  
  @node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{463}
  @subsection Implicit With
  
  
--- 31705,31711 ----
  @end example
  
  @node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{464}
  @subsection Implicit With
  
  
*************** end;
*** 31637,31643 ****
  @end example
  
  @node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{464}
  @subsection Storage Model
  
  
--- 31722,31728 ----
  @end example
  
  @node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{465}
  @subsection Storage Model
  
  
*************** memory models, in particular to support
*** 31654,31660 ****
  @end menu
  
  @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{465}
  @subsubsection Aspect Storage_Model_Type
  
  
--- 31739,31745 ----
  @end menu
  
  @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{466}
  @subsubsection Aspect Storage_Model_Type
  
  
*************** end CUDA_Memory;
*** 31788,31794 ****
  @end example
  
  @node Aspect Designated_Storage_Model,Legacy Storage Pools,Aspect Storage_Model_Type,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{466}
  @subsubsection Aspect Designated_Storage_Model
  
  
--- 31873,31879 ----
  @end example
  
  @node Aspect Designated_Storage_Model,Legacy Storage Pools,Aspect Storage_Model_Type,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-designated-storage-model}@anchor{467}
  @subsubsection Aspect Designated_Storage_Model
  
  
*************** begin
*** 31866,31872 ****
  @end example
  
  @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{467}
  @subsubsection Legacy Storage Pools
  
  
--- 31951,31957 ----
  @end example
  
  @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{468}
  @subsubsection Legacy Storage Pools
  
  
*************** type Acc is access Integer_Array with St
*** 31917,31923 ****
  can still be accepted as a shortcut for the new syntax.
  
  @node Attribute Super,Simpler Accessibility Model,Storage Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{468}
  @subsection Attribute Super
  
  
--- 32002,32008 ----
  can still be accepted as a shortcut for the new syntax.
  
  @node Attribute Super,Simpler Accessibility Model,Storage Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions attribute-super}@anchor{469}
  @subsection Attribute Super
  
  
*************** end;
*** 31952,31958 ****
  @end example
  
  @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{469}
  @subsection Simpler Accessibility Model
  
  
--- 32037,32043 ----
  @end example
  
  @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{46a}
  @subsection Simpler Accessibility Model
  
  
*************** All of the refined rules are compatible
*** 31983,31989 ****
  @end menu
  
  @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46a}
  @subsubsection Stand-alone objects
  
  
--- 32068,32074 ----
  @end menu
  
  @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46b}
  @subsubsection Stand-alone objects
  
  
*************** of the RM 4.6 rule “The accessibility
*** 32031,32037 ****
  statically deeper than that of the target type …”.
  
  @node Subprogram parameters,Function results,Stand-alone objects,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46b}
  @subsubsection Subprogram parameters
  
  
--- 32116,32122 ----
  statically deeper than that of the target type …”.
  
  @node Subprogram parameters,Function results,Stand-alone objects,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions subprogram-parameters}@anchor{46c}
  @subsubsection Subprogram parameters
  
  
*************** end;
*** 32124,32130 ****
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46c}
  @subsubsection Function results
  
  
--- 32209,32215 ----
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46d}
  @subsubsection Function results
  
  
*************** end;
*** 32252,32258 ****
  @end example
  
  @node Case pattern matching,Mutably Tagged Types with Size’Class Aspect,Simpler Accessibility Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{46d}
  @subsection Case pattern matching
  
  
--- 32337,32343 ----
  @end example
  
  @node Case pattern matching,Mutably Tagged Types with Size’Class Aspect,Simpler Accessibility Model,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions case-pattern-matching}@anchor{46e}
  @subsection Case pattern matching
  
  
*************** message generated in such cases is usual
*** 32382,32388 ****
  case statement with composite selector type”.
  
  @node Mutably Tagged Types with Size’Class Aspect,No_Raise aspect,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{46e}
  @subsection Mutably Tagged Types with Size’Class Aspect
  
  
--- 32467,32473 ----
  case statement with composite selector type”.
  
  @node Mutably Tagged Types with Size’Class Aspect,No_Raise aspect,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{46f}
  @subsection Mutably Tagged Types with Size’Class Aspect
  
  
*************** parameter exists (that is, before leavin
*** 32553,32559 ****
  This is analogous to the RM 6.4.1(18) rule about discriminated parameters.
  
  @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{46f}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45d}
  @subsection No_Raise aspect
  
  
--- 32638,32644 ----
  This is analogous to the RM 6.4.1(18) rule about discriminated parameters.
  
  @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{470}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45e}
  @subsection No_Raise aspect
  
  
*************** be raised during the execution of the su
*** 32563,32569 ****
  this execution and @code{Program_Error} is propagated to the caller.
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{470}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
--- 32648,32654 ----
  this execution and @code{Program_Error} is propagated to the caller.
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{471}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
*************** package Int_Array_Operations is new Arra
*** 32640,32646 ****
  @end example
  
  @node External_Initialization Aspect,Finally construct,Inference of Dependent Types in Generic Instantiations,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{471}
  @subsection External_Initialization Aspect
  
  
--- 32725,32731 ----
  @end example
  
  @node External_Initialization Aspect,Finally construct,Inference of Dependent Types in Generic Instantiations,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions external-initialization-aspect}@anchor{472}
  @subsection External_Initialization Aspect
  
  
*************** The maximum size of loaded files is limi
*** 32681,32687 ****
  @end cartouche
  
  @node Finally construct,Continue statement,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{472}
  @subsection Finally construct
  
  
--- 32766,32772 ----
  @end cartouche
  
  @node Finally construct,Continue statement,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{473}
  @subsection Finally construct
  
  
*************** This feature is similar to the one with
*** 32698,32704 ****
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{473}
  @subsubsection Syntax
  
  
--- 32783,32789 ----
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{474}
  @subsubsection Syntax
  
  
*************** handled_sequence_of_statements ::=
*** 32713,32719 ****
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{474}
  @subsubsection Legality Rules
  
  
--- 32798,32804 ----
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{475}
  @subsubsection Legality Rules
  
  
*************** to be transferred outside the finally pa
*** 32723,32729 ****
  Goto & exit where the target is outside of the finally’s @code{sequence_of_statements} are forbidden
  
  @node Dynamic Semantics<2>,,Legality Rules<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id6}@anchor{475}
  @subsubsection Dynamic Semantics
  
  
--- 32808,32814 ----
  Goto & exit where the target is outside of the finally’s @code{sequence_of_statements} are forbidden
  
  @node Dynamic Semantics<2>,,Legality Rules<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id6}@anchor{476}
  @subsubsection Dynamic Semantics
  
  
*************** execution, that is the finally block mus
*** 32738,32744 ****
  aborted, or if the control is transferred out of the block.
  
  @node Continue statement,Destructors,Finally construct,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{476}
  @subsection Continue statement
  
  
--- 32823,32829 ----
  aborted, or if the control is transferred out of the block.
  
  @node Continue statement,Destructors,Finally construct,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{477}
  @subsection Continue statement
  
  
*************** Note that @code{continue} is a keyword b
*** 32756,32762 ****
  configuration that does not exist in standard Ada.
  
  @node Destructors,Structural Generic Instantiation,Continue statement,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions destructors}@anchor{477}
  @subsection Destructors
  
  
--- 32841,32847 ----
  configuration that does not exist in standard Ada.
  
  @node Destructors,Structural Generic Instantiation,Continue statement,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions destructors}@anchor{478}
  @subsection Destructors
  
  
*************** imposing that rule on outside types that
*** 32826,32832 ****
  type.
  
  @node Structural Generic Instantiation,,Destructors,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{478}
  @subsection Structural Generic Instantiation
  
  
--- 32911,32917 ----
  type.
  
  @node Structural Generic Instantiation,,Destructors,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{479}
  @subsection Structural Generic Instantiation
  
  
*************** where a name is accepted by the language
*** 32852,32858 ****
  @end menu
  
  @node Syntax<3>,Legality Rules<3>,,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions id7}@anchor{479}
  @subsubsection Syntax
  
  
--- 32937,32943 ----
  @end menu
  
  @node Syntax<3>,Legality Rules<3>,,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions id7}@anchor{47a}
  @subsubsection Syntax
  
  
*************** structural_generic_instance_name ::= nam
*** 32864,32870 ****
  @end example
  
  @node Legality Rules<3>,Static Semantics,Syntax<3>,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions id8}@anchor{47a}
  @subsubsection Legality Rules
  
  
--- 32949,32955 ----
  @end example
  
  @node Legality Rules<3>,Static Semantics,Syntax<3>,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions id8}@anchor{47b}
  @subsubsection Legality Rules
  
  
*************** unit if the structural instance is also
*** 32883,32889 ****
  dependence on the former.
  
  @node Static Semantics,,Legality Rules<3>,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47b}
  @subsubsection Static Semantics
  
  
--- 32968,32974 ----
  dependence on the former.
  
  @node Static Semantics,,Legality Rules<3>,Structural Generic Instantiation
! @anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47c}
  @subsubsection Static Semantics
  
  
*************** end;
*** 32995,33001 ****
  @end example
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{47c}@anchor{gnat_rm/security_hardening_features id1}@anchor{47d}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
--- 33080,33086 ----
  @end example
  
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{47d}@anchor{gnat_rm/security_hardening_features id1}@anchor{47e}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
*************** These features are supported only by the
*** 33019,33025 ****
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{47e}
  @section Register Scrubbing
  
  
--- 33104,33110 ----
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{47f}
  @section Register Scrubbing
  
  
*************** programming languages, see @cite{Using t
*** 33055,33061 ****
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{47f}
  @section Stack Scrubbing
  
  
--- 33140,33146 ----
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{480}
  @section Stack Scrubbing
  
  
*************** Bar_Callable_Ptr.
*** 33199,33205 ****
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{480}
  @section Hardened Conditionals
  
  
--- 33284,33290 ----
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{481}
  @section Hardened Conditionals
  
  
*************** be used with other programming languages
*** 33289,33295 ****
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{481}
  @section Hardened Booleans
  
  
--- 33374,33380 ----
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{482}
  @section Hardened Booleans
  
  
*************** and more details on that attribute, see
*** 33350,33356 ****
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{482}
  @section Control Flow Redundancy
  
  
--- 33435,33441 ----
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{483}
  @section Control Flow Redundancy
  
  
*************** see @cite{Using the GNU Compiler Collect
*** 33518,33533 ****
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{483}@anchor{gnat_rm/obsolescent_features id1}@anchor{484}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are preferred ways of achieving
! the same effect. These features are provided solely for historical
! compatibility purposes.
  
  @menu
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
--- 33603,33619 ----
  can be used with other programming languages supported by GCC.
  
  @node Obsolescent Features,Compatibility and Porting Guide,Security Hardening Features,Top
! @anchor{gnat_rm/obsolescent_features doc}@anchor{484}@anchor{gnat_rm/obsolescent_features id1}@anchor{485}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are other, more appropriate, ways
! of achieving the same effect. These features are provided solely for
! historical compatibility purposes.
  
  @menu
+ * PolyORB:: 
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
*************** compatibility purposes.
*** 33536,33543 ****
  
  @end menu
  
! @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{485}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{486}
  @section pragma No_Run_Time
  
  
--- 33622,33639 ----
  
  @end menu
  
! @node PolyORB,pragma No_Run_Time,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{486}@anchor{gnat_rm/obsolescent_features polyorb}@anchor{271}
! @section PolyORB
! 
! 
! AWS is a deprecated product. It will be baselined with the GNAT Pro
! release 28. After this release, there will be no new versions of this
! product. Contact your sales representative or send a message to
! @email{sales@@adacore.com} to get recommendations for replacements.
! 
! @node pragma No_Run_Time,pragma Ravenscar,PolyORB,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{487}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{488}
  @section pragma No_Run_Time
  
  
*************** preferred usage is to use an appropriate
*** 33550,33556 ****
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{487}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{488}
  @section pragma Ravenscar
  
  
--- 33646,33652 ----
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{489}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{48a}
  @section pragma Ravenscar
  
  
*************** The pragma @code{Ravenscar} has exactly
*** 33559,33565 ****
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{489}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48a}
  @section pragma Restricted_Run_Time
  
  
--- 33655,33661 ----
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{48b}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48c}
  @section pragma Restricted_Run_Time
  
  
*************** preferred since the Ada 2005 pragma @cod
*** 33569,33575 ****
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{48b}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48c}
  @section pragma Task_Info
  
  
--- 33665,33671 ----
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id6}@anchor{48d}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48e}
  @section pragma Task_Info
  
  
*************** in the spec of package System.Task_Info
*** 33595,33601 ****
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{48d}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{48e}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
--- 33691,33697 ----
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{48f}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{490}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
*************** to support the @code{Task_Info} pragma.
*** 33605,33611 ****
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{48f}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{490}
  @chapter Compatibility and Porting Guide
  
  
--- 33701,33707 ----
  standard replacement for GNAT’s @code{Task_Info} functionality.
  
  @node Compatibility and Porting Guide,GNU Free Documentation License,Obsolescent Features,Top
! @anchor{gnat_rm/compatibility_and_porting_guide doc}@anchor{491}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{492}
  @chapter Compatibility and Porting Guide
  
  
*************** applications developed in other Ada envi
*** 33627,33633 ****
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{491}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{492}
  @section Writing Portable Fixed-Point Declarations
  
  
--- 33723,33729 ----
  @end menu
  
  @node Writing Portable Fixed-Point Declarations,Compatibility with Ada 83,,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id2}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{494}
  @section Writing Portable Fixed-Point Declarations
  
  
*************** If you follow this scheme you will be gu
*** 33749,33755 ****
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{493}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{494}
  @section Compatibility with Ada 83
  
  
--- 33845,33851 ----
  types will be portable.
  
  @node Compatibility with Ada 83,Compatibility between Ada 95 and Ada 2005,Writing Portable Fixed-Point Declarations,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-ada-83}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{496}
  @section Compatibility with Ada 83
  
  
*************** following subsections treat the most lik
*** 33777,33783 ****
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{495}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{496}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
--- 33873,33879 ----
  @end menu
  
  @node Legal Ada 83 programs that are illegal in Ada 95,More deterministic semantics,,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id4}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{498}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
*************** the fix is usually simply to add the @co
*** 33877,33883 ****
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{497}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{498}
  @subsection More deterministic semantics
  
  
--- 33973,33979 ----
  @end itemize
  
  @node More deterministic semantics,Changed semantics,Legal Ada 83 programs that are illegal in Ada 95,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id5}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{49a}
  @subsection More deterministic semantics
  
  
*************** which open select branches are executed.
*** 33905,33911 ****
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{499}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49a}
  @subsection Changed semantics
  
  
--- 34001,34007 ----
  @end itemize
  
  @node Changed semantics,Other language compatibility issues,More deterministic semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide changed-semantics}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49c}
  @subsection Changed semantics
  
  
*************** covers only the restricted range.
*** 33947,33953 ****
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49b}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49c}
  @subsection Other language compatibility issues
  
  
--- 34043,34049 ----
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49d}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49e}
  @subsection Other language compatibility issues
  
  
*************** include @code{pragma Interface} and the
*** 33980,33986 ****
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{49d}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{49e}
  @section Compatibility between Ada 95 and Ada 2005
  
  
--- 34076,34082 ----
  @end itemize
  
  @node Compatibility between Ada 95 and Ada 2005,Implementation-dependent characteristics,Compatibility with Ada 83,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-between-ada-95-and-ada-2005}@anchor{49f}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{4a0}
  @section Compatibility between Ada 95 and Ada 2005
  
  
*************** can declare a function returning a value
*** 34052,34058 ****
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{49f}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a0}
  @section Implementation-dependent characteristics
  
  
--- 34148,34154 ----
  @end itemize
  
  @node Implementation-dependent characteristics,Compatibility with Other Ada Systems,Compatibility between Ada 95 and Ada 2005,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id9}@anchor{4a1}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a2}
  @section Implementation-dependent characteristics
  
  
*************** transition from certain Ada 83 compilers
*** 34075,34081 ****
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a1}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a2}
  @subsection Implementation-defined pragmas
  
  
--- 34171,34177 ----
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a3}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a4}
  @subsection Implementation-defined pragmas
  
  
*************** avoiding compiler rejection of units tha
*** 34097,34103 ****
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{4a3}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a4}
  @subsection Implementation-defined attributes
  
  
--- 34193,34199 ----
  relevant in a GNAT context and hence are not otherwise implemented.
  
  @node Implementation-defined attributes,Libraries,Implementation-defined pragmas,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id11}@anchor{4a5}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a6}
  @subsection Implementation-defined attributes
  
  
*************** Ada 83, GNAT supplies the attributes @co
*** 34111,34117 ****
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a5}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a6}
  @subsection Libraries
  
  
--- 34207,34213 ----
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a7}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a8}
  @subsection Libraries
  
  
*************** be preferable to retrofit the applicatio
*** 34140,34146 ****
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4a7}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4a8}
  @subsection Elaboration order
  
  
--- 34236,34242 ----
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4a9}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4aa}
  @subsection Elaboration order
  
  
*************** pragmas either globally (as an effect of
*** 34176,34182 ****
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4a9}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4aa}
  @subsection Target-specific aspects
  
  
--- 34272,34278 ----
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4ab}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4ac}
  @subsection Target-specific aspects
  
  
*************** on the robustness of the original design
*** 34189,34198 ****
  Ada 2005, Ada 2012, and Ada 2022) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{4ab,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4ac}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4ad}
  @section Compatibility with Other Ada Systems
  
  
--- 34285,34294 ----
  Ada 2005, Ada 2012, and Ada 2022) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{4ad,,Representation Clauses}.
  
  @node Compatibility with Other Ada Systems,Representation Clauses,Implementation-dependent characteristics,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-other-ada-systems}@anchor{4ae}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4af}
  @section Compatibility with Other Ada Systems
  
  
*************** far beyond this minimal set, as describe
*** 34235,34241 ****
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4ae}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ab}
  @section Representation Clauses
  
  
--- 34331,34337 ----
  @end itemize
  
  @node Representation Clauses,Compatibility with HP Ada 83,Compatibility with Other Ada Systems,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide id16}@anchor{4b0}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ad}
  @section Representation Clauses
  
  
*************** with thin pointers.
*** 34328,34334 ****
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4af}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b0}
  @section Compatibility with HP Ada 83
  
  
--- 34424,34430 ----
  @end itemize
  
  @node Compatibility with HP Ada 83,,Representation Clauses,Compatibility and Porting Guide
! @anchor{gnat_rm/compatibility_and_porting_guide compatibility-with-hp-ada-83}@anchor{4b1}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b2}
  @section Compatibility with HP Ada 83
  
  
*************** extension of package System.
*** 34358,34364 ****
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4b1}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b2}
  @chapter GNU Free Documentation License
  
  
--- 34454,34460 ----
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4b3}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b4}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-16-20250928/gcc/ada/gnat_ugn.texi gcc-16-20251005/gcc/ada/gnat_ugn.texi
*** gcc-16-20250928/gcc/ada/gnat_ugn.texi	Sun Sep 28 22:33:02 2025
--- gcc-16-20251005/gcc/ada/gnat_ugn.texi	Sun Oct  5 22:32:12 2025
***************
*** 19,25 ****
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Sep 23, 2025
  
  AdaCore
  
--- 19,25 ----
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Sep 29, 2025
  
  AdaCore
  
*************** see @ref{32,,Character Set Control}.
*** 9599,9611 ****
  Ignore representation clauses. When this switch is used,
  representation clauses are treated as comments. This is useful
  when initially porting code where you want to ignore rep clause
! problems, and also for compiling foreign code (particularly
! for use with ASIS). The representation clauses that are ignored
! are: enumeration_representation_clause, record_representation_clause,
! and attribute_definition_clause for the following attributes:
! Address, Alignment, Bit_Order, Component_Size, Machine_Radix,
! Object_Size, Scalar_Storage_Order, Size, Small, Stream_Size,
! and Value_Size. Pragma Default_Scalar_Storage_Order is also ignored.
  Note that this option should be used only for compiling – the
  code is likely to malfunction at run time.
  @end table
--- 9599,9611 ----
  Ignore representation clauses. When this switch is used,
  representation clauses are treated as comments. This is useful
  when initially porting code where you want to ignore rep clause
! problems, and also for compiling foreign code. The representation
! clauses that are ignored are: enumeration_representation_clause,
! record_representation_clause, and attribute_definition_clause for the
! following attributes: Address, Alignment, Bit_Order, Component_Size,
! Machine_Radix, Object_Size, Scalar_Storage_Order, Size, Small,
! Stream_Size, and Value_Size.
! Pragma Default_Scalar_Storage_Order is also ignored.
  Note that this option should be used only for compiling – the
  code is likely to malfunction at run time.
  @end table
*************** to permit their use in free software.
*** 30333,30340 ****
  
  @printindex ge
  
- @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
  @anchor{d2}@w{                              }
  
  @c %**end of body
  @bye
--- 30333,30340 ----
  
  @printindex ge
  
  @anchor{d2}@w{                              }
+ @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{                              }
  
  @c %**end of body
  @bye
diff -Nrcpad gcc-16-20250928/gcc/ada/par-ch4.adb gcc-16-20251005/gcc/ada/par-ch4.adb
*** gcc-16-20250928/gcc/ada/par-ch4.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/par-ch4.adb	Sun Oct  5 22:32:12 2025
*************** package body Ch4 is
*** 482,488 ****
           elsif Token = Tok_Identifier then
              Attr_Name := Token_Name;
  
!             if not Is_Attribute_Name (Attr_Name) then
                 if Apostrophe_Should_Be_Semicolon then
                    Expr_Form := EF_Name;
                    return Name_Node;
--- 482,492 ----
           elsif Token = Tok_Identifier then
              Attr_Name := Token_Name;
  
!             --  Attribute Unsigned_Base_Range temporarily disabled
! 
!             if not Is_Attribute_Name (Attr_Name)
!               or else Attr_Name = Name_Unsigned_Base_Range
!             then
                 if Apostrophe_Should_Be_Semicolon then
                    Expr_Form := EF_Name;
                    return Name_Node;
diff -Nrcpad gcc-16-20250928/gcc/ada/sem_attr.adb gcc-16-20251005/gcc/ada/sem_attr.adb
*** gcc-16-20250928/gcc/ada/sem_attr.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/sem_attr.adb	Sun Oct  5 22:32:12 2025
*************** package body Sem_Attr is
*** 12851,12857 ****
                 end Proper_Op;
  
              begin
!                Resolve (Init_Value_Exp, Typ);
                 if Is_Overloaded (Reducer_Subp_Name) then
                    Outer :
                    for Retry in Boolean loop
--- 12851,12860 ----
                 end Proper_Op;
  
              begin
!                --  First try to resolve the reducer and then, if this succeeds,
!                --  resolve the initial value.  This nicely deals with confused
!                --  programmers who swap the two items.
! 
                 if Is_Overloaded (Reducer_Subp_Name) then
                    Outer :
                    for Retry in Boolean loop
*************** package body Sem_Attr is
*** 12873,12886 ****
                 then
                    Op := Reducer_Subp_Name;
  
!                elsif Proper_Op (Entity (Reducer_Subp_Name)) then
                    Op := Entity (Reducer_Subp_Name);
                    Set_Etype (N, Typ);
                 end if;
  
                 if No (Op) then
!                   Error_Msg_N ("No suitable reducer subprogram found",
                      Reducer_Subp_Name);
                 end if;
              end;
  
--- 12876,12893 ----
                 then
                    Op := Reducer_Subp_Name;
  
!                elsif Is_Entity_Name (Reducer_Subp_Name)
!                  and then Proper_Op (Entity (Reducer_Subp_Name))
!                then
                    Op := Entity (Reducer_Subp_Name);
                    Set_Etype (N, Typ);
                 end if;
  
                 if No (Op) then
!                   Error_Msg_N ("no suitable reducer subprogram found",
                      Reducer_Subp_Name);
+                else
+                   Resolve (Init_Value_Exp, Typ);
                 end if;
              end;
  
diff -Nrcpad gcc-16-20250928/gcc/ada/sem_ch3.adb gcc-16-20251005/gcc/ada/sem_ch3.adb
*** gcc-16-20250928/gcc/ada/sem_ch3.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/sem_ch3.adb	Sun Oct  5 22:32:12 2025
*************** package body Sem_Ch3 is
*** 21993,21999 ****
           end if;
        end if;
  
!       --  AI-419: verify that the use of "limited" is consistent
  
        declare
           Orig_Decl : constant Node_Id := Original_Node (N);
--- 21993,21999 ----
           end if;
        end if;
  
!       --  RM 7.3 (10.1/3): verify that the use of "limited" is consistent
  
        declare
           Orig_Decl : constant Node_Id := Original_Node (N);
*************** package body Sem_Ch3 is
*** 22009,22015 ****
                and then Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of non-limited extension cannot be limited", N);
  
              --  Conversely, if the partial view carries the limited keyword,
              --  the full view must as well, even if it may be redundant.
--- 22009,22017 ----
                and then Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of implicitly limited extension must be "
!                   & "implicitly limited",
!                   N);
  
              --  Conversely, if the partial view carries the limited keyword,
              --  the full view must as well, even if it may be redundant.
*************** package body Sem_Ch3 is
*** 22018,22024 ****
                and then not Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of limited extension must be explicitly limited",
                    N);
              end if;
           end if;
--- 22020,22027 ----
                and then not Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of explicitly limited extension must be "
!                   & "explicitly limited",
                    N);
              end if;
           end if;
diff -Nrcpad gcc-16-20250928/gcc/ada/sem_ch4.adb gcc-16-20251005/gcc/ada/sem_ch4.adb
*** gcc-16-20250928/gcc/ada/sem_ch4.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/sem_ch4.adb	Sun Oct  5 22:32:12 2025
*************** package body Sem_Ch4 is
*** 630,636 ****
  
                 begin
                    while Present (Discr) loop
!                      Append (Discriminant_Default_Value (Discr), Constr);
                       Next_Discriminant (Discr);
                    end loop;
  
--- 630,637 ----
  
                 begin
                    while Present (Discr) loop
!                      Append_To (Constr,
!                        New_Copy_Tree (Discriminant_Default_Value (Discr)));
                       Next_Discriminant (Discr);
                    end loop;
  
diff -Nrcpad gcc-16-20250928/gcc/ada/sem_ch7.adb gcc-16-20251005/gcc/ada/sem_ch7.adb
*** gcc-16-20250928/gcc/ada/sem_ch7.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/sem_ch7.adb	Sun Oct  5 22:32:12 2025
*************** package body Sem_Ch7 is
*** 2521,2531 ****
             and then Scope (Full_View (Id)) = Scope (Id)
             and then Ekind (Full_View (Id)) /= E_Incomplete_Type
           then
              --  If there is a use-type clause on the private type, set the full
              --  view accordingly.
  
!             Set_In_Use (Full_View (Id), In_Use (Id));
!             Full := Full_View (Id);
  
              if Is_Private_Base_Type (Full)
                and then Has_Private_Declaration (Full)
--- 2521,2533 ----
             and then Scope (Full_View (Id)) = Scope (Id)
             and then Ekind (Full_View (Id)) /= E_Incomplete_Type
           then
+             Full := Full_View (Id);
+ 
              --  If there is a use-type clause on the private type, set the full
              --  view accordingly.
  
!             Set_In_Use (Full, In_Use (Id));
!             Set_Current_Use_Clause (Full, Current_Use_Clause (Id));
  
              if Is_Private_Base_Type (Full)
                and then Has_Private_Declaration (Full)
*************** package body Sem_Ch7 is
*** 2893,2899 ****
        --  When compiling a child unit this needs to be done recursively.
  
        function Type_In_Use (T : Entity_Id) return Boolean;
!       --  Check whether type or base type appear in an active use_type clause
  
        ------------------------------
        -- Preserve_Full_Attributes --
--- 2895,2906 ----
        --  When compiling a child unit this needs to be done recursively.
  
        function Type_In_Use (T : Entity_Id) return Boolean;
!       --  Check whether type T is declared in P and appears in an active
!       --  use_type clause.
! 
!       function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean;
!       --  Check whether the profile of primitive subprogram Id mentions a type
!       --  declared in P that appears in an active use-all-type clause.
  
        ------------------------------
        -- Preserve_Full_Attributes --
*************** package body Sem_Ch7 is
*** 3058,3068 ****
        -----------------
  
        function Type_In_Use (T : Entity_Id) return Boolean is
        begin
!          return Scope (Base_Type (T)) = P
!            and then (In_Use (T) or else In_Use (Base_Type (T)));
        end Type_In_Use;
  
     --  Start of processing for Uninstall_Declarations
  
     begin
--- 3065,3150 ----
        -----------------
  
        function Type_In_Use (T : 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;
  
+       ----------------------------------
+       -- Type_Of_Primitive_In_Use_All --
+       ----------------------------------
+ 
+       function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean is
+          function Type_In_Use_All (T : Entity_Id) return Boolean;
+          --  Check whether type T is declared in P and appears in an active
+          --  use-all-type clause.
+ 
+          ---------------------
+          -- Type_In_Use_All --
+          ---------------------
+ 
+          function Type_In_Use_All (T : Entity_Id) return Boolean is
+          begin
+             return Type_In_Use (T)
+               and then Nkind (Current_Use_Clause (T)) = N_Use_Type_Clause
+               and then All_Present (Current_Use_Clause (T));
+          end Type_In_Use_All;
+ 
+          --  Local variables
+ 
+          F : Node_Id;
+ 
+       --  Start of processing for Type_Of_Primitive_In_Use_All
+ 
+       begin
+          --  The use-all-type clauses were introduced in Ada 2005
+ 
+          if Ada_Version <= Ada_95 then
+             return False;
+          end if;
+ 
+          --  For enumeration literals, check type
+ 
+          if Ekind (Id) = E_Enumeration_Literal then
+             return Type_In_Use_All (Etype (Id));
+          end if;
+ 
+          --  For functions, check return type
+ 
+          if Ekind (Id) = E_Function then
+             declare
+                Typ : constant Entity_Id :=
+                        (if Ekind (Etype (Id)) = E_Anonymous_Access_Type
+                         then Designated_Type (Etype (Id))
+                         else Etype (Id));
+             begin
+                if Type_In_Use_All (Typ) then
+                   return True;
+                end if;
+             end;
+          end if;
+ 
+          --  For all subprograms, check formals
+ 
+          F := First_Formal (Id);
+          while Present (F) loop
+             declare
+                Typ : constant Entity_Id :=
+                        (if Ekind (Etype (F)) = E_Anonymous_Access_Type
+                         then Designated_Type (Etype (F))
+                         else Etype (F));
+             begin
+                if Type_In_Use_All (Typ) then
+                   return True;
+                end if;
+             end;
+ 
+             Next_Formal (F);
+          end loop;
+ 
+          return False;
+       end Type_Of_Primitive_In_Use_All;
+ 
     --  Start of processing for Uninstall_Declarations
  
     begin
*************** package body Sem_Ch7 is
*** 3120,3132 ****
              elsif No (Etype (Id)) and then Serious_Errors_Detected /= 0 then
                 null;
  
!             --  We need to avoid incorrectly marking enumeration literals as
!             --  non-visible when a visible use-all-type clause is in effect.
  
!             elsif Type_In_Use (Etype (Id))
!               and then Nkind (Current_Use_Clause (Etype (Id))) =
!                          N_Use_Type_Clause
!               and then All_Present (Current_Use_Clause (Etype (Id)))
              then
                 null;
  
--- 3202,3214 ----
              elsif No (Etype (Id)) and then Serious_Errors_Detected /= 0 then
                 null;
  
!             --  RM 8.4(8.1/3): Each primitive subprogram of T, including each
!             --  enumeration literal (if any), is potentially use-visible if T
!             --  is named in an active use-all-type clause.
  
!             elsif (Ekind (Id) = E_Enumeration_Literal
!                     or else (Is_Subprogram (Id) and then Is_Primitive (Id)))
!               and then Type_Of_Primitive_In_Use_All (Id)
              then
                 null;
  
diff -Nrcpad gcc-16-20250928/gcc/ada/sem_prag.adb gcc-16-20251005/gcc/ada/sem_prag.adb
*** gcc-16-20250928/gcc/ada/sem_prag.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/sem_prag.adb	Sun Oct  5 22:32:12 2025
*************** package body Sem_Prag is
*** 5848,5856 ****
           --  For Ada 2022, pre/postconditions can appear on formal subprograms
  
           elsif Nkind (Subp_Decl) = N_Formal_Concrete_Subprogram_Declaration
-             and then Ada_Version >= Ada_2022
           then
!             null;
  
           --  An access-to-subprogram type can have pre/postconditions, which
           --  are both analyzed when attached to the type and copied to the
--- 5848,5859 ----
           --  For Ada 2022, pre/postconditions can appear on formal subprograms
  
           elsif Nkind (Subp_Decl) = N_Formal_Concrete_Subprogram_Declaration
           then
!             if Ada_Version < Ada_2022 then
!                Error_Msg_Ada_2022_Feature
!                  ("pre/postcondition on formal subprogram", Loc);
!                raise Pragma_Exit;
!             end if;
  
           --  An access-to-subprogram type can have pre/postconditions, which
           --  are both analyzed when attached to the type and copied to the
*************** package body Sem_Prag is
*** 12684,12690 ****
  
        --  Deal with unrecognized pragma
  
!       if not Is_Pragma_Name (Pname) then
           declare
              Msg_Issued : Boolean := False;
           begin
--- 12687,12697 ----
  
        --  Deal with unrecognized pragma
  
!       --  Pragma Unsigned_Base_Range temporarily disabled
! 
!       if not Is_Pragma_Name (Pname)
!         or else Pname = Name_Unsigned_Base_Range
!       then
           declare
              Msg_Issued : Boolean := False;
           begin
diff -Nrcpad gcc-16-20250928/gcc/ada/usage.adb gcc-16-20251005/gcc/ada/usage.adb
*** gcc-16-20250928/gcc/ada/usage.adb	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/ada/usage.adb	Sun Oct  5 22:32:12 2025
*************** begin
*** 674,680 ****
     Write_Line ("        D    check declared identifiers in mixed case");
     Write_Line ("        e    check end/exit labels present");
     Write_Line ("        f    check no form feeds/vertical tabs in source");
!    Write_Line ("        g    check standard GNAT style rules, same as ydISux");
     Write_Line ("        h    check no horizontal tabs in source");
     Write_Line ("        i    check if-then layout");
     Write_Line ("        I    check mode in");
--- 674,680 ----
     Write_Line ("        D    check declared identifiers in mixed case");
     Write_Line ("        e    check end/exit labels present");
     Write_Line ("        f    check no form feeds/vertical tabs in source");
!    Write_Line ("        g    check GNAT style rules, same as ydISuxz");
     Write_Line ("        h    check no horizontal tabs in source");
     Write_Line ("        i    check if-then layout");
     Write_Line ("        I    check mode in");
diff -Nrcpad gcc-16-20250928/gcc/analyzer/ChangeLog gcc-16-20251005/gcc/analyzer/ChangeLog
*** gcc-16-20250928/gcc/analyzer/ChangeLog	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/analyzer/ChangeLog	Sun Oct  5 22:32:12 2025
***************
*** 1,3 ****
--- 1,24 ----
+ 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	Revert:
+ 	2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
+ 	json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* ana-state-to-diagnostic-state.h: Likewise.
+ 	* checker-event.cc: Likewise.
+ 	* sm-malloc.cc: Likewise.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
+ 	json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* ana-state-to-diagnostic-state.h: Likewise.
+ 	* checker-event.cc: Likewise.
+ 	* sm-malloc.cc: Likewise.
+ 
  2025-09-15  Alexandre Oliva  <oliva@adacore.com>
  
  	* kf.cc (register_known_functions): Add __get_errno_ptr.
diff -Nrcpad gcc-16-20250928/gcc/attribs.cc gcc-16-20251005/gcc/attribs.cc
*** gcc-16-20250928/gcc/attribs.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/attribs.cc	Sun Oct  5 22:32:12 2025
*************** make_attribute (string_slice name, strin
*** 1086,1091 ****
--- 1086,1113 ----
    return attr;
  }
  
+ /* Default implementation of TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.
+    Used to check very basically if DECL_B is callable from DECL_A.
+    For now this checks if the version strings are the same.  */
+ 
+ bool
+ functions_b_resolvable_from_a (tree decl_a, tree decl_b,
+ 			       tree base ATTRIBUTE_UNUSED)
+ {
+   const char *attr_name = TARGET_HAS_FMV_TARGET_ATTRIBUTE
+ 			  ? "target"
+ 			  : "target_version";
+ 
+   tree attr_a = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_a));
+   tree attr_b = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_b));
+ 
+   gcc_assert (attr_b);
+   if (!attr_a)
+     return false;
+ 
+   return attribute_value_equal (attr_a, attr_b);
+ }
+ 
  /* Comparator function to be used in qsort routine to sort attribute
     specification strings to "target".  */
  
diff -Nrcpad gcc-16-20250928/gcc/attribs.h gcc-16-20251005/gcc/attribs.h
*** gcc-16-20250928/gcc/attribs.h	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/attribs.h	Sun Oct  5 22:32:12 2025
*************** extern struct scoped_attributes *
*** 56,61 ****
--- 56,62 ----
  extern char *sorted_attr_string (tree);
  extern tree make_dispatcher_decl (const tree);
  extern bool is_function_default_version (const tree);
+ extern bool functions_b_resolvable_from_a (tree, tree, tree);
  extern void handle_ignored_attributes_option (vec<char *> *);
  
  /* Return a type like TTYPE except that its TYPE_ATTRIBUTES
diff -Nrcpad gcc-16-20250928/gcc/auto-profile.cc gcc-16-20251005/gcc/auto-profile.cc
*** gcc-16-20250928/gcc/auto-profile.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/auto-profile.cc	Sun Oct  5 22:32:12 2025
*************** along with GCC; see the file COPYING3.
*** 100,106 ****
       significantly form one inline instance to another and from the
       offline version.
  
!      This is controlled by -fauto-profile-inlinig and is independent
       of -fearly-inlining.
  
     Phase 4: In AFDO pass.
--- 100,106 ----
       significantly form one inline instance to another and from the
       offline version.
  
!      This is controlled by -fauto-profile-inlining and is independent
       of -fearly-inlining.
  
     Phase 4: In AFDO pass.
*************** along with GCC; see the file COPYING3.
*** 128,134 ****
     considered cols.  */
  gcov_type afdo_hot_bb_threshod = -1;
  
! /* Return ture if COUNT is possiby hot.  */
  bool
  maybe_hot_afdo_count_p (profile_count count)
  {
--- 128,134 ----
     considered cols.  */
  gcov_type afdo_hot_bb_threshod = -1;
  
! /* Return true if COUNT is possibly hot.  */
  bool
  maybe_hot_afdo_count_p (profile_count count)
  {
*************** maybe_hot_afdo_count_p (profile_count co
*** 136,141 ****
--- 136,159 ----
    return count.ipa ().to_gcov_type () >= afdo_hot_bb_threshod;
  }
  
+ /* Return true if location of STMT may be expressed by debug info.  */
+ 
+ static bool
+ stmt_loc_used_by_debug_info (gimple *stmt)
+ {
+   /* Only inline_entry and gimple_bind's locations
+      are not output into debug output.  */
+   if (is_gimple_debug (stmt))
+     return gimple_debug_begin_stmt_p (stmt);
+   if (gimple_code (stmt) == GIMPLE_LABEL
+       || gimple_code (stmt) == GIMPLE_NOP
+       || gimple_code (stmt) == GIMPLE_PREDICT)
+     return false;
+   if (gimple_clobber_p (stmt))
+     return false;
+   return true;
+ }
+ 
  namespace autofdo
  {
  
*************** public:
*** 354,360 ****
      removed_icall_target_ = true;
    }
  
!   /* Reutrn true if function is removed from indir target list.  */
    bool
    removed_icall_target ()
    {
--- 372,378 ----
      removed_icall_target_ = true;
    }
  
!   /* Return true if function is removed from indir target list.  */
    bool
    removed_icall_target ()
    {
*************** private:
*** 488,494 ****
       to it.  */
    bool realized_;
  
!   /* Ture if function is in worklist for merging/offlining.  */
    bool in_worklist_;
  
    /* Pointer to outer function instance or NULL if this
--- 506,512 ----
       to it.  */
    bool realized_;
  
!   /* True if function is in worklist for merging/offlining.  */
    bool in_worklist_;
  
    /* Pointer to outer function instance or NULL if this
*************** function_instance::merge (function_insta
*** 1072,1078 ****
  }
  
  /* Make inline function FN offline.
!    If tolevel function of same name already exists, then merge profiles.
     Otherwise turn FN toplevel.  Return true if new toplevel function
     was introduced.
     If new toplevel functions are created and NEW_FUNCTIONS != NULL,
--- 1090,1096 ----
  }
  
  /* Make inline function FN offline.
!    If toplevel function of same name already exists, then merge profiles.
     Otherwise turn FN toplevel.  Return true if new toplevel function
     was introduced.
     If new toplevel functions are created and NEW_FUNCTIONS != NULL,
*************** function_instance::match (cgraph_node *n
*** 1353,1362 ****
  	  gphi *phi = gpi.phi ();
  	  inline_stack stack;
  
  	  get_inline_stack_in_node (gimple_location (phi), &stack, node);
  	  count_info *info = lookup_count (gimple_location (phi), stack, node);
! 	  if (info)
! 	    counts.add (info);
  	  dump_stmt (phi, info, NULL, stack);
  	  counts.add (info);
  	  for (edge e : bb->succs)
--- 1371,1383 ----
  	  gphi *phi = gpi.phi ();
  	  inline_stack stack;
  
+ 	  /* We do not assign discriminators to PHI nodes.
+ 	     In case we every start using them, we wil need to
+ 	     update tree-cfg.cc::assign_discriminators.  */
+ 	  gcc_assert (gimple_location (phi) == UNKNOWN_LOCATION);
  	  get_inline_stack_in_node (gimple_location (phi), &stack, node);
  	  count_info *info = lookup_count (gimple_location (phi), stack, node);
! 	  gcc_assert (!info);
  	  dump_stmt (phi, info, NULL, stack);
  	  counts.add (info);
  	  for (edge e : bb->succs)
*************** function_instance::match (cgraph_node *n
*** 1620,1626 ****
    unsigned int start_location = get_combined_location
      (DECL_STRUCT_FUNCTION (node->decl)->function_start_locus, node->decl);
    /* When outputting code to builtins location we use line number 0.
!      craeate_gcov is stupid and hapilly computes offsets across files.
       Silently ignore it.  */
    unsigned int zero_location
  	  = ((unsigned)(1-DECL_SOURCE_LINE (node->decl))) << 16;
--- 1641,1647 ----
    unsigned int start_location = get_combined_location
      (DECL_STRUCT_FUNCTION (node->decl)->function_start_locus, node->decl);
    /* When outputting code to builtins location we use line number 0.
!      create_gcov is stupid and happily computes offsets across files.
       Silently ignore it.  */
    unsigned int zero_location
  	  = ((unsigned)(1-DECL_SOURCE_LINE (node->decl))) << 16;
*************** autofdo_source_profile::offline_external
*** 2072,2082 ****
  	seen.add (iter.first);
      }
  
!   /* Now process all tolevel (offline) function instances.
  
       If instance has no definition in this translation unit,
       first offline all inlined functions which are defined here
!      (so we do not lose porfile due to cross-module inlining
       done by link-time optimizers).
  
       If instance has a definition, look into all inlined functions
--- 2093,2103 ----
  	seen.add (iter.first);
      }
  
!   /* Now process all toplevel (offline) function instances.
  
       If instance has no definition in this translation unit,
       first offline all inlined functions which are defined here
!      (so we do not lose profile due to cross-module inlining
       done by link-time optimizers).
  
       If instance has a definition, look into all inlined functions
*************** bool
*** 2417,2422 ****
--- 2438,2444 ----
  autofdo_source_profile::get_count_info (gimple *stmt, count_info *info,
  					cgraph_node *node) const
  {
+   gcc_checking_assert (stmt_loc_used_by_debug_info (stmt));
    return get_count_info (gimple_location (stmt), info, node);
  }
  
*************** autofdo_source_profile::get_function_ins
*** 2675,2681 ****
        if (s == NULL)
  	{
  	  /* afdo inliner extends the stack by last entry with unknown
! 	     location while chekcing if function was inlined during train run.
  	     We do not want to print diagnostics about every function
  	     which is not inlined.  */
  	  if (s && dump_enabled_p () && stack[i].location != UNKNOWN_LOCATION)
--- 2697,2703 ----
        if (s == NULL)
  	{
  	  /* afdo inliner extends the stack by last entry with unknown
! 	     location while checking if function was inlined during train run.
  	     We do not want to print diagnostics about every function
  	     which is not inlined.  */
  	  if (s && dump_enabled_p () && stack[i].location != UNKNOWN_LOCATION)
*************** update_count_by_afdo_count (profile_coun
*** 2950,2955 ****
--- 2972,3019 ----
      *count = c;
  }
  
+ /* Try to determine unscaled count of edge E.
+    Return -1 if nothing is known.  */
+ 
+ static gcov_type
+ afdo_unscaled_edge_count (edge e)
+ {
+   gcov_type max_count = -1;
+   basic_block bb_succ = e->dest;
+   count_info info;
+   if (afdo_source_profile->get_count_info (e->goto_locus, &info))
+     {
+       if (info.count > max_count)
+ 	max_count = info.count;
+       if (dump_file && info.count)
+ 	{
+ 	  fprintf (dump_file,
+ 		   "  goto location of edge %i->%i with count %" PRIu64"\n",
+ 		   e->src->index, e->dest->index, (int64_t)info.count);
+ 	}
+     }
+   for (gphi_iterator gpi = gsi_start_phis (bb_succ);
+        !gsi_end_p (gpi); gsi_next (&gpi))
+     {
+       gphi *phi = gpi.phi ();
+       location_t phi_loc
+ 	= gimple_phi_arg_location_from_edge (phi, e);
+       if (afdo_source_profile->get_count_info (phi_loc, &info))
+ 	{
+ 	  if (info.count > max_count)
+ 	    max_count = info.count;
+ 	  if (dump_file && info.count)
+ 	    {
+ 	      fprintf (dump_file,
+ 		       "  phi op of edge %i->%i with count %" PRIu64": ",
+ 		       e->src->index, e->dest->index, (int64_t)info.count);
+ 	      print_gimple_stmt (dump_file, phi, 0, TDF_SLIM);
+ 	    }
+ 	}
+     }
+   return max_count;
+ }
+ 
  /* For a given BB, set its execution count. Attach value profile if a stmt
     is not in PROMOTED, because we only want to promote an indirect call once.
     Return TRUE if BB is annotated.  */
*************** static bool
*** 2958,2965 ****
  afdo_set_bb_count (basic_block bb, hash_set <basic_block> &zero_bbs)
  {
    gimple_stmt_iterator gsi;
!   gcov_type max_count = 0;
!   bool has_annotated = false;
    if (dump_file)
      fprintf (dump_file, " Looking up AFDO count of bb %i\n", bb->index);
  
--- 3022,3028 ----
  afdo_set_bb_count (basic_block bb, hash_set <basic_block> &zero_bbs)
  {
    gimple_stmt_iterator gsi;
!   gcov_type max_count = -1;
    if (dump_file)
      fprintf (dump_file, " Looking up AFDO count of bb %i\n", bb->index);
  
*************** afdo_set_bb_count (basic_block bb, hash_
*** 2967,2973 ****
      {
        count_info info;
        gimple *stmt = gsi_stmt (gsi);
!       if (gimple_clobber_p (stmt))
  	continue;
        if (afdo_source_profile->get_count_info (stmt, &info))
  	{
--- 3030,3036 ----
      {
        count_info info;
        gimple *stmt = gsi_stmt (gsi);
!       if (!stmt_loc_used_by_debug_info (stmt))
  	continue;
        if (afdo_source_profile->get_count_info (stmt, &info))
  	{
*************** afdo_set_bb_count (basic_block bb, hash_
*** 2979,2985 ****
  		       (int64_t)info.count);
  	      print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
  	    }
- 	  has_annotated = true;
  	  gcall *call = dyn_cast <gcall *> (gsi_stmt (gsi));
  	  /* TODO; if inlined early and indirect call was not optimized out,
  	     we will end up speculating again.  Early inliner should remove
--- 3042,3047 ----
*************** afdo_set_bb_count (basic_block bb, hash_
*** 2990,3033 ****
  	}
      }
  
!   if (!has_annotated)
!     {
!       /* For an empty BB with all debug stmt which assigne a value with
! 	 constant, check successors PHIs corresponding to the block and
! 	 use those counts.  */
!       edge tmp_e;
!       edge_iterator tmp_ei;
!       FOR_EACH_EDGE (tmp_e, tmp_ei, bb->succs)
! 	{
! 	  basic_block bb_succ = tmp_e->dest;
! 	  for (gphi_iterator gpi = gsi_start_phis (bb_succ);
! 	       !gsi_end_p (gpi);
! 	       gsi_next (&gpi))
! 	    {
! 	      gphi *phi = gpi.phi ();
! 	      location_t phi_loc
! 		= gimple_phi_arg_location_from_edge (phi, tmp_e);
! 	      count_info info;
! 	      if (afdo_source_profile->get_count_info (phi_loc, &info)
! 		  && info.count != 0)
! 		{
! 		  if (info.count > max_count)
! 		    max_count = info.count;
! 		  if (dump_file && info.count)
! 		    {
! 		      fprintf (dump_file,
! 			       "  phi op in BB %i with count %" PRIu64": ",
! 			       bb_succ->index, (int64_t)info.count);
! 		      print_gimple_stmt (dump_file, phi, 0, TDF_SLIM);
! 		    }
! 		  has_annotated = true;
! 		}
! 	    }
! 	}
  
!       if (!has_annotated)
! 	return false;
!     }
  
    if (max_count)
      {
--- 3052,3062 ----
  	}
      }
  
!   if (max_count == -1 && single_succ_p (bb))
!     max_count = afdo_unscaled_edge_count (single_succ_edge (bb));
  
!   if (max_count == -1)
!     return false;
  
    if (max_count)
      {
*************** cmp (const void *a, const void *b)
*** 3419,3425 ****
    return 0;
  }
  
! /* To scalle a connected component of graph we collect desired scales of
     basic blocks on the boundary and then compute a robust average.  */
  
  struct scale
--- 3448,3454 ----
    return 0;
  }
  
! /* To scale a connected component of graph we collect desired scales of
     basic blocks on the boundary and then compute a robust average.  */
  
  struct scale
*************** scale_bbs (const vec <basic_block> &bbs,
*** 3485,3490 ****
--- 3514,3622 ----
        }
  }
  
+ /* Determine scaling factor by taking robust average of SCALES
+    and taking into account limits.
+    MAX_COUNT is maximal guessed count to be scaled while MAC_COUNT_IN_FN
+    is maximal count in function determined by auto-fdo.  */
+ 
+ sreal
+ determine_scale (vec <scale> *scales, profile_count max_count,
+ 		 profile_count max_count_in_fn)
+ {
+   scales->qsort (cmp);
+ 
+   uint64_t overall_weight = 0;
+   for (scale &e : *scales)
+     overall_weight += e.weight;
+ 
+   uint64_t cummulated = 0, weight_sum = 0;
+   sreal scale_sum = 0;
+   for (scale &e : *scales)
+     {
+       uint64_t prev = cummulated;
+       cummulated += e.weight;
+       if (cummulated >= overall_weight / 4
+ 	  && prev <= 3 * overall_weight / 4)
+ 	{
+ 	  scale_sum += e.scale * e.weight;
+ 	  weight_sum += e.weight;
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "    accounting scale %.16f, weight %" PRId64 "\n",
+ 		     e.scale.to_double (), e.weight);
+ 	}
+       else if (dump_file)
+ 	fprintf (dump_file, "    ignoring scale %.16f, weight %" PRId64 "\n",
+ 		 e.scale.to_double (), e.weight);
+      }
+   sreal scale = scale_sum / (sreal)weight_sum;
+ 
+   /* Avoid scaled regions to have very large counts.
+      Otherwise they may dominate ipa-profile's histogram computing cutoff
+      of hot basic blocks.  */
+   if (max_count * scale > max_count_in_fn.guessed_local ().apply_scale (128, 1))
+     {
+       if (dump_file)
+ 	{
+ 	  fprintf (dump_file, "Scaling by %.16f produces max count ",
+ 		   scale.to_double ());
+ 	  (max_count * scale).dump (dump_file);
+ 	  fprintf (dump_file, " that exceeds max count in fn ");
+ 	  max_count_in_fn.dump (dump_file);
+ 	  fprintf (dump_file, "; capping\n");
+ 	}
+       scale = max_count_in_fn.guessed_local ().to_sreal_scale (max_count);
+     }
+   return scale;
+ }
+ 
+ /* Scale profile of the whole function to approximately match auto-profile.  */
+ 
+ bool
+ scale_bb_profile ()
+ {
+   const function_instance *s
+       = afdo_source_profile->get_function_instance_by_decl
+ 	  (current_function_decl);
+ 
+   /* In the first pass only store non-zero counts.  */
+   gcov_type head_count = s->head_count () * autofdo::afdo_count_scale;
+   hash_set <basic_block> zero_bbs;
+   auto_vec <basic_block, 20> bbs (n_basic_blocks_for_fn (cfun));
+   auto_vec <scale, 20> scales;
+   basic_block bb;
+   profile_count max_count = profile_count::zero ();
+   profile_count max_count_in_fn = profile_count::zero ();
+   bbs.quick_push (ENTRY_BLOCK_PTR_FOR_FN (cfun));
+   bbs.quick_push (EXIT_BLOCK_PTR_FOR_FN (cfun));
+   if (head_count > 0)
+     {
+       profile_count entry_count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
+       max_count = entry_count;
+       update_count_by_afdo_count (&entry_count, head_count);
+       max_count_in_fn = entry_count;
+       add_scale (&scales, entry_count, ENTRY_BLOCK_PTR_FOR_FN (cfun)->count);
+     }
+   FOR_EACH_BB_FN (bb, cfun)
+     {
+       profile_count cnt = bb->count;
+       bbs.safe_push (bb);
+       max_count = max_count.max (bb->count);
+       if (afdo_set_bb_count (bb, zero_bbs))
+ 	{
+ 	  std::swap (cnt, bb->count);
+ 	  max_count_in_fn = max_count_in_fn.max (cnt);
+ 	  add_scale (&scales, cnt, bb->count);
+ 	}
+     }
+   if (scales.length ())
+     {
+       sreal scale = determine_scale (&scales, max_count, max_count_in_fn);
+       scale_bbs (bbs, scale);
+       return true;
+     }
+   return false;
+ }
+ 
  /* In case given basic block was fully optimized out, AutoFDO
     will have no data about it.  In this case try to preserve static profile.
     Identify connected components (in undirected form of CFG) which has
*************** afdo_adjust_guessed_profile (bb_set *ann
*** 3694,3740 ****
  	   continue;
  	 }
         gcc_checking_assert (scales.length ());
!        scales.qsort (cmp);
! 
!        uint64_t overall_weight = 0;
!        for (scale &e : scales)
! 	 overall_weight += e.weight;
! 
!        uint64_t cummulated = 0, weight_sum = 0;
!        sreal scale_sum = 0;
!        for (scale &e : scales)
! 	 {
! 	   uint64_t prev = cummulated;
! 	   cummulated += e.weight;
! 	   if (cummulated >= overall_weight / 4
! 	       && prev <= 3 * overall_weight / 4)
! 	     {
! 	       scale_sum += e.scale * e.weight;
! 	       weight_sum += e.weight;
! 	       if (dump_file)
! 		 fprintf (dump_file, "    accounting scale %.16f, weight %" PRId64 "\n",
! 			  e.scale.to_double (), e.weight);
! 	     }
! 	   else if (dump_file)
! 	     fprintf (dump_file, "    ignoring scale %.16f, weight %" PRId64 "\n",
! 		      e.scale.to_double (), e.weight);
! 	  }
!        sreal scale = scale_sum / (sreal)weight_sum;
! 
!        /* Avoid scaled regions to have very large counts.
! 	  Otherwise they may dominate ipa-profile's histogram computing cutoff
! 	  of hot basic blocks.  */
!        if (max_count * scale > max_count_in_fn.guessed_local ())
! 	 {
! 	   if (dump_file)
! 	     {
! 	       fprintf (dump_file, "Scaling by %.16f produces max count ",
! 			scale.to_double ());
! 	       (max_count * scale).dump (dump_file);
! 	       fprintf (dump_file, " that exceeds max count in fn; capping\n");
! 	     }
! 	   scale = max_count_in_fn.guessed_local ().to_sreal_scale (max_count);
! 	 }
         scale_bbs (bbs, scale);
       }
  }
--- 3826,3832 ----
  	   continue;
  	 }
         gcc_checking_assert (scales.length ());
!        sreal scale = determine_scale (&scales, max_count, max_count_in_fn);
         scale_bbs (bbs, scale);
       }
  }
*************** afdo_calculate_branch_prob (bb_set *anno
*** 3756,3761 ****
--- 3848,3877 ----
  	{
  	  gcc_assert (e->aux == NULL);
  	  e->aux = new edge_info ();
+ 	  gcov_type c = afdo_unscaled_edge_count (e);
+ 	  if (c == 0 && e->count () == profile_count::zero ())
+ 	    {
+ 	      AFDO_EINFO (e)->set_count (profile_count::zero ());
+ 	      if (dump_file)
+ 		fprintf (dump_file,
+ 			 "  Annotating edge %i->%i with count 0;"
+ 			 " static profile aggress",
+ 			 e->src->index, e->dest->index);
+ 	    }
+ 	  else if (c > 0)
+ 	    {
+ 	      AFDO_EINFO (e)->set_count
+ 	       	(profile_count::from_gcov_type
+ 		   (c * autofdo::afdo_count_scale).afdo ());
+ 	      if (dump_file)
+ 		{
+ 		  fprintf (dump_file,
+ 			   "  Annotating edge %i->%i with count ",
+ 			   e->src->index, e->dest->index);
+ 		  AFDO_EINFO (e)->get_count ().dump (dump_file);
+ 		  fprintf (dump_file, "\n");
+ 		}
+ 	    }
  	}
      }
  
*************** afdo_calculate_branch_prob (bb_set *anno
*** 3786,3809 ****
  	  }
  	if (!all_known || !total_count.nonzero_p ())
  	  continue;
  
  	FOR_EACH_EDGE (e, ei, bb->succs)
  	  if (AFDO_EINFO (e)->is_annotated ())
  	    {
  	      /* If probability is 1, preserve reliable static prediction
  		 (This is, for example the case of single fallthru edge
  		  or single fallthru plus unlikely EH edge.)  */
! 	      if (AFDO_EINFO (e)->get_count () == total_count
  		  && e->probability == profile_probability::always ())
  		;
! 	      else if (AFDO_EINFO (e)->get_count ().nonzero_p ())
  		e->probability
! 		  = AFDO_EINFO (e)->get_count ().probability_in (total_count);
  	      /* If probability is zero, preserve reliable static
  		 prediction.  */
  	      else if (e->probability.nonzero_p ()
  		       || e->probability.quality () == GUESSED)
  		e->probability = profile_probability::never ().afdo ();
  	    }
        }
    afdo_adjust_guessed_profile (annotated_bb);
--- 3902,3942 ----
  	  }
  	if (!all_known || !total_count.nonzero_p ())
  	  continue;
+ 	if (dump_file)
+ 	  {
+ 	    fprintf (dump_file, "Total count of bb %i is ", bb->index);
+ 	    total_count.dump (dump_file);
+ 	    fprintf (dump_file, "\n");
+ 	  }
  
  	FOR_EACH_EDGE (e, ei, bb->succs)
  	  if (AFDO_EINFO (e)->is_annotated ())
  	    {
+ 	      profile_count cnt = AFDO_EINFO (e)->get_count ();
  	      /* If probability is 1, preserve reliable static prediction
  		 (This is, for example the case of single fallthru edge
  		  or single fallthru plus unlikely EH edge.)  */
! 	      if (cnt == total_count
  		  && e->probability == profile_probability::always ())
  		;
! 	      else if (cnt.nonzero_p ())
  		e->probability
! 		  = cnt.probability_in (total_count);
  	      /* If probability is zero, preserve reliable static
  		 prediction.  */
  	      else if (e->probability.nonzero_p ()
  		       || e->probability.quality () == GUESSED)
  		e->probability = profile_probability::never ().afdo ();
+ 	      if (dump_file)
+ 		{
+ 		  fprintf (dump_file, "  probability of edge %i->%i"
+ 			   " with count ",
+ 			   e->src->index, e->dest->index);
+ 		  cnt.dump (dump_file);
+ 		  fprintf (dump_file, " set to ");
+ 		  e->probability.dump (dump_file);
+ 		  fprintf (dump_file, "\n");
+ 		}
  	    }
        }
    afdo_adjust_guessed_profile (annotated_bb);
*************** afdo_annotate_cfg (void)
*** 3860,3880 ****
        s->dump (dump_file);
        fprintf (dump_file, "\n");
      }
! 
!   /* In the first pass only store non-zero counts.  */
!   gcov_type head_count = s->head_count () * autofdo::afdo_count_scale;
!   bool profile_found = head_count > 0;
    hash_set <basic_block> zero_bbs;
!   FOR_EACH_BB_FN (bb, cfun)
      {
!       if (afdo_set_bb_count (bb, zero_bbs))
  	{
! 	  if (bb->count.quality () == AFDO)
  	    {
! 	      gcc_assert (bb->count.nonzero_p ());
! 	      profile_found = true;
  	    }
- 	  set_bb_annotated (bb, &annotated_bb);
  	}
      }
    /* Exit without clobbering static profile if there was no
--- 3993,4022 ----
        s->dump (dump_file);
        fprintf (dump_file, "\n");
      }
!   bool profile_found = false;
    hash_set <basic_block> zero_bbs;
!   gcov_type head_count = s->head_count () * autofdo::afdo_count_scale;
! 
!   if (!param_auto_profile_bbs)
      {
!       if (scale_bb_profile ())
! 	return;
!     }
!   else
!     {
!       /* In the first pass only store non-zero counts.  */
!       profile_found = head_count > 0;
!       FOR_EACH_BB_FN (bb, cfun)
  	{
! 	  if (afdo_set_bb_count (bb, zero_bbs))
  	    {
! 	      if (bb->count.quality () == AFDO)
! 		{
! 		  gcc_assert (bb->count.nonzero_p ());
! 		  profile_found = true;
! 		}
! 	      set_bb_annotated (bb, &annotated_bb);
  	    }
  	}
      }
    /* Exit without clobbering static profile if there was no
*************** afdo_vpt_for_early_inline (cgraph_node *
*** 4135,4142 ****
        for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
  	   !gsi_end_p (gsi); gsi_next (&gsi))
  	{
- 	  autofdo::count_info info;
  	  gimple *stmt = gsi_stmt (gsi);
  	  if (autofdo::afdo_source_profile->get_count_info (stmt, &info, node))
  	    bb_count = MAX (bb_count, info.count);
  	}
--- 4277,4286 ----
        for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
  	   !gsi_end_p (gsi); gsi_next (&gsi))
  	{
  	  gimple *stmt = gsi_stmt (gsi);
+ 	  if (!stmt_loc_used_by_debug_info (stmt))
+ 	    continue;
+ 	  autofdo::count_info info;
  	  if (autofdo::afdo_source_profile->get_count_info (stmt, &info, node))
  	    bb_count = MAX (bb_count, info.count);
  	}
diff -Nrcpad gcc-16-20250928/gcc/auto-profile.h gcc-16-20251005/gcc/auto-profile.h
*** gcc-16-20250928/gcc/auto-profile.h	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/auto-profile.h	Sun Oct  5 22:32:12 2025
*************** extern void remove_afdo_speculative_targ
*** 39,45 ****
     considered cols.  */
  extern gcov_type afdo_hot_bb_threshold;
  
! /* Return ture if COUNT is possiby hot.  */
  extern bool maybe_hot_afdo_count_p (profile_count count);
  
  #endif /* AUTO_PROFILE_H */
--- 39,45 ----
     considered cols.  */
  extern gcov_type afdo_hot_bb_threshold;
  
! /* Return true if COUNT is possibly hot.  */
  extern bool maybe_hot_afdo_count_p (profile_count count);
  
  #endif /* AUTO_PROFILE_H */
diff -Nrcpad gcc-16-20250928/gcc/basic-block.h gcc-16-20251005/gcc/basic-block.h
*** gcc-16-20250928/gcc/basic-block.h	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/basic-block.h	Sun Oct  5 22:32:12 2025
*************** enum cfg_bb_flags
*** 293,303 ****
  /* Return expected execution frequency of the edge E.  */
  #define EDGE_FREQUENCY(e)		e->count ().to_frequency (cfun)
  
- /* Compute a scale factor (or probability) suitable for scaling of
-    gcov_type values via apply_probability() and apply_scale().  */
- #define GCOV_COMPUTE_SCALE(num,den) \
-   ((den) ? RDIV ((num) * REG_BR_PROB_BASE, (den)) : REG_BR_PROB_BASE)
- 
  /* Return nonzero if edge is critical.  */
  #define EDGE_CRITICAL_P(e)		(EDGE_COUNT ((e)->src->succs) >= 2 \
  					 && EDGE_COUNT ((e)->dest->preds) >= 2)
--- 293,298 ----
diff -Nrcpad gcc-16-20250928/gcc/c/ChangeLog gcc-16-20251005/gcc/c/ChangeLog
*** gcc-16-20250928/gcc/c/ChangeLog	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c/ChangeLog	Sun Oct  5 22:32:13 2025
***************
*** 1,3 ****
--- 1,30 ----
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* c-decl.cc (maybe_mark_function_versioned): Add diagnostic.
+ 	* c-parser.cc (c_finish_omp_declare_simd): Add diagnostic.
+ 
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* c-decl.cc (maybe_mark_function_versioned): New function.
+ 	(merge_decls): Preserve DECL_FUNCTION_VERSIONED in merging.
+ 	(duplicate_decls): Add check and diagnostic for unmergable version decls.
+ 	(pushdecl): Add FMV target_version logic.
+ 	(lookup_name): Don't resolve non-default versions.
+ 	(start_decl): Mark and mangle versioned functions.
+ 	(start_function): Mark and mangle versioned functions.
+ 	(c_parse_final_cleanups): Add call to process_same_body_aliases.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* Make-lang.in: Add c_FDAS
+ 	(create_fdas_for_cc1): Be sure that build fails if create_gcov fails.
+ 
+ 2025-09-30  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR target/121933
+ 	* c-typeck.cc (mark_decl_used): Set DECL_NONLOCAL
+ 	only for VAR_DECL, FUNC_DECL, PARM_DECL.
+ 
  2025-09-26  Alejandro Colomar  <alx@kernel.org>
  
  	* c-decl.cc (c_scope): Rename {warned > had}_forward_parm_decls.
diff -Nrcpad gcc-16-20250928/gcc/c/Make-lang.in gcc-16-20251005/gcc/c/Make-lang.in
*** gcc-16-20250928/gcc/c/Make-lang.in	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c/Make-lang.in	Sun Oct  5 22:32:13 2025
*************** C_AND_OBJC_OBJS = attribs.o c/c-errors.o
*** 58,63 ****
--- 58,64 ----
  # Language-specific object files for C.
  C_OBJS = c/c-lang.o c-family/stub-objc.o $(C_AND_OBJC_OBJS)
  c_OBJS = $(C_OBJS) cc1-checksum.o c/gccspec.o
+ c_FDAS = cc1.fda
  
  # Use strict warnings for this front end.
  c-warn = $(STRICT_WARN)
*************** create_fdas_for_cc1: ../stage1-gcc/cc1$(
*** 101,107 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 102,108 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
*************** create_fdas_for_cc1: ../stage1-gcc/cc1$(
*** 111,117 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 112,118 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20250928/gcc/c/c-decl.cc gcc-16-20251005/gcc/c/c-decl.cc
*** gcc-16-20250928/gcc/c/c-decl.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c/c-decl.cc	Sun Oct  5 22:32:13 2025
*************** previous_tag (tree type)
*** 2086,2091 ****
--- 2086,2120 ----
    return NULL_TREE;
  }
  
+ /* Subroutine to mark functions as versioned when using the attribute
+    'target_version'.  */
+ 
+ static void
+ maybe_mark_function_versioned (tree decl)
+ {
+   if (!DECL_FUNCTION_VERSIONED (decl))
+     {
+       /* Check if the name of the function has been overridden.  */
+       if (DECL_ASSEMBLER_NAME_SET_P (decl)
+ 	  && IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))[0] == '*')
+ 	error_at (DECL_SOURCE_LOCATION (decl),
+ 		  "cannot use function multiversioning on a renamed function");
+ 
+       /* We need to insert function version now to make sure the correct
+ 	 pre-mangled assembler name is recorded.  */
+       cgraph_node *node = cgraph_node::get_create (decl);
+ 
+       if (!node->function_version ())
+ 	node->insert_new_function_version ();
+ 
+       DECL_FUNCTION_VERSIONED (decl) = 1;
+ 
+       tree mangled_name
+ 	= targetm.mangle_decl_assembler_name (decl, DECL_NAME (decl));
+       SET_DECL_ASSEMBLER_NAME (decl, mangled_name);
+     }
+ }
+ 
  /* Subroutine of duplicate_decls.  Compare NEWDECL to OLDDECL.
     Returns true if the caller should proceed to merge the two, false
     if OLDDECL should simply be discarded.  As a side effect, issues
*************** diagnose_mismatched_decls (tree newdecl,
*** 2505,2510 ****
--- 2534,2543 ----
  			"but not here");
  	    }
  	}
+       /* Check if these are unmergable overlapping FMV declarations.  */
+       if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE
+ 	  && diagnose_versioned_decls (olddecl, newdecl))
+ 	return false;
      }
    else if (VAR_P (newdecl))
      {
*************** merge_decls (tree newdecl, tree olddecl,
*** 2971,2976 ****
--- 3004,3015 ----
  
    if (TREE_CODE (newdecl) == FUNCTION_DECL)
      {
+       if (DECL_FUNCTION_VERSIONED (olddecl)
+ 	  || DECL_FUNCTION_VERSIONED (newdecl))
+ 	{
+ 	  maybe_mark_function_versioned (olddecl);
+ 	  maybe_mark_function_versioned (newdecl);
+ 	}
        /* If we're redefining a function previously defined as extern
  	 inline, make sure we emit debug info for the inline before we
  	 throw it away, in case it was inlined into a function that
*************** pushdecl (tree x)
*** 3370,3375 ****
--- 3409,3461 ----
  		TREE_TYPE (b_use->decl) = b_use->u.type;
  	    }
  	}
+ 
+       /* Check if x is part of a FMV set with b_use.  */
+       if (b_use && TREE_CODE (b_use->decl) == FUNCTION_DECL
+ 	  && TREE_CODE (x) == FUNCTION_DECL && DECL_FILE_SCOPE_P (b_use->decl)
+ 	  && DECL_FILE_SCOPE_P (x)
+ 	  && disjoint_version_decls (x, b_use->decl)
+ 	  && comptypes (vistype, type) != 0)
+ 	{
+ 	  maybe_mark_function_versioned (b_use->decl);
+ 	  maybe_mark_function_versioned (b->decl);
+ 	  maybe_mark_function_versioned (x);
+ 
+ 	  cgraph_node *b_node = cgraph_node::get_create (b_use->decl);
+ 	  cgraph_function_version_info *b_v = b_node->function_version ();
+ 	  if (!b_v)
+ 	    b_v = b_node->insert_new_function_version ();
+ 
+ 	  /* Check if this new node conflicts with any previous functions
+ 	     in the set.  */
+ 	  cgraph_function_version_info *version = b_v;
+ 	  for (; version; version = version->next)
+ 	    if (!disjoint_version_decls (version->this_node->decl, x))
+ 	      {
+ 		/* The decls define overlapping version, so attempt to merge
+ 		   or diagnose the conflict.  */
+ 		if (duplicate_decls (x, version->this_node->decl))
+ 		  return version->this_node->decl;
+ 		else
+ 		  return error_mark_node;
+ 	      }
+ 
+ 	  /* This is a new version to be added to FMV structure.  */
+ 	  cgraph_node::add_function_version (b_v, x);
+ 
+ 	  /* Get the first node from the structure.  */
+ 	  cgraph_function_version_info *default_v = b_v;
+ 	  while (default_v->prev)
+ 	    default_v = default_v->prev;
+ 	  /* Always use the default node for the bindings.  */
+ 	  b_use->decl = default_v->this_node->decl;
+ 	  b->decl = default_v->this_node->decl;
+ 
+ 	  /* Node is not a duplicate, so no need to do the rest of the
+ 	     checks.  */
+ 	  return x;
+ 	}
+ 
        if (duplicate_decls (x, b_use->decl))
  	{
  	  if (b_use != b)
*************** tree
*** 4494,4499 ****
--- 4580,4591 ----
  lookup_name (tree name)
  {
    struct c_binding *b = I_SYMBOL_BINDING (name);
+   /* Do not resolve non-default function versions.  */
+   if (b
+       && TREE_CODE (b->decl) == FUNCTION_DECL
+       && DECL_FUNCTION_VERSIONED (b->decl)
+       && !is_function_default_version (b->decl))
+     return NULL_TREE;
    if (b && !b->invisible)
      {
        maybe_record_typedef_use (b->decl);
*************** start_decl (struct c_declarator *declara
*** 5776,5781 ****
--- 5868,5884 ----
        && VAR_OR_FUNCTION_DECL_P (decl))
        objc_check_global_decl (decl);
  
+   /* To enable versions to be created across TU's we mark and mangle all
+      non-default versioned functions.  */
+   if (TREE_CODE (decl) == FUNCTION_DECL
+       && !TARGET_HAS_FMV_TARGET_ATTRIBUTE
+       && get_target_version (decl).is_valid ())
+     {
+       maybe_mark_function_versioned (decl);
+       if (current_scope != file_scope)
+ 	error ("versioned declarations are only allowed at file scope");
+     }
+ 
    /* Add this decl to the current scope.
       TEM may equal DECL or it may be a previous decl of the same name.  */
    if (do_push)
*************** start_function (struct c_declspecs *decl
*** 10754,10759 ****
--- 10857,10873 ----
        warn_parm_array_mismatch (origloc, old_decl, parms);
      }
  
+   /* To enable versions to be created across TU's we mark and mangle all
+      non-default versioned functions.  */
+   if (TREE_CODE (decl1) == FUNCTION_DECL
+       && !TARGET_HAS_FMV_TARGET_ATTRIBUTE
+       && get_target_version (decl1).is_valid ())
+     {
+       maybe_mark_function_versioned (decl1);
+       if (current_scope != file_scope)
+ 	error ("versioned definitions are only allowed at file scope");
+     }
+ 
    /* Record the decl so that the function name is defined.
       If we already have a decl for this name, and it is a FUNCTION_DECL,
       use the old decl.  */
*************** c_parse_final_cleanups (void)
*** 13585,13590 ****
--- 13699,13708 ----
      c_write_global_declarations_1 (BLOCK_VARS (DECL_INITIAL (t)));
    c_write_global_declarations_1 (BLOCK_VARS (ext_block));
  
+   /* Call this to set cpp_implicit_aliases_done on all nodes.  This is
+      important for function multiversioning aliases to get resolved.  */
+   symtab->process_same_body_aliases ();
+ 
    if (!in_lto_p)
      free_attr_access_data ();
  
diff -Nrcpad gcc-16-20250928/gcc/c/c-parser.cc gcc-16-20251005/gcc/c/c-parser.cc
*** gcc-16-20250928/gcc/c/c-parser.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c/c-parser.cc	Sun Oct  5 22:32:13 2025
*************** c_finish_omp_declare_simd (c_parser *par
*** 27776,27781 ****
--- 27776,27788 ----
        clauses[0].type = CPP_EOF;
        return;
      }
+   if (DECL_FUNCTION_VERSIONED (fndecl))
+     {
+       error_at (DECL_SOURCE_LOCATION (fndecl),
+ 		"%<#pragma omp declare %s%> cannot be used with function "
+ 		"multi-versioning", kind);
+       return;
+     }
  
    if (parms == NULL_TREE)
      parms = DECL_ARGUMENTS (fndecl);
diff -Nrcpad gcc-16-20250928/gcc/c/c-typeck.cc gcc-16-20251005/gcc/c/c-typeck.cc
*** gcc-16-20250928/gcc/c/c-typeck.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c/c-typeck.cc	Sun Oct  5 22:32:13 2025
*************** mark_decl_used (tree ref, bool address)
*** 3696,3702 ****
    if (static_p)
      C_DECL_USED (ref) = 1;
  
!   if (nonloc_p)
      DECL_NONLOCAL (ref) = 1;
  
    /* Nothing to do anymore.  */
--- 3696,3703 ----
    if (static_p)
      C_DECL_USED (ref) = 1;
  
!   if (nonloc_p && (VAR_OR_FUNCTION_DECL_P (ref)
! 		   || TREE_CODE (ref) == PARM_DECL))
      DECL_NONLOCAL (ref) = 1;
  
    /* Nothing to do anymore.  */
diff -Nrcpad gcc-16-20250928/gcc/c-family/ChangeLog gcc-16-20251005/gcc/c-family/ChangeLog
*** gcc-16-20250928/gcc/c-family/ChangeLog	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c-family/ChangeLog	Sun Oct  5 22:32:12 2025
***************
*** 1,3 ****
--- 1,32 ----
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114457
+ 	* c-opts.cc (c_common_post_options): For C++26 set
+ 	flag_auto_var_init to AUTO_INIT_CXX26 if not specified explicitly.
+ 	For C++ disable warn_trivial_auto_var_init.
+ 
+ 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/117658
+ 	* c.opt: New flag '-Wexternal-tu-local'.
+ 	* c.opt.urls: Regenerate.
+ 
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* c-attribs.cc (attr_target_clones_exclusions): Add simd and omp
+ 	exclusions.
+ 	(attr_target_version_exclusions): New definition with simd and omp
+ 	exclusions.
+ 	(attr_omp_declare_simd_exclusions): New definition with target_version
+ 	and clones exclusions.
+ 	(attr_simd_exclusions): Ditto.
+ 	(c_common_gnu_attributes): Add new target_version, simd, and omp
+ 	declare simd variables.
+ 
+ 2025-10-01  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* c.opt.urls: Regenerate
+ 
  2025-09-26  Alejandro Colomar  <alx@kernel.org>
  
  	* c.opt: Add -Wmultiple-parameter-fwd-decl-lists
diff -Nrcpad gcc-16-20250928/gcc/c-family/c-attribs.cc gcc-16-20251005/gcc/c-family/c-attribs.cc
*** gcc-16-20250928/gcc/c-family/c-attribs.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c-family/c-attribs.cc	Sun Oct  5 22:32:13 2025
*************** static const struct attribute_spec::excl
*** 249,254 ****
--- 249,277 ----
    ATTR_EXCL ("always_inline", true, true, true),
    ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
  	     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE),
+   ATTR_EXCL ("omp declare simd", true, true, true),
+   ATTR_EXCL ("simd", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_target_version_exclusions[] =
+ {
+   ATTR_EXCL ("omp declare simd", true, true, true),
+   ATTR_EXCL ("simd", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_omp_declare_simd_exclusions[] =
+ {
+   ATTR_EXCL ("target_version", true, true, true),
+   ATTR_EXCL ("target_clones", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_simd_exclusions[] =
+ {
+   ATTR_EXCL ("target_version", true, true, true),
+   ATTR_EXCL ("target_clones", true, true, true),
    ATTR_EXCL (NULL, false, false, false),
  };
  
*************** const struct attribute_spec c_common_gnu
*** 536,542 ****
  			      attr_target_exclusions },
    { "target_version",         1, 1, true, false, false, false,
  			      handle_target_version_attribute,
! 			      NULL },
    { "target_clones",          1, -1, true, false, false, false,
  			      handle_target_clones_attribute,
  			      attr_target_clones_exclusions },
--- 559,565 ----
  			      attr_target_exclusions },
    { "target_version",         1, 1, true, false, false, false,
  			      handle_target_version_attribute,
! 			      attr_target_version_exclusions},
    { "target_clones",          1, -1, true, false, false, false,
  			      handle_target_clones_attribute,
  			      attr_target_clones_exclusions },
*************** const struct attribute_spec c_common_gnu
*** 563,569 ****
    { "returns_nonnull",        0, 0, false, true, true, false,
  			      handle_returns_nonnull_attribute, NULL },
    { "omp declare simd",       0, -1, true,  false, false, false,
! 			      handle_omp_declare_simd_attribute, NULL },
    { "omp declare variant base", 0, -1, true,  false, false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "omp declare variant variant", 0, -1, true,  false, false, false,
--- 586,593 ----
    { "returns_nonnull",        0, 0, false, true, true, false,
  			      handle_returns_nonnull_attribute, NULL },
    { "omp declare simd",       0, -1, true,  false, false, false,
! 			      handle_omp_declare_simd_attribute,
! 			      attr_omp_declare_simd_exclusions },
    { "omp declare variant base", 0, -1, true,  false, false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "omp declare variant variant", 0, -1, true,  false, false, false,
*************** const struct attribute_spec c_common_gnu
*** 572,578 ****
  			      false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "simd",		      0, 1, true,  false, false, false,
! 			      handle_simd_attribute, NULL },
    { "omp declare target",     0, -1, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target link", 0, 0, true, false, false, false,
--- 596,602 ----
  			      false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "simd",		      0, 1, true,  false, false, false,
! 			      handle_simd_attribute, attr_simd_exclusions },
    { "omp declare target",     0, -1, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target link", 0, 0, true, false, false, false,
diff -Nrcpad gcc-16-20250928/gcc/c-family/c-opts.cc gcc-16-20251005/gcc/c-family/c-opts.cc
*** gcc-16-20250928/gcc/c-family/c-opts.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c-family/c-opts.cc	Sun Oct  5 22:32:13 2025
*************** c_common_post_options (const char **pfil
*** 913,918 ****
--- 913,928 ----
    else
      flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_C11;
  
+   if (cxx_dialect >= cxx26)
+     SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 			 flag_auto_var_init, AUTO_INIT_CXX26);
+ 
+   /* The -Wtrivial-auto-var-init warning is useless for C++, where we always
+      add .DEFERRED_INIT calls when some (vacuous) initializers are bypassed
+      through jumps from switch condition to case/default label.  */
+   if (c_dialect_cxx ())
+     warn_trivial_auto_var_init = 0;
+ 
    /* C23 Annex F does not permit certain built-in functions to raise
       "inexact".  */
    if (flag_isoc23)
diff -Nrcpad gcc-16-20250928/gcc/c-family/c.opt gcc-16-20251005/gcc/c-family/c.opt
*** gcc-16-20250928/gcc/c-family/c.opt	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c-family/c.opt	Sun Oct  5 22:32:13 2025
*************** Wexpansion-to-defined
*** 761,766 ****
--- 761,770 ----
  C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
  Warn if \"defined\" is used outside #if.
  
+ Wexternal-tu-local
+ C++ ObjC++ Var(warn_tu_local) Warning Init(1)
+ Warn about naming a TU-local entity declared in another translation unit.
+ 
  Wextra
  C ObjC C++ ObjC++ Warning
  ; in common.opt
diff -Nrcpad gcc-16-20250928/gcc/c-family/c.opt.urls gcc-16-20251005/gcc/c-family/c.opt.urls
*** gcc-16-20250928/gcc/c-family/c.opt.urls	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/c-family/c.opt.urls	Sun Oct  5 22:32:13 2025
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 376,381 ****
--- 376,384 ----
  Wexpansion-to-defined
  UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
  
+ Wexternal-tu-local
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexternal-tu-local)
+ 
  Wextra
  UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wextra)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 595,600 ****
--- 598,606 ----
  Wmultiple-inheritance
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
  
+ Wmultiple-parameter-fwd-decl-lists
+ UrlSuffix(gcc/Warning-Options.html#index-Wmultiple-parameter-fwd-decl-lists)
+ 
  Wmultistatement-macros
  UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
  
diff -Nrcpad gcc-16-20250928/gcc/cfgexpand.cc gcc-16-20251005/gcc/cfgexpand.cc
*** gcc-16-20250928/gcc/cfgexpand.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/cfgexpand.cc	Sun Oct  5 22:32:13 2025
*************** along with GCC; see the file COPYING3.
*** 90,96 ****
  struct ssaexpand SA;
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of comminucating the profile info to the builtin expanders.  */
  gimple *currently_expanding_gimple_stmt;
  
  static rtx expand_debug_expr (tree);
--- 90,96 ----
  struct ssaexpand SA;
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of communicating the profile info to the builtin expanders.  */
  gimple *currently_expanding_gimple_stmt;
  
  static rtx expand_debug_expr (tree);
*************** add_scope_conflicts_2 (vars_ssa_cache &c
*** 834,841 ****
  {
    gcc_assert (TREE_CODE (name) == SSA_NAME);
  
!   /* Querry the cache for the mapping of addresses that are referendd by
!      ssa name NAME. Querrying it will fill in it.  */
    bitmap_iterator bi;
    unsigned i;
    const_bitmap bmap = cache (name);
--- 834,841 ----
  {
    gcc_assert (TREE_CODE (name) == SSA_NAME);
  
!   /* Query the cache for the mapping of addresses that are referenced by
!      ssa name NAME.  Querying it will fill in it.  */
    bitmap_iterator bi;
    unsigned i;
    const_bitmap bmap = cache (name);
diff -Nrcpad gcc-16-20250928/gcc/cfghooks.cc gcc-16-20251005/gcc/cfghooks.cc
*** gcc-16-20250928/gcc/cfghooks.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/cfghooks.cc	Sun Oct  5 22:32:13 2025
*************** merge_blocks (basic_block a, basic_block
*** 817,822 ****
--- 817,831 ----
    if (!cfg_hooks->merge_blocks)
      internal_error ("%s does not support merge_blocks", cfg_hooks->name);
  
+   /* Pick the more reliable count.  If both qualities agrees, pick the larger
+      one since turning mistakely hot code to cold is more harmful.  */
+   if (!a->count.initialized_p ())
+     a->count = b->count;
+   else if (a->count.quality () < b->count.quality ())
+     a->count = b->count;
+   else if (a->count.quality () == b->count.quality ())
+     a->count = a->count.max (b->count);
+ 
    cfg_hooks->merge_blocks (a, b);
  
    if (current_loops != NULL)
diff -Nrcpad gcc-16-20250928/gcc/config/aarch64/aarch64.cc gcc-16-20251005/gcc/config/aarch64/aarch64.cc
*** gcc-16-20250928/gcc/config/aarch64/aarch64.cc	Sun Sep 28 22:33:03 2025
--- gcc-16-20251005/gcc/config/aarch64/aarch64.cc	Sun Oct  5 22:32:13 2025
*************** aarch64_compare_version_priority (tree d
*** 20640,20645 ****
--- 20640,20669 ----
    return compare_feature_masks (mask1, mask2);
  }
  
+ /* Implement TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.  */
+ 
+ bool
+ aarch64_functions_b_resolvable_from_a (tree decl_a, tree decl_b, tree baseline)
+ {
+   auto baseline_isa = aarch64_get_isa_flags
+ 		 (TREE_TARGET_OPTION (aarch64_fndecl_options (baseline)));
+   auto isa_a = baseline_isa;
+   auto isa_b = baseline_isa;
+ 
+   auto a_version = get_target_version (decl_a);
+   auto b_version = get_target_version (decl_b);
+   if (a_version.is_valid ())
+     aarch64_parse_fmv_features (a_version, &isa_a, NULL, NULL);
+   if (b_version.is_valid ())
+     aarch64_parse_fmv_features (b_version, &isa_b, NULL, NULL);
+ 
+   /* Are there any bits of b that arent in a.  */
+   if (isa_b & (~isa_a))
+     return false;
+ 
+   return true;
+ }
+ 
  /* Build the struct __ifunc_arg_t type:
  
     struct __ifunc_arg_t
*************** aarch64_libgcc_floating_mode_supported_p
*** 32854,32859 ****
--- 32878,32887 ----
  #undef TARGET_COMPARE_VERSION_PRIORITY
  #define TARGET_COMPARE_VERSION_PRIORITY aarch64_compare_version_priority
  
+ #undef TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A
+ #define TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A \
+   aarch64_functions_b_resolvable_from_a
+ 
  #undef TARGET_GENERATE_VERSION_DISPATCHER_BODY
  #define TARGET_GENERATE_VERSION_DISPATCHER_BODY \
    aarch64_generate_version_dispatcher_body
diff -Nrcpad gcc-16-20250928/gcc/config/i386/i386-expand.cc gcc-16-20251005/gcc/config/i386/i386-expand.cc
*** gcc-16-20250928/gcc/config/i386/i386-expand.cc	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/i386/i386-expand.cc	Sun Oct  5 22:32:14 2025
*************** setmem_epilogue_gen_val (void *op_p, voi
*** 8443,8451 ****
  
        unsigned int op_size = GET_MODE_SIZE (op_mode);
        unsigned int size = GET_MODE_SIZE (mode);
!       unsigned int nunits = op_size / GET_MODE_SIZE (QImode);
!       machine_mode vec_mode
! 	= mode_for_vector (QImode, nunits).require ();
        target = gen_reg_rtx (vec_mode);
        op = gen_rtx_SUBREG (vec_mode, op, 0);
        emit_move_insn (target, op);
--- 8443,8470 ----
  
        unsigned int op_size = GET_MODE_SIZE (op_mode);
        unsigned int size = GET_MODE_SIZE (mode);
!       unsigned int nunits;
!       machine_mode vec_mode;
!       if (op_size < size)
! 	{
! 	  /* If OP size is smaller than MODE size, duplicate it.  */
! 	  nunits = size / GET_MODE_SIZE (QImode);
! 	  vec_mode = mode_for_vector (QImode, nunits).require ();
! 	  nunits = size / op_size;
! 	  gcc_assert (SCALAR_INT_MODE_P (op_mode));
! 	  machine_mode dup_mode
! 	    = mode_for_vector (as_a <scalar_mode> (op_mode),
! 			       nunits).require ();
! 	  target = gen_reg_rtx (vec_mode);
! 	  op = gen_vec_duplicate (dup_mode, op);
! 	  rtx dup_op = gen_reg_rtx (dup_mode);
! 	  emit_move_insn (dup_op, op);
! 	  op = gen_rtx_SUBREG (vec_mode, dup_op, 0);
! 	  emit_move_insn (target, op);
! 	  return target;
! 	}
!       nunits = op_size / GET_MODE_SIZE (QImode);
!       vec_mode = mode_for_vector (QImode, nunits).require ();
        target = gen_reg_rtx (vec_mode);
        op = gen_rtx_SUBREG (vec_mode, op, 0);
        emit_move_insn (target, op);
diff -Nrcpad gcc-16-20250928/gcc/config/m68k/m68k.md gcc-16-20251005/gcc/config/m68k/m68k.md
*** gcc-16-20250928/gcc/config/m68k/m68k.md	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/m68k/m68k.md	Sun Oct  5 22:32:14 2025
***************
*** 2442,2455 ****
        gcc_assert (GET_CODE (operands[0]) == MEM);
        if (GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  	{
! 	  operands[1] = gen_rtx_MEM (SImode,
! 				     plus_constant (Pmode,
! 						    XEXP(operands[0], 0), -8));
  	  return "move%.l %0,%3\;add%.l %R2,%0\;addx%.l %2,%3\;move%.l %3,%1";
  	}
        else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  	{
! 	  operands[1] = XEXP(operands[0], 0);
  	  return "add%.l %R2,%0\;move%.l %0,%3\;addx%.l %2,%3\;move%.l %3,%1";
  	}
        else
--- 2442,2456 ----
        gcc_assert (GET_CODE (operands[0]) == MEM);
        if (GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  	{
! 	  operands[1]
! 	    = gen_rtx_MEM (SImode,
! 			   plus_constant (Pmode,
! 					  XEXP (XEXP (operands[0], 0), 0), -8));
  	  return "move%.l %0,%3\;add%.l %R2,%0\;addx%.l %2,%3\;move%.l %3,%1";
  	}
        else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  	{
! 	  operands[1] = XEXP (XEXP (operands[0], 0), 0);
  	  return "add%.l %R2,%0\;move%.l %0,%3\;addx%.l %2,%3\;move%.l %3,%1";
  	}
        else
***************
*** 2949,2961 ****
        if (GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  	{
  	  operands[1]
! 	    = gen_rtx_MEM (SImode, plus_constant (Pmode,
! 						  XEXP (operands[0], 0), -8));
  	  return "move%.l %0,%3\;sub%.l %R2,%0\;subx%.l %2,%3\;move%.l %3,%1";
  	}
        else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  	{
! 	  operands[1] = XEXP(operands[0], 0);
  	  return "sub%.l %R2,%0\;move%.l %0,%3\;subx%.l %2,%3\;move%.l %3,%1";
  	}
        else
--- 2950,2963 ----
        if (GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  	{
  	  operands[1]
! 	    = gen_rtx_MEM (SImode,
! 			   plus_constant (Pmode,
! 					  XEXP (XEXP (operands[0], 0), 0), -8));
  	  return "move%.l %0,%3\;sub%.l %R2,%0\;subx%.l %2,%3\;move%.l %3,%1";
  	}
        else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  	{
! 	  operands[1] = XEXP (XEXP (operands[0], 0), 0);
  	  return "sub%.l %R2,%0\;move%.l %0,%3\;subx%.l %2,%3\;move%.l %3,%1";
  	}
        else
diff -Nrcpad gcc-16-20250928/gcc/config/pa/pa.h gcc-16-20251005/gcc/config/pa/pa.h
*** gcc-16-20250928/gcc/config/pa/pa.h	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/pa/pa.h	Sun Oct  5 22:32:14 2025
*************** typedef struct GTY(()) machine_function
*** 292,298 ****
  #define PREFERRED_STACK_BOUNDARY (TARGET_64BIT ? 128 : 512)
  
  /* Allocation boundary (in *bits*) for the code of a function.  */
! #define FUNCTION_BOUNDARY BITS_PER_WORD
  
  /* Alignment of field after `int : 0' in a structure.  */
  #define EMPTY_FIELD_BOUNDARY 32
--- 292,298 ----
  #define PREFERRED_STACK_BOUNDARY (TARGET_64BIT ? 128 : 512)
  
  /* Allocation boundary (in *bits*) for the code of a function.  */
! #define FUNCTION_BOUNDARY 32
  
  /* Alignment of field after `int : 0' in a structure.  */
  #define EMPTY_FIELD_BOUNDARY 32
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/autovec-opt.md gcc-16-20251005/gcc/config/riscv/autovec-opt.md
*** gcc-16-20250928/gcc/config/riscv/autovec-opt.md	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/autovec-opt.md	Sun Oct  5 22:32:14 2025
***************
*** 1911,1916 ****
--- 1911,1936 ----
    }
    [(set_attr "type" "viwalu")])
  
+ (define_insn_and_split "*widen_waddu_wx_<mode>"
+  [(set (match_operand:VWEXTI_D       0 "register_operand")
+        (any_widen_binop:VWEXTI_D
+ 	 (vec_duplicate:VWEXTI_D
+ 	   (any_extend:<VEL>
+ 	     (match_operand:<VSUBEL> 2 "register_operand")))
+ 	   (match_operand:VWEXTI_D   1 "register_operand")))]
+   "TARGET_VECTOR && TARGET_64BIT && can_create_pseudo_p ()"
+   "#"
+   "&& 1"
+   [(const_int 0)]
+   {
+     insn_code icode = code_for_pred_single_widen_scalar (PLUS, ZERO_EXTEND,
+ 							 <MODE>mode);
+     riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
+ 
+     DONE;
+   }
+   [(set_attr "type" "viwalu")])
+ 
  ;; =============================================================================
  ;; Combine vec_duplicate + op.vv to op.vf
  ;; Include
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/bitmanip.md gcc-16-20251005/gcc/config/riscv/bitmanip.md
*** gcc-16-20250928/gcc/config/riscv/bitmanip.md	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/bitmanip.md	Sun Oct  5 22:32:14 2025
***************
*** 1218,1230 ****
  ;; Reversed CRC 8, 16, 32 for TARGET_64
  (define_expand "crc_rev<ANYI1:mode><ANYI:mode>4"
  	;; return value (calculated CRC)
!   [(set (match_operand:ANYI 0 "register_operand" "=r")
  		      ;; initial CRC
! 	(unspec:ANYI [(match_operand:ANYI 1 "register_operand" "r")
  		      ;; data
! 		      (match_operand:ANYI1 2 "register_operand" "r")
  		      ;; polynomial without leading 1
! 		      (match_operand:ANYI 3)]
  		      UNSPEC_CRC_REV))]
    /* We don't support the case when data's size is bigger than CRC's size.  */
    "<ANYI:MODE>mode >= <ANYI1:MODE>mode"
--- 1218,1230 ----
  ;; Reversed CRC 8, 16, 32 for TARGET_64
  (define_expand "crc_rev<ANYI1:mode><ANYI:mode>4"
  	;; return value (calculated CRC)
!   [(set (match_operand:ANYI 0 "register_operand")
  		      ;; initial CRC
! 	(unspec:ANYI [(match_operand:ANYI 1 "register_operand")
  		      ;; data
! 		      (match_operand:ANYI1 2 "register_operand")
  		      ;; polynomial without leading 1
! 		      (match_operand:ANYI 3 "const_int_operand")]
  		      UNSPEC_CRC_REV))]
    /* We don't support the case when data's size is bigger than CRC's size.  */
    "<ANYI:MODE>mode >= <ANYI1:MODE>mode"
***************
*** 1258,1270 ****
  ;; CRC 8, 16, (32 for TARGET_64)
  (define_expand "crc<SUBX1:mode><SUBX:mode>4"
  	;; return value (calculated CRC)
!   [(set (match_operand:SUBX 0 "register_operand" "=r")
  		      ;; initial CRC
! 	(unspec:SUBX [(match_operand:SUBX 1 "register_operand" "r")
  		      ;; data
! 		      (match_operand:SUBX1 2 "register_operand" "r")
  		      ;; polynomial without leading 1
! 		      (match_operand:SUBX 3)]
  		      UNSPEC_CRC))]
    /* We don't support the case when data's size is bigger than CRC's size.  */
    "(TARGET_ZBKC || TARGET_ZBC || TARGET_ZVBC)
--- 1258,1270 ----
  ;; CRC 8, 16, (32 for TARGET_64)
  (define_expand "crc<SUBX1:mode><SUBX:mode>4"
  	;; return value (calculated CRC)
!   [(set (match_operand:SUBX 0 "register_operand")
  		      ;; initial CRC
! 	(unspec:SUBX [(match_operand:SUBX 1 "register_operand")
  		      ;; data
! 		      (match_operand:SUBX1 2 "register_operand")
  		      ;; polynomial without leading 1
! 		      (match_operand:SUBX 3 "const_int_operand")]
  		      UNSPEC_CRC))]
    /* We don't support the case when data's size is bigger than CRC's size.  */
    "(TARGET_ZBKC || TARGET_ZBC || TARGET_ZVBC)
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/predicates.md gcc-16-20251005/gcc/config/riscv/predicates.md
*** gcc-16-20250928/gcc/config/riscv/predicates.md	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/predicates.md	Sun Oct  5 22:32:14 2025
***************
*** 334,339 ****
--- 334,346 ----
  	      && riscv_split_symbol_type (symbol_type)
  	      && symbol_type != SYMBOL_PCREL;
  
+     /* Be tight about the SUBREGs we accept.  In particular,
+        (subreg (mem)) has been discouraged for decades.  Just
+        allow (subreg (reg)) until such time as we see a strong
+        need to be more permissive.  */
+     case SUBREG:
+       return REG_P (SUBREG_REG (op));
+ 
      default:
        return true;
      }
***************
*** 607,619 ****
  (define_predicate "ge_operator"
    (match_code "ge,geu"))
  
! ;; pmode_reg_or_uimm5_operand can be used by vsll.vx/vsrl.vx/vsra.vx instructions.
! ;; Since it has the same predicate with vector_length_operand which allows register
! ;; or immediate (0 ~ 31), we define this predicate same as vector_length_operand here.
! ;; We don't use vector_length_operand directly to predicate vsll.vx/vsrl.vx/vsra.vx
! ;; since it may be confusing.
  (define_special_predicate "pmode_reg_or_uimm5_operand"
!   (match_operand 0 "vector_length_operand"))
  
  (define_special_predicate "pmode_reg_or_0_operand"
    (ior (match_operand 0 "const_0_operand")
--- 614,625 ----
  (define_predicate "ge_operator"
    (match_code "ge,geu"))
  
! ;; pmode_reg_or_uimm5_operand can be used by vsll.vx/vsrl.vx/vsra.vx instructions
! ;; It is *not* equivalent to vector_length_operand due to the vector_length_operand
! ;; needing to conditionalize some behavior on XTHEADVECTOR.
  (define_special_predicate "pmode_reg_or_uimm5_operand"
!   (ior (match_operand 0 "pmode_register_operand")
!        (match_operand 0 "const_csr_operand")))
  
  (define_special_predicate "pmode_reg_or_0_operand"
    (ior (match_operand 0 "const_0_operand")
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/riscv-protos.h gcc-16-20251005/gcc/config/riscv/riscv-protos.h
*** gcc-16-20250928/gcc/config/riscv/riscv-protos.h	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/riscv-protos.h	Sun Oct  5 22:32:14 2025
*************** extern bool th_print_operand_address (FI
*** 832,837 ****
--- 832,838 ----
  #endif
  
  extern bool strided_load_broadcast_p (void);
+ extern bool riscv_prefer_agnostic_p (void);
  extern bool riscv_use_divmod_expander (void);
  void riscv_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx, tree, int);
  extern bool
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/riscv-v.cc gcc-16-20251005/gcc/config/riscv/riscv-v.cc
*** gcc-16-20250928/gcc/config/riscv/riscv-v.cc	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/riscv-v.cc	Sun Oct  5 22:32:14 2025
*************** get_ma (rtx ma)
*** 2140,2149 ****
  enum tail_policy
  get_prefer_tail_policy ()
  {
!   /* TODO: By default, we choose to use TAIL_ANY which allows
!      compiler pick up either agnostic or undisturbed. Maybe we
!      will have a compile option like -mprefer=agnostic to set
!      this value???.  */
    return TAIL_ANY;
  }
  
--- 2140,2147 ----
  enum tail_policy
  get_prefer_tail_policy ()
  {
!   if (riscv_prefer_agnostic_p ())
!     return TAIL_AGNOSTIC;
    return TAIL_ANY;
  }
  
*************** get_prefer_tail_policy ()
*** 2151,2160 ****
  enum mask_policy
  get_prefer_mask_policy ()
  {
!   /* TODO: By default, we choose to use MASK_ANY which allows
!      compiler pick up either agnostic or undisturbed. Maybe we
!      will have a compile option like -mprefer=agnostic to set
!      this value???.  */
    return MASK_ANY;
  }
  
--- 2149,2156 ----
  enum mask_policy
  get_prefer_mask_policy ()
  {
!   if (riscv_prefer_agnostic_p ())
!     return MASK_AGNOSTIC;
    return MASK_ANY;
  }
  
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/riscv-vsetvl.cc gcc-16-20251005/gcc/config/riscv/riscv-vsetvl.cc
*** gcc-16-20250928/gcc/config/riscv/riscv-vsetvl.cc	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/riscv-vsetvl.cc	Sun Oct  5 22:32:14 2025
*************** public:
*** 1144,1152 ****
  	      dflags |= demand_flags::DEMAND_LMUL_P;
  	  }
  
! 	if (!m_ta)
  	  dflags |= demand_flags::DEMAND_TAIL_POLICY_P;
! 	if (!m_ma)
  	  dflags |= demand_flags::DEMAND_MASK_POLICY_P;
        }
  
--- 1144,1153 ----
  	      dflags |= demand_flags::DEMAND_LMUL_P;
  	  }
  
! 	/* Demand policy for agnostic if the uarch has a preference.  */
! 	if (!m_ta || riscv_prefer_agnostic_p ())
  	  dflags |= demand_flags::DEMAND_TAIL_POLICY_P;
! 	if (!m_ma || riscv_prefer_agnostic_p ())
  	  dflags |= demand_flags::DEMAND_MASK_POLICY_P;
        }
  
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/riscv.cc gcc-16-20251005/gcc/config/riscv/riscv.cc
*** gcc-16-20250928/gcc/config/riscv/riscv.cc	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/riscv.cc	Sun Oct  5 22:32:14 2025
*************** struct riscv_tune_param
*** 317,322 ****
--- 317,323 ----
    const char *function_align;
    const char *jump_align;
    const char *loop_align;
+   bool prefer_agnostic;
  };
  
  
*************** static const struct riscv_tune_param gen
*** 481,486 ****
--- 482,488 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   false,					/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for rocket.  */
*************** static const struct riscv_tune_param roc
*** 505,510 ****
--- 507,513 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   false,					/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for Sifive 7 Series.  */
*************** static const struct riscv_tune_param sif
*** 529,534 ****
--- 532,538 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   false,					/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for Sifive p400 Series.  */
*************** static const struct riscv_tune_param sif
*** 553,558 ****
--- 557,563 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   true,						/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for Sifive p600 Series.  */
*************** static const struct riscv_tune_param sif
*** 577,582 ****
--- 582,588 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   true,						/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for T-HEAD c906.  */
*************** static const struct riscv_tune_param the
*** 601,606 ****
--- 607,613 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   false,					/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for xiangshan nanhu.  */
*************** static const struct riscv_tune_param xia
*** 625,630 ****
--- 632,638 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   true,						/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for a generic ooo profile.  */
*************** static const struct riscv_tune_param gen
*** 649,654 ****
--- 657,663 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   true,						/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for Tenstorrent Ascalon 8 wide.  */
*************** static const struct riscv_tune_param tt_
*** 673,678 ****
--- 682,688 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   true,						/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for size.  */
*************** static const struct riscv_tune_param opt
*** 697,702 ****
--- 707,713 ----
    NULL,						/* function_align */
    NULL,						/* jump_align */
    NULL,						/* loop_align */
+   false,					/* prefer-agnostic.  */
  };
  
  /* Costs to use when optimizing for MIPS P8700 */
*************** static const struct riscv_tune_param mip
*** 720,726 ****
    NULL,         /* vector cost */
    NULL,         /* function_align */
    NULL,         /* jump_align */
!   NULL,         /* loop_align */
  };
  
  static bool riscv_avoid_shrink_wrapping_separate ();
--- 731,738 ----
    NULL,         /* vector cost */
    NULL,         /* function_align */
    NULL,         /* jump_align */
!   NULL,		/* loop_align.  */
!   true,		/* prefer-agnostic.  */
  };
  
  static bool riscv_avoid_shrink_wrapping_separate ();
*************** riscv_allocate_and_probe_stack_space (rt
*** 9027,9034 ****
  	 from the top of the frame, as it might be lowered before.
  	 To consider the correct SP addresses for the CFA notes, it is needed
  	 to correct them with the initial offset value.  */
!       HOST_WIDE_INT initial_cfa_offset
! 	= cfun->machine->frame.total_size.to_constant () - size;
  
        if (!frame_pointer_needed)
  	{
--- 9039,9045 ----
  	 from the top of the frame, as it might be lowered before.
  	 To consider the correct SP addresses for the CFA notes, it is needed
  	 to correct them with the initial offset value.  */
!       poly_int64 initial_cfa_offset = cfun->machine->frame.total_size - size;
  
        if (!frame_pointer_needed)
  	{
*************** strided_load_broadcast_p ()
*** 12842,12847 ****
--- 12853,12867 ----
    return tune_param->use_zero_stride_load;
  }
  
+ /* Return TRUE if we should use the tail agnostic and mask agnostic policies for
+    vector code, false otherwise.  */
+ 
+ bool
+ riscv_prefer_agnostic_p ()
+ {
+   return tune_param->prefer_agnostic;
+ }
+ 
  /* Return TRUE if we should use the divmod expander, FALSE otherwise.  This
     allows the behavior to be tuned for specific implementations as well as
     when optimizing for size.  */
diff -Nrcpad gcc-16-20250928/gcc/config/riscv/riscv.md gcc-16-20251005/gcc/config/riscv/riscv.md
*** gcc-16-20250928/gcc/config/riscv/riscv.md	Sun Sep 28 22:33:04 2025
--- gcc-16-20251005/gcc/config/riscv/riscv.md	Sun Oct  5 22:32:14 2025
***************
*** 2322,2348 ****
    else
      {
        rtx reg;
!       rtx label = gen_label_rtx ();
        rtx end_label = gen_label_rtx ();
        rtx abs_reg = gen_reg_rtx (<ANYF:MODE>mode);
        rtx coeff_reg = gen_reg_rtx (<ANYF:MODE>mode);
        rtx tmp_reg = gen_reg_rtx (<ANYF:MODE>mode);
-       rtx fflags = gen_reg_rtx (SImode);
  
        riscv_emit_move (tmp_reg, operands[1]);
        riscv_emit_move (coeff_reg,
  		       riscv_vector::get_fp_rounding_coefficient (<ANYF:MODE>mode));
        emit_insn (gen_abs<ANYF:mode>2 (abs_reg, operands[1]));
  
!       /* fp compare can set invalid flag for NaN, so backup fflags.  */
!       if (flag_trapping_math)
!         emit_insn (gen_riscv_frflags (fflags));
!       riscv_expand_conditional_branch (label, LT, abs_reg, coeff_reg);
  
        emit_jump_insn (gen_jump (end_label));
        emit_barrier ();
  
!       emit_label (label);
        switch (<ANYF:MODE>mode)
  	{
  	case SFmode:
--- 2322,2359 ----
    else
      {
        rtx reg;
!       rtx label1 = gen_label_rtx ();
!       rtx label2 = gen_label_rtx ();
!       rtx label3 = gen_label_rtx ();
        rtx end_label = gen_label_rtx ();
        rtx abs_reg = gen_reg_rtx (<ANYF:MODE>mode);
        rtx coeff_reg = gen_reg_rtx (<ANYF:MODE>mode);
        rtx tmp_reg = gen_reg_rtx (<ANYF:MODE>mode);
  
        riscv_emit_move (tmp_reg, operands[1]);
+ 
+       if (flag_trapping_math)
+ 	{
+ 	  /* Check if the input is a NaN.  */
+ 	  riscv_expand_conditional_branch (label1, EQ,
+ 					   operands[1], operands[1]);
+ 
+ 	  emit_jump_insn (gen_jump (label3));
+ 	  emit_barrier ();
+ 
+ 	  emit_label (label1);
+ 	}
+ 
        riscv_emit_move (coeff_reg,
  		       riscv_vector::get_fp_rounding_coefficient (<ANYF:MODE>mode));
        emit_insn (gen_abs<ANYF:mode>2 (abs_reg, operands[1]));
  
!       riscv_expand_conditional_branch (label2, LT, abs_reg, coeff_reg);
  
        emit_jump_insn (gen_jump (end_label));
        emit_barrier ();
  
!       emit_label (label2);
        switch (<ANYF:MODE>mode)
  	{
  	case SFmode:
***************
*** 2361,2375 ****
  
        emit_insn (gen_copysign<ANYF:mode>3 (tmp_reg, abs_reg, operands[1]));
  
!       emit_label (end_label);
  
-       /* Restore fflags, but after label.  This is slightly different
-          than glibc implementation which only needs to restore under
-          the label, since it checks for NaN first, meaning following fp
-          compare can't raise fp exceptons and thus not clobber fflags.  */
        if (flag_trapping_math)
!         emit_insn (gen_riscv_fsflags (fflags));
  
        riscv_emit_move (operands[0], tmp_reg);
      }
  
--- 2372,2388 ----
  
        emit_insn (gen_copysign<ANYF:mode>3 (tmp_reg, abs_reg, operands[1]));
  
!       emit_jump_insn (gen_jump (end_label));
!       emit_barrier ();
  
        if (flag_trapping_math)
! 	{
! 	  emit_label (label3);
! 	  /* Generate a qNaN from an sNaN if needed.  */
! 	  emit_insn (gen_add<ANYF:mode>3 (tmp_reg, operands[1], operands[1]));
! 	}
  
+       emit_label (end_label);
        riscv_emit_move (operands[0], tmp_reg);
      }
  
diff -Nrcpad gcc-16-20250928/gcc/configure gcc-16-20251005/gcc/configure
*** gcc-16-20250928/gcc/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/gcc/configure	Sun Oct  5 22:34:20 2025
*************** LIPO
*** 758,763 ****
--- 758,764 ----
  NMEDIT
  DSYMUTIL
  STRIP
+ LLVM_CONFIG
  OBJDUMP
  ac_ct_DUMPBIN
  DUMPBIN
*************** test -z "$deplibs_check_method" && depli
*** 16455,16462 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 16456,16721 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 16467,16473 ****
--- 16726,16844 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 16562,16578 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 16933,16947 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 16779,16787 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 17148,17162 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 21484,21490 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21487 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 21859,21865 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21862 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 21590,21596 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21593 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 21965,21971 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21968 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/gcc/cp/ChangeLog gcc-16-20251005/gcc/cp/ChangeLog
*** gcc-16-20250928/gcc/cp/ChangeLog	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/ChangeLog	Sun Oct  5 22:32:15 2025
***************
*** 1,3 ****
--- 1,137 ----
+ 2025-10-05  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/122053
+ 	* name-lookup.cc (pushtag): Load any imported definition of type
+ 	before calling pushdecl.
+ 
+ 2025-10-05  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	* name-lookup.cc (check_module_override): Remove check for
+ 	TREE_PUBLIC when checking mergeable entities.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114457
+ 	* cp-tree.h: Implement C++26 P2795R5 - Erroneous behavior for
+ 	uninitialized reads.
+ 	(IF_STMT_VACUOUS_INIT_P): Define.
+ 	(check_goto): Change argument type from tree to tree *.
+ 	* call.cc (build_over_call): Add indeterminate attribute to
+ 	TARGET_EXPR slots for indeterminate parameters.
+ 	* constexpr.cc (cxx_eval_internal_function): Handle IFN_DEFERRED_INIT.
+ 	(cxx_eval_store_expression): Temporarily work around PR121965 bug.
+ 	* cp-gimplify.cc (genericize_if_stmt): Handle IF_STMT_VACUOUS_INIT_P.
+ 	(maybe_emit_clobber_object_begin): New function.
+ 	(cp_gimplify_expr): Call it for DECL_EXPRs and TARGET_EXPRs with
+ 	void type non-NULL TARGET_EXPR_INITIAL.
+ 	* decl.cc (struct named_label_fwd_direct_goto,
+ 	struct named_label_bck_direct_goto): New types.
+ 	(struct named_label_use_entry): Add direct_goto member.  Formatting
+ 	fix.
+ 	(struct named_label_entry): Add direct_goto member.  Turn bool members
+ 	into bool : 1.  Add has_bad_decls bitfield.
+ 	(adjust_backward_gotos): New function.
+ 	(pop_labels): For flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	call adjust_backward_gotos if needed.
+ 	(poplevel_named_label_1): For decl_jump_unsafe also set
+ 	ent->has_bad_decls, and for decl_instrument_init_bypass_p decls
+ 	push them into ent->bad_decls vector too.
+ 	(duplicate_decls): Complain if indeterminate attribute on function
+ 	parameter isn't present on the first function declaration.
+ 	(decl_instrument_init_bypass_p): New function.
+ 	(build_deferred_init_call): Likewise.
+ 	(maybe_add_deferred_init_calls): Likewise.
+ 	(adjust_backward_goto): Likewise.
+ 	(check_previous_goto_1): Add direct_goto and case_label arguments.
+ 	For decl_instrument_init_bypass_p decls seen if
+ 	direct_goto || case_label move case label if needed, call
+ 	maybe_add_deferred_init_calls and adjust GOTO_EXPR operands remembered
+ 	in direct_goto.  Change return type from bool to int, return 0 on
+ 	error, 1 for success with no need to adjust vacuous inits and 2 for
+ 	success with need to adjust those.
+ 	(check_previous_goto): Adjust check_previous_goto_1 call, vec_free
+ 	direct_goto vector.
+ 	(check_switch_goto): Add case_label argument, adjust
+ 	check_previous_goto_1 call.  Change return type from bool to int.
+ 	(check_goto_1): Remove computed argument, add declp argument.  Don't
+ 	reuse previous ent->uses if
+ 	ent->binding_level != current_binding_level.  Push declp into
+ 	direct_goto vectors if needed.
+ 	(check_goto): Remove decl argument, add declp argument.  Adjust
+ 	check_goto_1 calls.
+ 	(finish_case_label): Call check_switch_goto up to twice, first time
+ 	to detect errors and find out if second call will be needed, and
+ 	after c_add_case_label second time if needed.  In the first case
+ 	pass NULL_TREE as new argument to it, in the second case r.
+ 	(start_preparsed_function): Don't emit CLOBBER_OBJECT_BEGIN here
+ 	for -flifetime-dse=2, instead add "clobber *this" attribute to
+ 	current_class_ptr.
+ 	* parser.cc (cp_parser_asm_label_list): Call check_goto only
+ 	after the TREE_LIST is created and pass address of its TREE_VALUE to
+ 	it instead of the label.
+ 	* semantics.cc (finish_goto_stmt): Call check_goto only after
+ 	build_stmt has been called and pass it address of its first operand
+ 	rather than destination.
+ 	* tree.cc (handle_indeterminate_attribute): New function.
+ 	(cxx_gnu_attributes): Add entry for indeterminate attribute.
+ 
+ 2025-10-04  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122127
+ 	PR c++/112632
+ 	* pt.cc (convert_template_argument): Don't add redundant
+ 	IMPLICIT_CONV_EXPR.
+ 
+ 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/117658
+ 	* cp-tree.h (TU_LOCAL_ENTITY_NAME): Clarify meaning.
+ 	* module.cc (depset::entity_kind): New enumerator, assert that
+ 	we have enough bits reserved.
+ 	(depset::disc_bits): Assert the discriminator has enough bits.
+ 	(depset::entity_kind_name): Add 'tu-local' case, assert we
+ 	have an entry for all relevant entry_kinds.
+ 	(name_for_tu_local_decl): New function.
+ 	(trees_out::tree_node): Use it.
+ 	(depset::hash::make_dependency): Validate EK_TU_LOCAL.
+ 	(depset::hash::add_binding_entity): Generate bindings for
+ 	internal purview functions.
+ 	(enum ct_bind_flags): New enum for TU-local decls.
+ 	(depset::hash::find_dependencies): Handle EK_TU_LOCAL entities.
+ 	(binding_cmp): Likewise.
+ 	(sort_cluster): Likewise.
+ 	(module_state::write_cluster): Likewise.
+ 	(module_state::read_cluster): Likewise.
+ 	* name-lookup.cc (append_imported_binding_slot): Propagate
+ 	internal decl list when growing binding vector.
+ 	(name_lookup::adl_namespace_fns): Diagnose if naming a TU-local
+ 	entity from a different TU.
+ 	(set_module_binding): Include any internal decls in binding.
+ 	* name-lookup.h (struct module_tree_map_traits): New type.
+ 	(struct tree_binding_vec): Add member 'internal_decls'.
+ 	(BINDING_VECTOR_INTERNAL_DECLS): New getter.
+ 	(MODULE_BINDING_INTERNAL_DECLS_P): New flag.
+ 	(set_module_binding): Add parameter.
+ 
+ 2025-10-03  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
+ 
+ 	PR c++/122112
+ 	* parser.cc (cp_parser_parameter_declaration_clause): Don't
+ 	enable auto_is_implicit_function_template_parm_p when entering
+ 	class scope.
+ 
+ 2025-10-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* constexpr.cc (cxx_eval_constant_expression): Use revised
+ 	interfaces to determine if contracts are ignored and, if not,
+ 	whether they are evaluated.
+ 	* contracts.h (contract_ignored_p, contract_evaluated_p): New.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* Make-lang.in: Add c++_FDAS
+ 	(create_fdas_for_cc1plus): Be sure that build fails if create_gcov fails.
+ 
  2025-09-27  Jason Merrill  <jason@redhat.com>
  
  	PR c++/112632
diff -Nrcpad gcc-16-20250928/gcc/cp/Make-lang.in gcc-16-20251005/gcc/cp/Make-lang.in
*** gcc-16-20250928/gcc/cp/Make-lang.in	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/Make-lang.in	Sun Oct  5 22:32:15 2025
*************** CXX_OBJS = cp/cp-lang.o c-family/stub-ob
*** 123,128 ****
--- 123,130 ----
  
  c++_OBJS = $(CXX_OBJS) cc1plus-checksum.o cp/g++spec.o
  
+ c++_FDAS = cc1plus.fda
+ 
  # Use strict warnings for this front end.
  cp-warn = $(STRICT_WARN)
  
*************** create_fdas_for_cc1plus: ../stage1-gcc/c
*** 199,205 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 201,207 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
*************** create_fdas_for_cc1plus: ../stage1-gcc/c
*** 209,215 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 211,217 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20250928/gcc/cp/call.cc gcc-16-20251005/gcc/cp/call.cc
*** gcc-16-20250928/gcc/cp/call.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/call.cc	Sun Oct  5 22:32:15 2025
*************** build_over_call (struct z_candidate *can
*** 10488,10493 ****
--- 10488,10494 ----
    unsigned int arg_index = 0;
    int conv_index = 0;
    int param_index = 0;
+   tree parmd = DECL_ARGUMENTS (fn);
  
    auto consume_object_arg = [&arg_index, &first_arg, args]()
      {
*************** build_over_call (struct z_candidate *can
*** 10505,10510 ****
--- 10506,10513 ----
        tree object_arg = consume_object_arg ();
        argarray[argarray_size++] = build_this (object_arg);
        parm = TREE_CHAIN (parm);
+       if (parmd)
+ 	parmd = DECL_CHAIN (parmd);
        /* We should never try to call the abstract constructor.  */
        gcc_assert (!DECL_HAS_IN_CHARGE_PARM_P (fn));
  
*************** build_over_call (struct z_candidate *can
*** 10513,10518 ****
--- 10516,10523 ----
  	  argarray[argarray_size++] = (*args)[arg_index];
  	  ++arg_index;
  	  parm = TREE_CHAIN (parm);
+ 	  if (parmd)
+ 	    parmd = DECL_CHAIN (parmd);
  	}
      }
    /* Bypass access control for 'this' parameter.  */
*************** build_over_call (struct z_candidate *can
*** 10600,10605 ****
--- 10605,10612 ----
  
        argarray[argarray_size++] = converted_arg;
        parm = TREE_CHAIN (parm);
+       if (parmd)
+ 	parmd = DECL_CHAIN (parmd);
      }
  
    auto handle_arg = [fn, flags](tree type,
*************** build_over_call (struct z_candidate *can
*** 10623,10628 ****
--- 10630,10656 ----
        return val;
      };
  
+   auto handle_indeterminate_arg = [](tree parmd, tree val)
+     {
+       if (parmd
+ 	  && lookup_attribute (NULL, "indeterminate", DECL_ATTRIBUTES (parmd)))
+ 	{
+ 	  STRIP_NOPS (val);
+ 	  if (TREE_CODE (val) == ADDR_EXPR
+ 	      && TREE_CODE (TREE_OPERAND (val, 0)) == TARGET_EXPR)
+ 	    {
+ 	      val = TARGET_EXPR_SLOT (TREE_OPERAND (val, 0));
+ 	      if (auto_var_p (val) && DECL_ARTIFICIAL (val))
+ 		{
+ 		  tree id = get_identifier ("indeterminate");
+ 		  DECL_ATTRIBUTES (val)
+ 		    = tree_cons (build_tree_list (NULL_TREE, id), NULL_TREE,
+ 				 DECL_ATTRIBUTES (val));
+ 		}
+ 	    }
+ 	}
+     };
+ 
    if (DECL_XOBJ_MEMBER_FUNCTION_P (fn))
      {
        gcc_assert (cand->num_convs > 0);
*************** build_over_call (struct z_candidate *can
*** 10636,10643 ****
        if (val == error_mark_node)
  	return error_mark_node;
        else
! 	argarray[argarray_size++] = val;
        parm = TREE_CHAIN (parm);
      }
  
    gcc_assert (first_arg == NULL_TREE);
--- 10664,10676 ----
        if (val == error_mark_node)
  	return error_mark_node;
        else
! 	{
! 	  argarray[argarray_size++] = val;
! 	  handle_indeterminate_arg (parmd, val);
! 	}
        parm = TREE_CHAIN (parm);
+       if (parmd)
+ 	parmd = DECL_CHAIN (parmd);
      }
  
    gcc_assert (first_arg == NULL_TREE);
*************** build_over_call (struct z_candidate *can
*** 10683,10689 ****
        if (val == error_mark_node)
  	return error_mark_node;
        else
! 	argarray[argarray_size++] = val;
      }
  
    /* Default arguments */
--- 10716,10727 ----
        if (val == error_mark_node)
  	return error_mark_node;
        else
! 	{
! 	  argarray[argarray_size++] = val;
! 	  handle_indeterminate_arg (parmd, val);
! 	}
!       if (parmd)
! 	parmd = DECL_CHAIN (parmd);
      }
  
    /* Default arguments */
*************** build_over_call (struct z_candidate *can
*** 10699,10704 ****
--- 10737,10745 ----
        if (val == error_mark_node)
  	return error_mark_node;
        argarray[argarray_size++] = val;
+       handle_indeterminate_arg (parmd, val);
+       if (parmd)
+ 	parmd = DECL_CHAIN (parmd);
      }
  
    /* Ellipsis */
diff -Nrcpad gcc-16-20250928/gcc/cp/constexpr.cc gcc-16-20251005/gcc/cp/constexpr.cc
*** gcc-16-20250928/gcc/cp/constexpr.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/constexpr.cc	Sun Oct  5 22:32:15 2025
*************** cxx_eval_internal_function (const conste
*** 3009,3014 ****
--- 3009,3017 ----
  					   vc_prvalue, non_constant_p,
  					   overflow_p, jump_target);
  
+     case IFN_DEFERRED_INIT:
+       return build_clobber (TREE_TYPE (t), CLOBBER_OBJECT_BEGIN);
+ 
      case IFN_VEC_CONVERT:
        {
  	tree arg = cxx_eval_constant_expression (ctx, CALL_EXPR_ARG (t, 0),
*************** cxx_eval_store_expression (const constex
*** 7498,7503 ****
--- 7501,7513 ----
    bool preeval = SCALAR_TYPE_P (type) || TREE_CODE (t) == MODIFY_EXPR;
    if (preeval && !TREE_CLOBBER_P (init))
      {
+       /* Ignore var = .DEFERRED_INIT (); for now, until PR121965 is fixed.  */
+       if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	  && TREE_CODE (init) == CALL_EXPR
+ 	  && CALL_EXPR_FN (init) == NULL_TREE
+ 	  && CALL_EXPR_IFN (init) == IFN_DEFERRED_INIT)
+ 	return void_node;
+ 
        /* Evaluate the value to be stored without knowing what object it will be
  	 stored in, so that any side-effects happen first.  */
        if (!SCALAR_TYPE_P (type))
*************** cxx_eval_constant_expression (const cons
*** 10162,10175 ****
      case PRECONDITION_STMT:
      case POSTCONDITION_STMT:
        {
! 	contract_semantic semantic = get_contract_semantic (t);
! 	if (semantic == CCS_IGNORE)
  	  break;
  
  	if (!cxx_eval_assert (ctx, CONTRACT_CONDITION (t),
  			      G_("contract predicate is false in "
  				 "constant expression"),
! 			      EXPR_LOCATION (t), checked_contract_p (semantic),
  			      non_constant_p, overflow_p))
  	  *non_constant_p = true;
  	r = void_node;
--- 10172,10184 ----
      case PRECONDITION_STMT:
      case POSTCONDITION_STMT:
        {
! 	if (contract_ignored_p (t))
  	  break;
  
  	if (!cxx_eval_assert (ctx, CONTRACT_CONDITION (t),
  			      G_("contract predicate is false in "
  				 "constant expression"),
! 			      EXPR_LOCATION (t), contract_evaluated_p (t),
  			      non_constant_p, overflow_p))
  	  *non_constant_p = true;
  	r = void_node;
diff -Nrcpad gcc-16-20250928/gcc/cp/contracts.h gcc-16-20251005/gcc/cp/contracts.h
*** gcc-16-20250928/gcc/cp/contracts.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/contracts.h	Sun Oct  5 22:32:15 2025
*************** set_contract_semantic (tree t, contract_
*** 334,337 ****
--- 334,352 ----
  }
  
  
+ /* Will this contract be ignored.  */
+ 
+ inline bool
+ contract_ignored_p (const_tree contract)
+ {
+   return (get_contract_semantic (contract) <= CCS_IGNORE);
+ }
+ 
+ /* Will this contract be evaluated?  */
+ 
+ inline bool
+ contract_evaluated_p (const_tree contract)
+ {
+   return (get_contract_semantic (contract) >= CCS_NEVER);
+ }
  #endif /* ! GCC_CP_CONTRACT_H */
diff -Nrcpad gcc-16-20250928/gcc/cp/cp-gimplify.cc gcc-16-20251005/gcc/cp/cp-gimplify.cc
*** gcc-16-20250928/gcc/cp/cp-gimplify.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/cp-gimplify.cc	Sun Oct  5 22:32:15 2025
*************** genericize_if_stmt (tree *stmt_p)
*** 200,205 ****
--- 200,232 ----
  	}
      }
  
+   if (IF_STMT_VACUOUS_INIT_P (stmt))
+     {
+       gcc_checking_assert (integer_zerop (cond));
+       gcc_checking_assert (!else_ || !TREE_SIDE_EFFECTS (else_));
+       tree lab = create_artificial_label (UNKNOWN_LOCATION);
+       VACUOUS_INIT_LABEL_P (lab) = 1;
+       tree goto_expr = build_stmt (UNKNOWN_LOCATION, GOTO_EXPR, lab);
+       tree label_expr = build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab);
+       if (TREE_CODE (then_) == STATEMENT_LIST)
+ 	{
+ 	  tree_stmt_iterator i = tsi_start (then_);
+ 	  tsi_link_before (&i, goto_expr, TSI_CONTINUE_LINKING);
+ 	  i = tsi_last (then_);
+ 	  tsi_link_after (&i, label_expr, TSI_CONTINUE_LINKING);
+ 	  stmt = then_;
+ 	}
+       else
+ 	{
+ 	  stmt = NULL_TREE;
+ 	  append_to_statement_list (goto_expr, &stmt);
+ 	  append_to_statement_list (then_, &stmt);
+ 	  append_to_statement_list (label_expr, &stmt);
+ 	}
+       *stmt_p = stmt;
+       return;
+     }
+ 
    if (!then_)
      then_ = build_empty_stmt (locus);
    if (!else_)
*************** cp_gimplify_arg (tree *arg_p, gimple_seq
*** 603,608 ****
--- 630,667 ----
  
  }
  
+ /* Emit a decl = {CLOBBER(bob)}; stmt before DECL_EXPR or first
+    TARGET_EXPR gimplification for -flifetime-dse=2.  */
+ 
+ static void
+ maybe_emit_clobber_object_begin (tree decl, gimple_seq *pre_p)
+ {
+   if (VAR_P (decl)
+       && auto_var_p (decl)
+       && TREE_TYPE (decl) != error_mark_node
+       && DECL_NONTRIVIALLY_INITIALIZED_P (decl)
+       /* Don't do it if it is fully initialized.  */
+       && DECL_INITIAL (decl) == NULL_TREE
+       && !DECL_HAS_VALUE_EXPR_P (decl)
+       && !OPAQUE_TYPE_P (TREE_TYPE (decl))
+       /* Nor going to have decl = .DEFERRED_INIT (...); added.  */
+       && (flag_auto_var_init == AUTO_INIT_UNINITIALIZED
+ 	  || lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl))
+ 	  || lookup_attribute ("indeterminate", DECL_ATTRIBUTES (decl))))
+     {
+       tree eltype = strip_array_types (TREE_TYPE (decl));
+       if (RECORD_OR_UNION_TYPE_P (eltype)
+ 	  && !is_empty_class (eltype))
+ 	{
+ 	  tree clobber
+ 	    = build_clobber (TREE_TYPE (decl), CLOBBER_OBJECT_BEGIN);
+ 	  gimple *g = gimple_build_assign (decl, clobber);
+ 	  gimple_set_location (g, DECL_SOURCE_LOCATION (decl));
+ 	  gimple_seq_add_stmt_without_update (pre_p, g);
+ 	}
+     }
+ }
+ 
  /* Do C++-specific gimplification.  Args are as for gimplify_expr.  */
  
  int
*************** cp_gimplify_expr (tree *expr_p, gimple_s
*** 918,923 ****
--- 977,986 ----
  	 on the rhs of an assignment, as in constexpr-aggr1.C.  */
        gcc_checking_assert (!TARGET_EXPR_ELIDING_P (*expr_p)
  			   || !TREE_ADDRESSABLE (TREE_TYPE (*expr_p)));
+       if (flag_lifetime_dse > 1
+ 	  && TARGET_EXPR_INITIAL (*expr_p)
+ 	  && VOID_TYPE_P (TREE_TYPE (TARGET_EXPR_INITIAL (*expr_p))))
+ 	maybe_emit_clobber_object_begin (TARGET_EXPR_SLOT (*expr_p), pre_p);
        ret = GS_UNHANDLED;
        break;
  
*************** cp_gimplify_expr (tree *expr_p, gimple_s
*** 929,934 ****
--- 992,1003 ----
  	ret = GS_OK;
        break;
  
+     case DECL_EXPR:
+       if (flag_lifetime_dse > 1)
+ 	maybe_emit_clobber_object_begin (DECL_EXPR_DECL (*expr_p), pre_p);
+       ret = GS_UNHANDLED;
+       break;
+ 
      case RETURN_EXPR:
        if (TREE_OPERAND (*expr_p, 0)
  	  && (TREE_CODE (TREE_OPERAND (*expr_p, 0)) == INIT_EXPR
diff -Nrcpad gcc-16-20250928/gcc/cp/cp-tree.h gcc-16-20251005/gcc/cp/cp-tree.h
*** gcc-16-20250928/gcc/cp/cp-tree.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/cp-tree.h	Sun Oct  5 22:32:15 2025
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 510,515 ****
--- 510,516 ----
        PACK_EXPANSION_FORCE_EXTRA_ARGS_P (in *_PACK_EXPANSION)
        LAMBDA_EXPR_STATIC_P (in LAMBDA_EXPR)
        TARGET_EXPR_ELIDING_P (in TARGET_EXPR)
+       IF_STMT_VACUOUS_INIT_P (IF_STMT)
        contract_semantic (in ASSERTION_, PRECONDITION_, POSTCONDITION_STMT)
        TYPENAME_IS_UNION_P (in TYPENAME_TYPE)
     4: IDENTIFIER_MARKED (IDENTIFIER_NODEs)
*************** struct GTY(()) tree_tu_local_entity {
*** 1856,1862 ****
    location_t loc;
  };
  
! /* The name of a translation-unit-local entity.  */
  #define TU_LOCAL_ENTITY_NAME(NODE) \
    (((struct tree_tu_local_entity *)TU_LOCAL_ENTITY_CHECK (NODE))->name)
  
--- 1857,1864 ----
    location_t loc;
  };
  
! /* The human-readable name of a translation-unit-local entity as
!    an IDENTIFIER_NODE.  */
  #define TU_LOCAL_ENTITY_NAME(NODE) \
    (((struct tree_tu_local_entity *)TU_LOCAL_ENTITY_CHECK (NODE))->name)
  
*************** decl_template_parm_check (const_tree t,
*** 5686,5691 ****
--- 5688,5696 ----
  #define IF_SCOPE(NODE)		TREE_OPERAND (IF_STMT_CHECK (NODE), 3)
  #define IF_STMT_CONSTEXPR_P(NODE) TREE_LANG_FLAG_0 (IF_STMT_CHECK (NODE))
  #define IF_STMT_CONSTEVAL_P(NODE) TREE_LANG_FLAG_2 (IF_STMT_CHECK (NODE))
+ /* True on artificial if (0) around .DEFERRED_INIT calls added for
+    !!flag_auto_var_init.  */
+ #define IF_STMT_VACUOUS_INIT_P(NODE) TREE_LANG_FLAG_3 (IF_STMT_CHECK (NODE))
  
  /* Like PACK_EXPANSION_EXTRA_ARGS, for constexpr if.  IF_SCOPE is used while
     building an IF_STMT; IF_STMT_EXTRA_ARGS is used after it is complete.  */
*************** extern tree duplicate_decls			(tree, tre
*** 7279,7285 ****
  extern void mark_label_addressed		(tree);
  extern tree declare_local_label			(tree);
  extern tree define_label			(location_t, tree);
! extern void check_goto				(tree);
  extern bool check_omp_return			(void);
  extern tree make_typename_type			(tree, tree, enum tag_types, tsubst_flags_t);
  extern tree build_typename_type			(tree, tree, tree, tag_types);
--- 7284,7290 ----
  extern void mark_label_addressed		(tree);
  extern tree declare_local_label			(tree);
  extern tree define_label			(location_t, tree);
! extern void check_goto				(tree *);
  extern bool check_omp_return			(void);
  extern tree make_typename_type			(tree, tree, enum tag_types, tsubst_flags_t);
  extern tree build_typename_type			(tree, tree, tree, tag_types);
diff -Nrcpad gcc-16-20250928/gcc/cp/decl.cc gcc-16-20251005/gcc/cp/decl.cc
*** gcc-16-20250928/gcc/cp/decl.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/decl.cc	Sun Oct  5 22:32:15 2025
*************** enum bad_spec_place {
*** 76,81 ****
--- 76,82 ----
  static const char *redeclaration_error_message (tree, tree);
  
  static bool decl_jump_unsafe (tree);
+ static bool decl_instrument_init_bypass_p (tree);
  static void require_complete_types_for_parms (tree);
  static tree grok_reference_init (tree, tree, tree, int);
  static tree grokvardecl (tree, tree, tree, const cp_decl_specifier_seq *,
*************** vec<tree, va_gc> *static_decls;
*** 173,178 ****
--- 174,198 ----
  /* vector of keyed classes.  */
  vec<tree, va_gc> *keyed_classes;
  
+ /* Used in the direct_goto vector of named_label_use_entry for
+    addresses of the LABEL_DECLs within GOTO_EXPR or asm goto
+    for forward jumps.  */
+ 
+ struct GTY(()) named_label_fwd_direct_goto {
+   tree *GTY((skip)) direct_goto;
+ };
+ 
+ /* Used in the direct_goto vector of named_label_use_entry for
+    addresses of the LABEL_DECLs within GOTO_EXPR or asm goto
+    for backward jumps.  */
+ 
+ struct GTY(()) named_label_bck_direct_goto {
+   tree *GTY((skip)) direct_goto;
+   /* Number of the decl_instrument_init_bypass_p decls in bad_decls vector
+      at the time this backward goto has been seen.  */
+   unsigned n_bad_decls;
+ };
+ 
  /* Used only for jumps to as-yet undefined labels, since jumps to
     defined labels can have their validity checked immediately.  */
  
*************** struct GTY((chain_next ("%h.next"))) nam
*** 188,194 ****
    tree names_in_scope;
    /* If the use is a possible destination of a computed goto, a vec of decls
       that aren't destroyed, filled in by poplevel_named_label_1.  */
!   vec<tree,va_gc> *computed_goto;
    /* The location of the goto, for error reporting.  */
    location_t o_goto_locus;
    /* True if an OpenMP structured block scope has been closed since
--- 208,218 ----
    tree names_in_scope;
    /* If the use is a possible destination of a computed goto, a vec of decls
       that aren't destroyed, filled in by poplevel_named_label_1.  */
!   vec<tree, va_gc> *computed_goto;
!   /* If the use is a destination of normal goto, a vec of addresses of
!      LABEL_DECLs that might need changing for !!flag_auto_var_init
!      forward jumps across vacuous initializers.  */
!   vec<named_label_fwd_direct_goto, va_gc> *direct_goto;
    /* The location of the goto, for error reporting.  */
    location_t o_goto_locus;
    /* True if an OpenMP structured block scope has been closed since
*************** struct GTY((for_user)) named_label_entry
*** 226,245 ****
    /* A list of uses of the label, before the label is defined.  */
    named_label_use_entry *uses;
  
!   /* True if we've seen &&label.  Appalently we can't use TREE_ADDRESSABLE for
       this, it has a more specific meaning for LABEL_DECL.  */
!   bool addressed;
  
    /* The following bits are set after the label is defined, and are
       updated as scopes are popped.  They indicate that a jump to the
       label will illegally enter a scope of the given flavor.  */
!   bool in_try_scope;
!   bool in_catch_scope;
!   bool in_omp_scope;
!   bool in_transaction_scope;
!   bool in_constexpr_if;
!   bool in_consteval_if;
!   bool in_stmt_expr;
  };
  
  #define named_labels cp_function_chain->x_named_labels
--- 250,278 ----
    /* A list of uses of the label, before the label is defined.  */
    named_label_use_entry *uses;
  
!   /* If the use is a destination of normal goto, a vec of addresses of
!      LABEL_DECLs that might need changing for !!flag_auto_var_init
!      backward jumps across vacuous initializers.  */
!   vec<named_label_bck_direct_goto, va_gc> *direct_goto;
! 
!   /* True if we've seen &&label.  Apparently we can't use TREE_ADDRESSABLE for
       this, it has a more specific meaning for LABEL_DECL.  */
!   bool addressed : 1;
  
    /* The following bits are set after the label is defined, and are
       updated as scopes are popped.  They indicate that a jump to the
       label will illegally enter a scope of the given flavor.  */
!   bool in_try_scope : 1;
!   bool in_catch_scope : 1;
!   bool in_omp_scope : 1;
!   bool in_transaction_scope : 1;
!   bool in_constexpr_if : 1;
!   bool in_consteval_if : 1;
!   bool in_stmt_expr : 1;
! 
!   /* True if bad_decls chain contains any decl_jump_unsafe decls
!      (rather than just decl_instrument_init_bypass_p).  */
!   bool has_bad_decls : 1;
  };
  
  #define named_labels cp_function_chain->x_named_labels
*************** sort_labels (const void *a, const void *
*** 403,408 ****
--- 436,504 ----
    return DECL_UID (label1) > DECL_UID (label2) ? -1 : +1;
  }
  
+ static void adjust_backward_goto (named_label_entry *, tree_stmt_iterator);
+ static named_label_entry *lookup_label_1 (tree, bool);
+ 
+ /* Helper of pop_labels, called through cp_walk_tree.  Adjust
+    LABEL_EXPRs of named labels, if they are targets of backwards
+    gotos jumping across vacuous initialization for
+    !!flag_auto_var_init.  */
+ 
+ static tree
+ adjust_backward_gotos (tree *tp, int *walk_subtrees, void *data)
+ {
+   tree t = *tp;
+   switch (TREE_CODE (t))
+     {
+     case LABEL_EXPR:
+       /* In rare cases LABEL_EXPR can appear as the only substatement
+ 	 of some other statement, e.g. if body etc.  In that case, we know
+ 	 there can't be an older if (0) wrapper with artificial initializers
+ 	 before it.  Replace the LABEL_EXPR statement with a STATEMENT_LIST
+ 	 and insert the LABEL_EXPR into it, later on if (0) will be added
+ 	 before that.  */
+       if (DECL_NAME (LABEL_EXPR_LABEL (t)))
+ 	{
+ 	  named_label_entry *ent
+ 	    = lookup_label_1 (DECL_NAME (LABEL_EXPR_LABEL (t)), false);
+ 	  if (ent->direct_goto)
+ 	    {
+ 	      *tp = alloc_stmt_list ();
+ 	      append_to_statement_list_force (t, tp);
+ 	      adjust_backward_goto (ent, tsi_last (*tp));
+ 	    }
+ 	}
+       *walk_subtrees = 0;
+       break;
+     case STATEMENT_LIST:
+       {
+ 	tree_stmt_iterator i;
+ 	*walk_subtrees = 0;
+ 	/* In the common case, LABEL_EXPRs appear inside of a STATEMENT_LIST.
+ 	   In that case pass the stmt iterator to adjust_backward_goto, so
+ 	   that it can insert if (0) wrapper artificial initializers before
+ 	   it or reuse the existing ones.  */
+ 	for (i = tsi_start (t); !tsi_end_p (i); tsi_next (&i))
+ 	  if (TREE_CODE (tsi_stmt (i)) != LABEL_EXPR)
+ 	    cp_walk_tree (tsi_stmt_ptr (i), adjust_backward_gotos,
+ 			  data, (hash_set<tree> *) data);
+ 	  else if (DECL_NAME (LABEL_EXPR_LABEL (tsi_stmt (i))))
+ 	    {
+ 	      named_label_entry *ent
+ 		= lookup_label_1 (DECL_NAME (LABEL_EXPR_LABEL (tsi_stmt (i))),
+ 				  false);
+ 	      if (ent->direct_goto)
+ 		adjust_backward_goto (ent, i);
+ 	    }
+ 	break;
+       }
+     default:
+       if (TYPE_P (t))
+ 	*walk_subtrees = 0;
+     }
+   return NULL_TREE;
+ }
+ 
  /* At the end of a function, all labels declared within the function
     go out of scope.  BLOCK is the top-level block for the
     function.  */
*************** pop_labels (tree block)
*** 420,427 ****
       table implementation changes.  */
    auto_vec<tree, 32> labels (named_labels->elements ());
    hash_table<named_label_hash>::iterator end (named_labels->end ());
!   for (hash_table<named_label_hash>::iterator iter
! 	 (named_labels->begin ()); iter != end; ++iter)
      {
        named_label_entry *ent = *iter;
  
--- 516,538 ----
       table implementation changes.  */
    auto_vec<tree, 32> labels (named_labels->elements ());
    hash_table<named_label_hash>::iterator end (named_labels->end ());
! 
!   if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED)
!     {
!       for (decltype (end) iter (named_labels->begin ()); iter != end; ++iter)
! 	{
! 	  named_label_entry *ent = *iter;
! 	  if (ent->direct_goto)
! 	    {
! 	      hash_set<tree> pset;
! 	      cp_walk_tree (&DECL_SAVED_TREE (current_function_decl),
! 			    adjust_backward_gotos, &pset, &pset);
! 	      break;
! 	    }
! 	}
!     }
! 
!   for (decltype (end) iter (named_labels->begin ()); iter != end; ++iter)
      {
        named_label_entry *ent = *iter;
  
*************** poplevel_named_label_1 (named_label_entr
*** 551,556 ****
--- 662,672 ----
  						     ? DECL_CHAIN (decl)
  						     : TREE_CHAIN (decl)))
  	if (decl_jump_unsafe (decl))
+ 	  {
+ 	    vec_safe_push (ent->bad_decls, decl);
+ 	    ent->has_bad_decls = true;
+ 	  }
+ 	else if (decl_instrument_init_bypass_p (decl))
  	  vec_safe_push (ent->bad_decls, decl);
  
        ent->binding_level = obl;
*************** duplicate_decls (tree newdecl, tree oldd
*** 2941,2946 ****
--- 3057,3075 ----
  	{
            DECL_ATTRIBUTES (newarg)
  	    = (*targetm.merge_decl_attributes) (oldarg, newarg);
+ 	  if (lookup_attribute (NULL, "indeterminate",
+ 				DECL_ATTRIBUTES (newarg))
+ 	      && !lookup_attribute (NULL, "indeterminate",
+ 				    DECL_ATTRIBUTES (oldarg)))
+ 	    {
+ 	      auto_diagnostic_group d;
+ 	      error_at (DECL_SOURCE_LOCATION (newarg),
+ 			"%<indeterminate%> attribute not specified "
+ 			"for parameter %qD on the first declaration of "
+ 			"its function", newarg);
+ 	      inform (DECL_SOURCE_LOCATION (oldarg),
+ 		      "earlier declaration");
+ 	    }
            DECL_ATTRIBUTES (oldarg) = DECL_ATTRIBUTES (newarg);
  	}
  
*************** decl_jump_unsafe (tree decl)
*** 3744,3749 ****
--- 3873,4131 ----
  	      || variably_modified_type_p (type, NULL_TREE)));
  }
  
+ /* Returns true if decl is an automatic variable with vacuous initialization
+    except when it is [[indeterminate]] or [[gnu::uninitialized]].
+    Jumps across such initialization need to be instrumented for
+    !!flag_auto_var_init.  */
+ 
+ static bool
+ decl_instrument_init_bypass_p (tree decl)
+ {
+   tree type = TREE_TYPE (decl);
+ 
+   return (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	  && type != error_mark_node
+ 	  && VAR_P (decl)
+ 	  && !TREE_STATIC (decl)
+ 	  && !DECL_EXTERNAL (decl)
+ 	  && !(DECL_NONTRIVIALLY_INITIALIZED_P (decl)
+ 	       || variably_modified_type_p (type, NULL_TREE))
+ 	  && !lookup_attribute (NULL, "indeterminate", DECL_ATTRIBUTES (decl))
+ 	  && !lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl))
+ 	  && !DECL_HAS_VALUE_EXPR_P (decl));
+ }
+ 
+ /* Build .DEFERRED_INIT call for DECL.  */
+ 
+ static tree
+ build_deferred_init_call (tree decl)
+ {
+   tree decl_size_arg = TYPE_SIZE_UNIT (TREE_TYPE (decl));
+   tree init_type_arg = build_int_cst (integer_type_node,
+ 				      (int) flag_auto_var_init);
+   location_t loc = DECL_SOURCE_LOCATION (decl);
+   tree decl_name;
+ 
+   if (DECL_NAME (decl))
+     decl_name = build_string_literal (DECL_NAME (decl));
+   else
+     {
+       char decl_name_anonymous[3 + (HOST_BITS_PER_INT + 2) / 3];
+       sprintf (decl_name_anonymous, "D.%u", DECL_UID (decl));
+       decl_name = build_string_literal (decl_name_anonymous);
+     }
+ 
+   tree call = build_call_expr_internal_loc (loc, IFN_DEFERRED_INIT,
+ 					    TREE_TYPE (decl), 3,
+ 					    decl_size_arg, init_type_arg,
+ 					    decl_name);
+   tree ret = build2_loc (loc, MODIFY_EXPR, void_type_node, decl, call);
+   return build_stmt (loc, EXPR_STMT, ret);
+ }
+ 
+ /* Emit before ITER (and any labels/case labels before it) code like
+    if (0)
+      {
+        l1:
+ 	v4 = .DEFERRED_INIT (sizeof (v4), ?, "v4");
+ 	v3 = .DEFERRED_INIT (sizeof (v3), ?, "v3");
+ 	v2 = .DEFERRED_INIT (sizeof (v2), ?, "v2");
+ 	v1 = .DEFERRED_INIT (sizeof (v1), ?, "v1");
+      }
+    and return l1 label, or if it already exists, assert it has the
+    .DEFERRED_INIT calls for the right decls in the right order and
+    amend it, either by adding extra labels in between or further
+    ,DEFERRED_INIT calls before the first label and extra label before
+    that.  If CASE_LABEL is non-NULL, emit that CASE_LABEL_EXPR instead
+    of adding a label.  DECLS points to an array of NDECLS VAR_DECLs
+    which should be initialized.  */
+ 
+ static tree
+ maybe_add_deferred_init_calls (tree_stmt_iterator iter, tree case_label,
+ 			       tree *decls, unsigned ndecls)
+ {
+   tree lab = NULL_TREE;
+   for (; !tsi_end_p (iter); tsi_prev (&iter))
+     {
+       switch (TREE_CODE (tsi_stmt (iter)))
+ 	{
+ 	case LABEL_EXPR:
+ 	case CASE_LABEL_EXPR:
+ 	case DEBUG_BEGIN_STMT:
+ 	  continue;
+ 	default:
+ 	  break;
+ 	}
+       break;
+     }
+   if (!tsi_end_p (iter)
+       && TREE_CODE (tsi_stmt (iter)) == IF_STMT
+       && IF_STMT_VACUOUS_INIT_P (tsi_stmt (iter)))
+     {
+       /* Found IF_STMT added for this or some adjacent
+ 	 LABEL_EXPR/CASE_LABEL_EXPR by an earlier call to this function.
+ 	 The decls are ordered so that we can always reuse it.  Sometimes
+ 	 by no modifications at all and just returning the right label
+ 	 which was added already before, sometimes by adding a label in
+ 	 between two previously added .DEFERRED_INIT calls and sometimes
+ 	 by adding extra statements (.DEFERRED_INIT calls and LABEL_EXPR
+ 	 before that) before the statements in IF_STMT body.  */
+       tree then_clause = THEN_CLAUSE (tsi_stmt (iter));
+       iter = tsi_last (then_clause);
+       bool add = false;
+       for (unsigned int i = 0; i < ndecls; ++i)
+ 	{
+ 	  tree decl = decls[i];
+ 	  if (!add)
+ 	    {
+ 	      /* Skip over labels/case labels after .DEFERRED_INIT for the
+ 		 DECL we are looking for.  */
+ 	      while (!tsi_end_p (iter)
+ 		     && (TREE_CODE (tsi_stmt (iter)) == LABEL_EXPR
+ 			 || (TREE_CODE (tsi_stmt (iter)) == CASE_LABEL_EXPR
+ 			     && !case_label)))
+ 		tsi_prev (&iter);
+ 	      if (tsi_end_p (iter))
+ 		{
+ 		  /* Reached the start, we'll need to prepend further
+ 		     statements.  */
+ 		  add = true;
+ 		  iter = tsi_start (then_clause);
+ 		}
+ 	      else
+ 		{
+ 		  /* Found something, assert it is .DEFERRED_INIT for
+ 		     DECL.  */
+ 		  tree t = tsi_stmt (iter);
+ 		  gcc_checking_assert (TREE_CODE (t) == EXPR_STMT);
+ 		  t = EXPR_STMT_EXPR (t);
+ 		  gcc_checking_assert (TREE_CODE (t) == MODIFY_EXPR
+ 				       && TREE_OPERAND (t, 0) == decl
+ 				       && (TREE_CODE (TREE_OPERAND (t, 1))
+ 					   == CALL_EXPR));
+ 		  t = TREE_OPERAND (t, 1);
+ 		  gcc_checking_assert (CALL_EXPR_FN (t) == NULL_TREE
+ 				       && (CALL_EXPR_IFN (t)
+ 					   == IFN_DEFERRED_INIT));
+ 		  tsi_prev (&iter);
+ 		}
+ 	    }
+ 	  if (add)
+ 	    {
+ 	      /* If reached the start in this or some earlier iteration,
+ 		 prepend .DEFERRED_INIT call for DECL.  */
+ 	      tree t = build_deferred_init_call (decl);
+ 	      STMT_IS_FULL_EXPR_P (t) = 1;
+ 	      tsi_link_before (&iter, t, TSI_CONTINUE_LINKING);
+ 	    }
+ 	}
+       if (!add)
+ 	{
+ 	  /* If .DEFERRED_INIT calls for all the decls were already there,
+ 	     skip over case labels and if we find a LABEL_EXPR, return
+ 	     its label.  */
+ 	  while (!tsi_end_p (iter)
+ 		 && !case_label
+ 		 && TREE_CODE (tsi_stmt (iter)) == CASE_LABEL_EXPR)
+ 	    tsi_prev (&iter);
+ 	  if (tsi_end_p (iter))
+ 	    {
+ 	      /* Only case labels were found and we are looking for normal
+ 		 label, we'll need to add it.  */
+ 	      add = true;
+ 	      iter = tsi_start (then_clause);
+ 	    }
+ 	  else if (!case_label
+ 		   && TREE_CODE (tsi_stmt (iter)) == LABEL_EXPR)
+ 	    /* Return existing label.  */
+ 	    lab = LABEL_EXPR_LABEL (tsi_stmt (iter));
+ 	  else
+ 	    {
+ 	      /* We'll need to add a LABEL_EXPR or move CASE_LABEL_EXPR.  */
+ 	      gcc_checking_assert (case_label
+ 				   || (TREE_CODE (tsi_stmt (iter))
+ 				       == EXPR_STMT));
+ 	      add = true;
+ 	      tsi_next (&iter);
+ 	      gcc_checking_assert (!tsi_end_p (iter));
+ 	    }
+ 	}
+       if (add)
+ 	{
+ 	  tree t;
+ 	  if (case_label)
+ 	    t = case_label;
+ 	  else
+ 	    {
+ 	      lab = create_artificial_label (UNKNOWN_LOCATION);
+ 	      t = build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab);
+ 	    }
+ 	  tsi_link_before (&iter, t, TSI_CONTINUE_LINKING);
+ 	}
+     }
+   else
+     {
+       /* No IF_STMT created by this function found.  Create it all
+ 	 from scratch, so a LABEL_EXPR (or moved CASE_LABEL_EXPR)
+ 	 followed by .DEFERRED_INIT calls inside of a new if (0).  */
+       tree new_then = push_stmt_list ();
+       if (!case_label)
+ 	{
+ 	  lab = create_artificial_label (UNKNOWN_LOCATION);
+ 	  add_stmt (build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab));
+ 	}
+       else
+ 	add_stmt (case_label);
+       for (unsigned int i = ndecls; i; --i)
+ 	add_stmt (build_deferred_init_call (decls[i - 1]));
+       new_then = pop_stmt_list (new_then);
+       tree stmt = build4 (IF_STMT, void_type_node, boolean_false_node,
+ 			  new_then, void_node, NULL_TREE);
+       IF_STMT_VACUOUS_INIT_P (stmt) = 1;
+       if (tsi_end_p (iter))
+ 	{
+ 	  iter = tsi_start (iter.container);
+ 	  tsi_link_before (&iter, stmt, TSI_SAME_STMT);
+ 	}
+       else
+ 	tsi_link_after (&iter, stmt, TSI_CONTINUE_LINKING);
+     }
+   return lab;
+ }
+ 
+ /* Adjust backward gotos to named label ENT if they jump over vacuous
+    initializers if !!flag_auto_var_init.  ITER is the location of
+    LABEL_EXPR for that named label.  */
+ 
+ static void
+ adjust_backward_goto (named_label_entry *ent, tree_stmt_iterator iter)
+ {
+   auto_vec<tree, 4> decls;
+   unsigned int i, max_cnt = ent->direct_goto->last ().n_bad_decls;
+   tree decl;
+   FOR_EACH_VEC_SAFE_ELT (ent->bad_decls, i, decl)
+     if (!decl_jump_unsafe (decl))
+       {
+ 	gcc_checking_assert (decl_instrument_init_bypass_p (decl));
+ 	decls.safe_push (decl);
+ 	if (decls.length () == max_cnt)
+ 	  break;
+       }
+   named_label_bck_direct_goto *dgoto;
+   unsigned last = 0;
+   tree lab = NULL_TREE;
+   FOR_EACH_VEC_SAFE_ELT_REVERSE (ent->direct_goto, i, dgoto)
+     {
+       if (dgoto->n_bad_decls != last)
+ 	{
+ 	  last = dgoto->n_bad_decls;
+ 	  lab = maybe_add_deferred_init_calls (iter, NULL_TREE,
+ 					       decls.address (), last);
+ 	}
+       *dgoto->direct_goto = lab;
+     }
+ }
+ 
  /* A subroutine of check_previous_goto_1 and check_goto to identify a branch
     to the user.  */
  
*************** identify_goto (tree decl, location_t loc
*** 3771,3783 ****
     is OK.  DECL is the LABEL_DECL or 0; LEVEL is the binding_level for
     the jump context; NAMES are the names in scope in LEVEL at the jump
     context; LOCUS is the source position of the jump or 0.  COMPUTED
!    is a vec of decls if the jump is a computed goto.  Returns
!    true if all is well.  */
  
! static bool
! check_previous_goto_1 (tree decl, cp_binding_level* level, tree names,
  		       bool exited_omp, const location_t *locus,
! 		       vec<tree,va_gc> *computed)
  {
    auto_diagnostic_group d;
    cp_binding_level *b;
--- 4153,4171 ----
     is OK.  DECL is the LABEL_DECL or 0; LEVEL is the binding_level for
     the jump context; NAMES are the names in scope in LEVEL at the jump
     context; LOCUS is the source position of the jump or 0.  COMPUTED
!    is a vec of decls if the jump is a computed goto.  DIRECT_GOTO is a
!    vec of pointers to LABEL_DECLs that might need adjusting if vacuous
!    initializations are crossed for !!flag_auto_var_init.  CASE_LABEL is
!    CASE_LABEL_EXPR to be moved if needed for the check_switch_goto case.
!    Returns non-zero if all is well, 2 if any vacuous initializers were
!    crossed.  */
  
! static int
! check_previous_goto_1 (tree decl, cp_binding_level *level, tree names,
  		       bool exited_omp, const location_t *locus,
! 		       vec<tree, va_gc> *computed,
! 		       vec<named_label_fwd_direct_goto, va_gc> *direct_goto,
! 		       tree case_label)
  {
    auto_diagnostic_group d;
    cp_binding_level *b;
*************** check_previous_goto_1 (tree decl, cp_bin
*** 3785,3790 ****
--- 4173,4180 ----
    int identified = 0;
    bool saw_eh = false, saw_omp = false, saw_tm = false, saw_cxif = false;
    bool saw_ceif = false, saw_se = false;
+   auto_vec<tree> vacuous_decls;
+   bool vacuous_inits = false;
  
    if (exited_omp)
      {
*************** check_previous_goto_1 (tree decl, cp_bin
*** 3807,3813 ****
  	{
  	  bool problem = decl_jump_unsafe (new_decls);
  	  if (! problem)
! 	    continue;
  
  	  if (!identified)
  	    {
--- 4197,4211 ----
  	{
  	  bool problem = decl_jump_unsafe (new_decls);
  	  if (! problem)
! 	    {
! 	      if (decl_instrument_init_bypass_p (new_decls))
! 		{
! 		  if (direct_goto || case_label)
! 		    vacuous_decls.safe_push (new_decls);
! 		  vacuous_inits = true;
! 		}
! 	      continue;
! 	    }
  
  	  if (!identified)
  	    {
*************** check_previous_goto_1 (tree decl, cp_bin
*** 3906,3912 ****
  	  }
      }
  
!   return !identified;
  }
  
  static void
--- 4304,4333 ----
  	  }
      }
  
!   if (!vacuous_decls.is_empty () && !seen_error ())
!     {
!       tree_stmt_iterator iter = tsi_last (cur_stmt_list);
!       if (case_label)
! 	{
! 	  gcc_checking_assert (tsi_stmt (iter) == case_label);
! 	  tsi_delink (&iter);
! 	  iter = tsi_last (cur_stmt_list);
! 	}
!       tree lab = maybe_add_deferred_init_calls (iter, case_label,
! 						vacuous_decls.address (),
! 						vacuous_decls.length ());
!       if (lab)
! 	{
! 	  unsigned int i;
! 	  named_label_fwd_direct_goto *dgoto;
! 	  FOR_EACH_VEC_SAFE_ELT (direct_goto, i, dgoto)
! 	    *dgoto->direct_goto = lab;
! 	}
!     }
! 
!   if (identified)
!     return 0;
!   return vacuous_inits ? 2 : 1;
  }
  
  static void
*************** check_previous_goto (tree decl, struct n
*** 3914,3937 ****
  {
    check_previous_goto_1 (decl, use->binding_level,
  			 use->names_in_scope, use->in_omp_scope,
! 			 &use->o_goto_locus, use->computed_goto);
  }
  
! static bool
! check_switch_goto (cp_binding_level* level)
  {
    return check_previous_goto_1 (NULL_TREE, level, level->names,
! 				false, NULL, nullptr);
  }
  
! /* Check that a new jump to a label ENT is OK.  COMPUTED is true
!    if this is a possible target of a computed goto.  */
  
  void
! check_goto_1 (named_label_entry *ent, bool computed)
  {
    auto_diagnostic_group d;
    tree decl = ent->label_decl;
  
    /* If the label hasn't been defined yet, defer checking.  */
    if (! DECL_INITIAL (decl))
--- 4335,4361 ----
  {
    check_previous_goto_1 (decl, use->binding_level,
  			 use->names_in_scope, use->in_omp_scope,
! 			 &use->o_goto_locus, use->computed_goto,
! 			 use->direct_goto, NULL_TREE);
!   vec_free (use->direct_goto);
  }
  
! static int
! check_switch_goto (cp_binding_level *level, tree case_label)
  {
    return check_previous_goto_1 (NULL_TREE, level, level->names,
! 				false, NULL, nullptr, nullptr, case_label);
  }
  
! /* Check that a new jump to a label ENT is OK.  DECLP is a pointer
!    to a LABEL_DECL for direct gotos and NULL for computed gotos.  */
  
  void
! check_goto_1 (named_label_entry *ent, tree *declp)
  {
    auto_diagnostic_group d;
    tree decl = ent->label_decl;
+   bool computed = declp == NULL;
  
    /* If the label hasn't been defined yet, defer checking.  */
    if (! DECL_INITIAL (decl))
*************** check_goto_1 (named_label_entry *ent, bo
*** 3939,3946 ****
        /* Don't bother creating another use if the last goto had the
  	 same data, and will therefore create the same set of errors.  */
        if (ent->uses
  	  && ent->uses->names_in_scope == current_binding_level->names)
! 	return;
  
        named_label_use_entry *new_use
  	= ggc_alloc<named_label_use_entry> ();
--- 4363,4376 ----
        /* Don't bother creating another use if the last goto had the
  	 same data, and will therefore create the same set of errors.  */
        if (ent->uses
+ 	  && ent->uses->binding_level == current_binding_level
  	  && ent->uses->names_in_scope == current_binding_level->names)
! 	{
! 	  if (declp && flag_auto_var_init > AUTO_INIT_UNINITIALIZED)
! 	    vec_safe_push (ent->uses->direct_goto,
! 			   named_label_fwd_direct_goto { declp });
! 	  return;
! 	}
  
        named_label_use_entry *new_use
  	= ggc_alloc<named_label_use_entry> ();
*************** check_goto_1 (named_label_entry *ent, bo
*** 3949,3954 ****
--- 4379,4388 ----
        new_use->o_goto_locus = input_location;
        new_use->in_omp_scope = false;
        new_use->computed_goto = computed ? make_tree_vector () : nullptr;
+       new_use->direct_goto = nullptr;
+       if (declp && flag_auto_var_init > AUTO_INIT_UNINITIALIZED)
+ 	vec_safe_push (new_use->direct_goto,
+ 		       named_label_fwd_direct_goto { declp });
  
        new_use->next = ent->uses;
        ent->uses = new_use;
*************** check_goto_1 (named_label_entry *ent, bo
*** 3959,3969 ****
    int identified = 0;
    tree bad;
    unsigned ix;
  
    if (ent->in_try_scope || ent->in_catch_scope || ent->in_transaction_scope
        || ent->in_constexpr_if || ent->in_consteval_if
        || ent->in_omp_scope || ent->in_stmt_expr
!       || !vec_safe_is_empty (ent->bad_decls))
      {
        enum diagnostics::kind diag_kind = diagnostics::kind::permerror;
        if (ent->in_try_scope || ent->in_catch_scope || ent->in_constexpr_if
--- 4393,4404 ----
    int identified = 0;
    tree bad;
    unsigned ix;
+   unsigned n_bad_decls = 0;
  
    if (ent->in_try_scope || ent->in_catch_scope || ent->in_transaction_scope
        || ent->in_constexpr_if || ent->in_consteval_if
        || ent->in_omp_scope || ent->in_stmt_expr
!       || ent->has_bad_decls)
      {
        enum diagnostics::kind diag_kind = diagnostics::kind::permerror;
        if (ent->in_try_scope || ent->in_catch_scope || ent->in_constexpr_if
*************** check_goto_1 (named_label_entry *ent, bo
*** 3978,3985 ****
    FOR_EACH_VEC_SAFE_ELT (ent->bad_decls, ix, bad)
      {
        bool problem = decl_jump_unsafe (bad);
  
!       if (problem && DECL_ARTIFICIAL (bad))
  	{
  	  /* Can't skip init of __exception_info.  */
  	  if (identified == 1)
--- 4413,4426 ----
    FOR_EACH_VEC_SAFE_ELT (ent->bad_decls, ix, bad)
      {
        bool problem = decl_jump_unsafe (bad);
+       if (!problem)
+ 	{
+ 	  gcc_checking_assert (decl_instrument_init_bypass_p (bad));
+ 	  n_bad_decls++;
+ 	  continue;
+ 	}
  
!       if (DECL_ARTIFICIAL (bad))
  	{
  	  /* Can't skip init of __exception_info.  */
  	  if (identified == 1)
*************** check_goto_1 (named_label_entry *ent, bo
*** 4086,4101 ****
  	    break;
  	}
      }
  }
  
! /* Check that a new jump to a label DECL is OK.  Called by
     finish_goto_stmt.  */
  
  void
! check_goto (tree decl)
  {
    if (!named_labels)
      return;
    if (TREE_CODE (decl) != LABEL_DECL)
      {
        /* We don't know where a computed goto is jumping,
--- 4527,4547 ----
  	    break;
  	}
      }
+ 
+   if (n_bad_decls && declp)
+     vec_safe_push (ent->direct_goto,
+ 		   named_label_bck_direct_goto { declp, n_bad_decls });
  }
  
! /* Check that a new jump to a label *DECLP is OK.  Called by
     finish_goto_stmt.  */
  
  void
! check_goto (tree *declp)
  {
    if (!named_labels)
      return;
+   tree decl = *declp;
    if (TREE_CODE (decl) != LABEL_DECL)
      {
        /* We don't know where a computed goto is jumping,
*************** check_goto (tree decl)
*** 4106,4112 ****
  	{
  	  auto ent = *iter;
  	  if (ent->addressed)
! 	    check_goto_1 (ent, true);
  	}
      }
    else
--- 4552,4558 ----
  	{
  	  auto ent = *iter;
  	  if (ent->addressed)
! 	    check_goto_1 (ent, NULL);
  	}
      }
    else
*************** check_goto (tree decl)
*** 4115,4121 ****
        named_label_entry **slot
  	= named_labels->find_slot_with_hash (DECL_NAME (decl), hash, NO_INSERT);
        named_label_entry *ent = *slot;
!       check_goto_1 (ent, false);
      }
  }
  
--- 4561,4567 ----
        named_label_entry **slot
  	= named_labels->find_slot_with_hash (DECL_NAME (decl), hash, NO_INSERT);
        named_label_entry *ent = *slot;
!       check_goto_1 (ent, declp);
      }
  }
  
*************** finish_case_label (location_t loc, tree
*** 4370,4376 ****
    if (cond && TREE_CODE (cond) == TREE_LIST)
      cond = TREE_VALUE (cond);
  
!   if (!check_switch_goto (switch_stack->level))
      return error_mark_node;
  
    type = SWITCH_STMT_TYPE (switch_stack->switch_stmt);
--- 4816,4823 ----
    if (cond && TREE_CODE (cond) == TREE_LIST)
      cond = TREE_VALUE (cond);
  
!   int chk_switch_goto = check_switch_goto (switch_stack->level, NULL_TREE);
!   if (!chk_switch_goto)
      return error_mark_node;
  
    type = SWITCH_STMT_TYPE (switch_stack->switch_stmt);
*************** finish_case_label (location_t loc, tree
*** 4382,4387 ****
--- 4829,4837 ----
  
    r = c_add_case_label (loc, switch_stack->cases, cond, low_value, high_value);
  
+   if (r != error_mark_node && chk_switch_goto == 2)
+     check_switch_goto (switch_stack->level, r);
+ 
    /* After labels, make any new cleanups in the function go into their
       own new (temporary) binding contour.  */
    for (p = current_binding_level;
*************** start_preparsed_function (tree decl1, tr
*** 19327,19342 ****
    start_function_contracts (decl1);
  
    if (!processing_template_decl
!       && (flag_lifetime_dse > 1)
        && DECL_CONSTRUCTOR_P (decl1)
-       && !DECL_CLONED_FUNCTION_P (decl1)
        /* Clobbering an empty base is harmful if it overlays real data.  */
        && !is_empty_class (current_class_type)
        /* We can't clobber safely for an implicitly-defined default constructor
  	 because part of the initialization might happen before we enter the
  	 constructor, via AGGR_INIT_ZERO_FIRST (c++/68006).  */
!       && !implicit_default_ctor_p (decl1))
!     finish_expr_stmt (build_clobber_this (CLOBBER_OBJECT_BEGIN));
  
    if (!processing_template_decl
        && DECL_CONSTRUCTOR_P (decl1)
--- 19777,19795 ----
    start_function_contracts (decl1);
  
    if (!processing_template_decl
!       && flag_lifetime_dse > 1
        && DECL_CONSTRUCTOR_P (decl1)
        /* Clobbering an empty base is harmful if it overlays real data.  */
        && !is_empty_class (current_class_type)
        /* We can't clobber safely for an implicitly-defined default constructor
  	 because part of the initialization might happen before we enter the
  	 constructor, via AGGR_INIT_ZERO_FIRST (c++/68006).  */
!       && !implicit_default_ctor_p (decl1)
!       && !lookup_attribute ("clobber *this",
! 			    DECL_ATTRIBUTES (current_class_ptr)))
!     DECL_ATTRIBUTES (current_class_ptr)
!       = tree_cons (get_identifier ("clobber *this"), NULL_TREE,
! 		   DECL_ATTRIBUTES (current_class_ptr));
  
    if (!processing_template_decl
        && DECL_CONSTRUCTOR_P (decl1)
diff -Nrcpad gcc-16-20250928/gcc/cp/module.cc gcc-16-20251005/gcc/cp/module.cc
*** gcc-16-20250928/gcc/cp/module.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/module.cc	Sun Oct  5 22:32:15 2025
*************** public:
*** 2341,2346 ****
--- 2341,2347 ----
      EK_PARTIAL,		/* A partial specialization.  */
      EK_USING,		/* A using declaration (at namespace scope).  */
      EK_NAMESPACE,	/* A namespace.  */
+     EK_TU_LOCAL,	/* A TU-local decl for ADL.  */
      EK_REDIRECT,	/* Redirect to a template_decl.  */
      EK_EXPLICIT_HWM,
      EK_BINDING = EK_EXPLICIT_HWM, /* Implicitly encoded.  */
*************** public:
*** 2351,2356 ****
--- 2352,2359 ----
  
      EK_BITS = 3		/* Only need to encode below EK_EXPLICIT_HWM.  */
    };
+   static_assert (EK_EXPLICIT_HWM < (1u << EK_BITS),
+ 		 "not enough bits reserved for entity_kind");
  
  private:
    /* Placement of bit fields in discriminator.  */
*************** private:
*** 2375,2381 ****
--- 2378,2387 ----
         awkward.  */
      DB_TYPE_SPEC_BIT,		/* Specialization in the type table.  */
      DB_FRIEND_SPEC_BIT,		/* An instantiated template friend.  */
+     DB_HWM,
    };
+   static_assert (DB_HWM <= sizeof(discriminator) * CHAR_BIT,
+ 		 "not enough bits in discriminator");
  
  public:
    /* The first slot is special for EK_SPECIALIZATIONS it is a
*************** depset::entity_kind_name () const
*** 2700,2706 ****
    /* Same order as entity_kind.  */
    static const char *const names[] =
      {"decl", "specialization", "partial", "using",
!      "namespace", "redirect", "binding"};
    entity_kind kind = get_entity_kind ();
    gcc_checking_assert (kind < ARRAY_SIZE (names));
    return names[kind];
--- 2706,2714 ----
    /* Same order as entity_kind.  */
    static const char *const names[] =
      {"decl", "specialization", "partial", "using",
!      "namespace", "tu-local", "redirect", "binding"};
!   static_assert (ARRAY_SIZE (names) == EK_EXPLICIT_HWM + 1,
! 		 "names must have an entry for every explicit entity_kind");
    entity_kind kind = get_entity_kind ();
    gcc_checking_assert (kind < ARRAY_SIZE (names));
    return names[kind];
*************** trees_out::find_tu_local_decl (tree t)
*** 9986,9991 ****
--- 9994,10009 ----
    return cp_walk_tree_without_duplicates (&t, walker, this);
  }
  
+ /* Get the name for TU-local decl T to be used in diagnostics.  */
+ 
+ static tree
+ name_for_tu_local_decl (tree t)
+ {
+   int flags = (TFF_SCOPE | TFF_DECL_SPECIFIERS);
+   const char *str = decl_as_string (t, flags);
+   return get_identifier (str);
+ }
+ 
  /* Stream out tree node T.  We automatically create local back
     references, which is essentially a single pass lisp
     self-referential structure pretty-printer.  */
*************** trees_out::tree_node (tree t)
*** 10030,10037 ****
  		&& dump ("Writing TU-local entity:%d %C:%N",
  			 tag, TREE_CODE (t), t);
  	    }
! 	  /* TODO: Get a more descriptive name?  */
! 	  tree_node (DECL_NAME (local_decl));
  	  if (state)
  	    state->write_location (*this, DECL_SOURCE_LOCATION (local_decl));
  	  goto done;
--- 10048,10054 ----
  		&& dump ("Writing TU-local entity:%d %C:%N",
  			 tag, TREE_CODE (t), t);
  	    }
! 	  tree_node (name_for_tu_local_decl (local_decl));
  	  if (state)
  	    state->write_location (*this, DECL_SOURCE_LOCATION (local_decl));
  	  goto done;
*************** depset::hash::make_dependency (tree decl
*** 14194,14199 ****
--- 14211,14218 ----
    gcc_checking_assert (!is_key_order ());
    if (ek == EK_USING)
      gcc_checking_assert (TREE_CODE (decl) == OVERLOAD);
+   if (ek == EK_TU_LOCAL)
+     gcc_checking_assert (DECL_DECLARES_FUNCTION_P (decl));
  
    if (TREE_CODE (decl) == TEMPLATE_DECL)
      /* The template should have copied these from its result decl.  */
*************** depset::hash::make_dependency (tree decl
*** 14394,14400 ****
    dump (dumper::DEPEND)
      && dump ("%s on %s %C:%N found",
  	     ek == EK_REDIRECT ? "Redirect"
! 	     : for_binding ? "Binding" : "Dependency",
  	     dep->entity_kind_name (), TREE_CODE (decl), decl);
  
    return dep;
--- 14413,14420 ----
    dump (dumper::DEPEND)
      && dump ("%s on %s %C:%N found",
  	     ek == EK_REDIRECT ? "Redirect"
! 	     : (for_binding || ek == EK_TU_LOCAL) ? "Binding"
! 	     : "Dependency",
  	     dep->entity_kind_name (), TREE_CODE (decl), decl);
  
    return dep;
*************** depset::hash::add_binding_entity (tree d
*** 14565,14573 ****
  	   than trying to clear out bindings after the fact.  */
  	return false;
  
        if (!header_module_p () && data->hash->is_tu_local_entity (decl))
! 	/* Ignore TU-local entitites.  */
! 	return false;
  
        if ((TREE_CODE (decl) == VAR_DECL
  	   || TREE_CODE (decl) == TYPE_DECL)
--- 14585,14605 ----
  	   than trying to clear out bindings after the fact.  */
  	return false;
  
+       bool internal_decl = false;
        if (!header_module_p () && data->hash->is_tu_local_entity (decl))
! 	{
! 	  /* A TU-local entity.  For ADL we still need to create bindings
! 	     for internal-linkage functions attached to a named module.  */
! 	  if (DECL_DECLARES_FUNCTION_P (inner)
! 	      && DECL_LANG_SPECIFIC (inner)
! 	      && DECL_MODULE_ATTACH_P (inner))
! 	    {
! 	      gcc_checking_assert (!DECL_MODULE_EXPORT_P (inner));
! 	      internal_decl = true;
! 	    }
! 	  else
! 	    return false;
! 	}
  
        if ((TREE_CODE (decl) == VAR_DECL
  	   || TREE_CODE (decl) == TYPE_DECL)
*************** depset::hash::add_binding_entity (tree d
*** 14662,14669 ****
  	    OVL_EXPORT_P (decl) = true;
  	}
  
!       depset *dep = data->hash->make_dependency
! 	(decl, flags & WMB_Using ? EK_USING : EK_FOR_BINDING);
        if (flags & WMB_Hidden)
  	dep->set_hidden_binding ();
        data->binding->deps.safe_push (dep);
--- 14694,14706 ----
  	    OVL_EXPORT_P (decl) = true;
  	}
  
!       entity_kind ek = EK_FOR_BINDING;
!       if (internal_decl)
! 	ek = EK_TU_LOCAL;
!       else if (flags & WMB_Using)
! 	ek = EK_USING;
! 
!       depset *dep = data->hash->make_dependency (decl, ek);
        if (flags & WMB_Hidden)
  	dep->set_hidden_binding ();
        data->binding->deps.safe_push (dep);
*************** depset::hash::find_dependencies (module_
*** 15114,15122 ****
  	      walker.begin ();
  	      if (current->get_entity_kind () == EK_USING)
  		walker.tree_node (OVL_FUNCTION (decl));
  	      else if (TREE_VISITED (decl))
  		/* A global tree.  */;
! 	      else if (item->get_entity_kind () == EK_NAMESPACE)
  		{
  		  module->note_location (DECL_SOURCE_LOCATION (decl));
  		  add_namespace_context (current, CP_DECL_CONTEXT (decl));
--- 15151,15162 ----
  	      walker.begin ();
  	      if (current->get_entity_kind () == EK_USING)
  		walker.tree_node (OVL_FUNCTION (decl));
+ 	      else if (current->get_entity_kind () == EK_TU_LOCAL)
+ 		/* We only stream its name and location.  */
+ 		module->note_location (DECL_SOURCE_LOCATION (decl));
  	      else if (TREE_VISITED (decl))
  		/* A global tree.  */;
! 	      else if (current->get_entity_kind () == EK_NAMESPACE)
  		{
  		  module->note_location (DECL_SOURCE_LOCATION (decl));
  		  add_namespace_context (current, CP_DECL_CONTEXT (decl));
*************** binding_cmp (const void *a_, const void
*** 15231,15236 ****
--- 15271,15282 ----
        return a_implicit ? -1 : +1;  /* Implicit first.  */
      }
  
+   /* TU-local before non-TU-local.  */
+   bool a_internal = a->get_entity_kind () == depset::EK_TU_LOCAL;
+   bool b_internal = b->get_entity_kind () == depset::EK_TU_LOCAL;
+   if (a_internal != b_internal)
+     return a_internal ? -1 : +1;  /* Internal first.  */
+ 
    /* Hidden before non-hidden.  */
    bool a_hidden = a->is_hidden ();
    bool b_hidden = b->is_hidden ();
*************** sort_cluster (depset::hash *original, de
*** 15565,15576 ****
  	      use_lwm--;
  	      break;
  	    }
! 	  /* We must have copied a using, so move it too.  */
  	  dep = scc[ix];
! 	  gcc_checking_assert (dep->get_entity_kind () == depset::EK_USING);
  	  /* FALLTHROUGH  */
  
  	case depset::EK_USING:
  	  if (--use_lwm != ix)
  	    {
  	      scc[ix] = scc[use_lwm];
--- 15611,15625 ----
  	      use_lwm--;
  	      break;
  	    }
! 	  /* We must have copied a using or TU-local, so move it too.  */
  	  dep = scc[ix];
! 	  gcc_checking_assert
! 	    (dep->get_entity_kind () == depset::EK_USING
! 	     || dep->get_entity_kind () == depset::EK_TU_LOCAL);
  	  /* FALLTHROUGH  */
  
  	case depset::EK_USING:
+ 	case depset::EK_TU_LOCAL:
  	  if (--use_lwm != ix)
  	    {
  	      scc[ix] = scc[use_lwm];
*************** enum ct_bind_flags
*** 16570,16575 ****
--- 16619,16625 ----
    cbf_export = 0x1,	/* An exported decl.  */
    cbf_hidden = 0x2,	/* A hidden (friend) decl.  */
    cbf_using = 0x4,	/* A using decl.  */
+   cbf_internal = 0x8,	/* A TU-local decl.  */
  };
  
  /* DEP belongs to a different cluster, seed it to prevent
*************** module_state::write_cluster (elf_out *to
*** 16641,16647 ****
  		gcc_checking_assert (dep->is_import ()
  				     || TREE_VISITED (dep->get_entity ())
  				     || (dep->get_entity_kind ()
! 					 == depset::EK_USING));
  	      }
  	  }
  	  break;
--- 16691,16699 ----
  		gcc_checking_assert (dep->is_import ()
  				     || TREE_VISITED (dep->get_entity ())
  				     || (dep->get_entity_kind ()
! 					 == depset::EK_USING)
! 				     || (dep->get_entity_kind ()
! 					 == depset::EK_TU_LOCAL));
  	      }
  	  }
  	  break;
*************** module_state::write_cluster (elf_out *to
*** 16654,16659 ****
--- 16706,16712 ----
  	  /* FALLTHROUGH  */
  
  	case depset::EK_USING:
+ 	case depset::EK_TU_LOCAL:
  	  gcc_checking_assert (!b->is_import ()
  			       && !b->is_unreached ());
  	  dump (dumper::CLUSTER)
*************** module_state::write_cluster (elf_out *to
*** 16726,16732 ****
  		depset *dep = b->deps[jx];
  		tree bound = dep->get_entity ();
  		unsigned flags = 0;
! 		if (dep->get_entity_kind () == depset::EK_USING)
  		  {
  		    tree ovl = bound;
  		    bound = OVL_FUNCTION (bound);
--- 16779,16787 ----
  		depset *dep = b->deps[jx];
  		tree bound = dep->get_entity ();
  		unsigned flags = 0;
! 		if (dep->get_entity_kind () == depset::EK_TU_LOCAL)
! 		  flags |= cbf_internal;
! 		else if (dep->get_entity_kind () == depset::EK_USING)
  		  {
  		    tree ovl = bound;
  		    bound = OVL_FUNCTION (bound);
*************** module_state::write_cluster (elf_out *to
*** 16752,16758 ****
  		gcc_checking_assert (DECL_P (bound));
  
  		sec.i (flags);
! 		sec.tree_node (bound);
  	      }
  
  	    /* Terminate the list.  */
--- 16807,16819 ----
  		gcc_checking_assert (DECL_P (bound));
  
  		sec.i (flags);
! 		if (flags & cbf_internal)
! 		  {
! 		    sec.tree_node (name_for_tu_local_decl (bound));
! 		    write_location (sec, DECL_SOURCE_LOCATION (bound));
! 		  }
! 		else
! 		  sec.tree_node (bound);
  	      }
  
  	    /* Terminate the list.  */
*************** module_state::write_cluster (elf_out *to
*** 16761,16766 ****
--- 16822,16828 ----
  	  break;
  
  	case depset::EK_USING:
+ 	case depset::EK_TU_LOCAL:
  	  dump () && dump ("Depset:%u %s %C:%N", ix, b->entity_kind_name (),
  			   TREE_CODE (decl), decl);
  	  break;
*************** module_state::read_cluster (unsigned snu
*** 16878,16883 ****
--- 16940,16946 ----
  	    tree name = sec.tree_node ();
  	    tree decls = NULL_TREE;
  	    tree visible = NULL_TREE;
+ 	    tree internal = NULL_TREE;
  	    tree type = NULL_TREE;
  	    bool dedup = false;
  	    bool global_p = is_header ();
*************** module_state::read_cluster (unsigned snu
*** 16893,16898 ****
--- 16956,16978 ----
  		if ((flags & cbf_hidden)
  		    && (flags & (cbf_using | cbf_export)))
  		  sec.set_overrun ();
+ 		if ((flags & cbf_internal)
+ 		    && flags != cbf_internal)
+ 		  sec.set_overrun ();
+ 
+ 		if (flags & cbf_internal)
+ 		  {
+ 		    tree name = sec.tree_node ();
+ 		    location_t loc = read_location (sec);
+ 		    if (sec.get_overrun ())
+ 		      break;
+ 
+ 		    tree decl = make_node (TU_LOCAL_ENTITY);
+ 		    TU_LOCAL_ENTITY_NAME (decl) = name;
+ 		    TU_LOCAL_ENTITY_LOCATION (decl) = loc;
+ 		    internal = tree_cons (NULL_TREE, decl, internal);
+ 		    continue;
+ 		  }
  
  		tree decl = sec.tree_node ();
  		if (sec.get_overrun ())
*************** module_state::read_cluster (unsigned snu
*** 16987,16993 ****
  		  }
  	      }
  
! 	    if (!decls)
  	      sec.set_overrun ();
  
  	    if (sec.get_overrun ())
--- 17067,17073 ----
  		  }
  	      }
  
! 	    if (!decls && !internal)
  	      sec.set_overrun ();
  
  	    if (sec.get_overrun ())
*************** module_state::read_cluster (unsigned snu
*** 16996,17002 ****
  	    dump () && dump ("Binding of %P", ns, name);
  	    if (!set_module_binding (ns, name, mod, global_p,
  				     is_module () || is_partition (),
! 				     decls, type, visible))
  	      sec.set_overrun ();
  	  }
  	  break;
--- 17076,17082 ----
  	    dump () && dump ("Binding of %P", ns, name);
  	    if (!set_module_binding (ns, name, mod, global_p,
  				     is_module () || is_partition (),
! 				     decls, type, visible, internal))
  	      sec.set_overrun ();
  	  }
  	  break;
diff -Nrcpad gcc-16-20250928/gcc/cp/name-lookup.cc gcc-16-20251005/gcc/cp/name-lookup.cc
*** gcc-16-20250928/gcc/cp/name-lookup.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/name-lookup.cc	Sun Oct  5 22:32:15 2025
*************** append_imported_binding_slot (tree *slot
*** 353,358 ****
--- 353,360 ----
  
        tree new_vec = make_binding_vec (name, want);
        BINDING_VECTOR_NUM_CLUSTERS (new_vec) = have + 1;
+       BINDING_VECTOR_INTERNAL_DECLS (new_vec)
+ 	= BINDING_VECTOR_INTERNAL_DECLS (*slot);
        BINDING_VECTOR_GLOBAL_DUPS_P (new_vec)
  	= BINDING_VECTOR_GLOBAL_DUPS_P (*slot);
        BINDING_VECTOR_PARTITION_DUPS_P (new_vec)
*************** name_lookup::adl_namespace_fns (tree sco
*** 1304,1313 ****
  		      }
  
  		    /* For lookups on the instantiation path we can see any
! 		       module-linkage declaration; otherwise we should only
! 		       see exported decls.  */
  		    if (on_inst_path)
! 		      bind = STAT_DECL (bind);
  		    else
  		      bind = STAT_VISIBLE (bind);
  		  }
--- 1306,1339 ----
  		      }
  
  		    /* For lookups on the instantiation path we can see any
! 		       declarations visible at any point on the path;
! 		       otherwise we should only see exported decls.  */
  		    if (on_inst_path)
! 		      {
! 			/* If there are any internal functions visible, naming
! 			   them outside that module is ill-formed.  */
! 			auto_diagnostic_group d;
! 			if (MODULE_BINDING_INTERNAL_DECLS_P (bind)
! 			    && pedwarn (input_location, OPT_Wexternal_tu_local,
! 					"overload set for argument-dependent "
! 					"lookup of %<%D::%D%> in module %qs "
! 					"contains TU-local entities",
! 					scope, name, module_name (mod, false)))
! 			  {
! 			    tree *tu_locals
! 			      = BINDING_VECTOR_INTERNAL_DECLS (val)->get (mod);
! 			    gcc_checking_assert (tu_locals && *tu_locals);
! 			    for (tree t = *tu_locals; t; t = TREE_CHAIN (t))
! 			      {
! 				tree decl = TREE_VALUE (t);
! 				inform (TU_LOCAL_ENTITY_LOCATION (decl),
! 					"ignoring %qD declared here "
! 					"with internal linkage",
! 					TU_LOCAL_ENTITY_NAME (decl));
! 			      }
! 			  }
! 			bind = STAT_DECL (bind);
! 		      }
  		    else
  		      bind = STAT_VISIBLE (bind);
  		  }
*************** check_module_override (tree decl, tree m
*** 3856,3862 ****
  	  }
        }
  
!   if (TREE_PUBLIC (scope) && TREE_PUBLIC (STRIP_TEMPLATE (decl))
        /* Namespaces are dealt with specially in
  	 make_namespace_finish.  */
        && !(TREE_CODE (decl) == NAMESPACE_DECL && !DECL_NAMESPACE_ALIAS (decl)))
--- 3882,3888 ----
  	  }
        }
  
!   if (TREE_PUBLIC (scope)
        /* Namespaces are dealt with specially in
  	 make_namespace_finish.  */
        && !(TREE_CODE (decl) == NAMESPACE_DECL && !DECL_NAMESPACE_ALIAS (decl)))
*************** import_module_binding  (tree ns, tree na
*** 4427,4444 ****
  /* An import of MODULE is binding NS::NAME.  There should be no
     existing binding for >= MODULE.  GLOBAL_P indicates whether the
     bindings include global module entities.  PARTITION_P is true if
!    it is part of the current module. VALUE and TYPE are the value
!    and type bindings. VISIBLE are the value bindings being exported.  */
  
  bool
  set_module_binding (tree ns, tree name, unsigned mod, bool global_p,
! 		    bool partition_p, tree value, tree type, tree visible)
  {
!   if (!value)
      /* Bogus BMIs could give rise to nothing to bind.  */
      return false;
  
!   gcc_assert (TREE_CODE (value) != NAMESPACE_DECL
  	      || DECL_NAMESPACE_ALIAS (value));
    gcc_checking_assert (mod);
  
--- 4453,4473 ----
  /* An import of MODULE is binding NS::NAME.  There should be no
     existing binding for >= MODULE.  GLOBAL_P indicates whether the
     bindings include global module entities.  PARTITION_P is true if
!    it is part of the current module.  VALUE and TYPE are the value
!    and type bindings.  VISIBLE are the value bindings being exported.
!    INTERNAL is a TREE_LIST of any TU-local names visible for ADL.  */
  
  bool
  set_module_binding (tree ns, tree name, unsigned mod, bool global_p,
! 		    bool partition_p, tree value, tree type, tree visible,
! 		    tree internal)
  {
!   if (!value && !internal)
      /* Bogus BMIs could give rise to nothing to bind.  */
      return false;
  
!   gcc_assert (!value
! 	      || TREE_CODE (value) != NAMESPACE_DECL
  	      || DECL_NAMESPACE_ALIAS (value));
    gcc_checking_assert (mod);
  
*************** set_module_binding (tree ns, tree name,
*** 4450,4456 ****
      return false;
  
    tree bind = value;
!   if (type || visible != bind || partition_p || global_p)
      {
        bind = stat_hack (bind, type);
        STAT_VISIBLE (bind) = visible;
--- 4479,4485 ----
      return false;
  
    tree bind = value;
!   if (type || visible != bind || internal || partition_p || global_p)
      {
        bind = stat_hack (bind, type);
        STAT_VISIBLE (bind) = visible;
*************** set_module_binding (tree ns, tree name,
*** 4459,4464 ****
--- 4488,4504 ----
  	STAT_TYPE_VISIBLE_P (bind) = true;
      }
  
+   /* If this has internal declarations, track them for diagnostics.  */
+   if (internal)
+     {
+       if (!BINDING_VECTOR_INTERNAL_DECLS (*slot))
+ 	BINDING_VECTOR_INTERNAL_DECLS (*slot)
+ 	  = module_tree_map_t::create_ggc ();
+       bool existed = BINDING_VECTOR_INTERNAL_DECLS (*slot)->put (mod, internal);
+       gcc_checking_assert (!existed);
+       MODULE_BINDING_INTERNAL_DECLS_P (bind) = true;
+     }
+ 
    /* Note if this is this-module and/or global binding.  */
    if (partition_p)
      MODULE_BINDING_PARTITION_P (bind) = true;
*************** pushtag (tree name, tree type, TAG_how h
*** 8557,8562 ****
--- 8597,8608 ----
  	}
        else
  	{
+ 	  /* If an import is going to provide a definition for this tag,
+ 	     load it now so that we don't get confused later when processing
+ 	     this tag's definition.  */
+ 	  if (modules_p ())
+ 	    lazy_load_pendings (decl);
+ 
  	  decl = do_pushdecl_with_scope
  	    (decl, b, /*hiding=*/(how == TAG_how::HIDDEN_FRIEND));
  	  if (decl == error_mark_node)
diff -Nrcpad gcc-16-20250928/gcc/cp/name-lookup.h gcc-16-20251005/gcc/cp/name-lookup.h
*** gcc-16-20250928/gcc/cp/name-lookup.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/name-lookup.h	Sun Oct  5 22:32:15 2025
*************** struct GTY(()) binding_cluster
*** 142,156 ****
--- 142,164 ----
  #define BINDING_VECTOR_CLUSTER(NODE,IX) \
    (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->vec[IX])
  
+ struct module_tree_map_traits
+   : simple_hashmap_traits<int_hash<unsigned, 0>, tree> {};
+ typedef hash_map<unsigned, tree, module_tree_map_traits> module_tree_map_t;
+ 
  struct GTY(()) tree_binding_vec {
    struct tree_base base;
    tree name;
+   module_tree_map_t *internal_decls;
    binding_cluster GTY((length ("%h.base.u.dependence_info.base"))) vec[1];
  };
  
  /* The name of a module vector.  */
  #define BINDING_VECTOR_NAME(NODE) \
    (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->name)
+ /* A collection of internal functions for ADL in this binding.  */
+ #define BINDING_VECTOR_INTERNAL_DECLS(NODE) \
+   (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->internal_decls)
  
  /* tree_binding_vec does uses  base.u.dependence_info.base field for
     length.  It does not have lang_flag etc available!  */
*************** struct GTY(()) tree_binding_vec {
*** 166,171 ****
--- 174,184 ----
  #define BINDING_VECTOR_PARTITION_DUPS_P(NODE) \
    (BINDING_VECTOR_CHECK (NODE)->base.volatile_flag)
  
+ /* True if the binding slot has internal-linkage functions that should
+    cause ADL to error.  */
+ #define MODULE_BINDING_INTERNAL_DECLS_P(NODE) \
+   (OVERLOAD_CHECK (NODE)->base.private_flag)
+ 
  /* These two flags indicate the provenence of the bindings on this
     particular vector slot.  We can of course determine this from slot
     number, but that's a relatively expensive lookup.  This avoids
*************** extern bool import_module_binding (tree
*** 491,497 ****
  				   unsigned snum);
  extern bool set_module_binding (tree ctx, tree name, unsigned mod,
  				bool global_p, bool partition_p,
! 				tree value, tree type, tree visible);
  extern void add_module_namespace_decl (tree ns, tree decl);
  
  enum WMB_Flags
--- 504,511 ----
  				   unsigned snum);
  extern bool set_module_binding (tree ctx, tree name, unsigned mod,
  				bool global_p, bool partition_p,
! 				tree value, tree type, tree visible,
! 				tree internal);
  extern void add_module_namespace_decl (tree ns, tree decl);
  
  enum WMB_Flags
diff -Nrcpad gcc-16-20250928/gcc/cp/parser.cc gcc-16-20251005/gcc/cp/parser.cc
*** gcc-16-20250928/gcc/cp/parser.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/parser.cc	Sun Oct  5 22:32:15 2025
*************** cp_parser_class_specifier (cp_parser* pa
*** 28124,28129 ****
--- 28124,28130 ----
    bool in_switch_statement_p;
    bool saved_in_unbraced_linkage_specification_p;
    bool saved_in_unbraced_export_declaration_p;
+   bool saved_auto_is_implicit_function_template_parm_p;
    tree old_scope = NULL_TREE;
    tree scope = NULL_TREE;
    cp_token *closing_brace;
*************** cp_parser_class_specifier (cp_parser* pa
*** 28181,28186 ****
--- 28182,28191 ----
    saved_in_unbraced_export_declaration_p
      = parser->in_unbraced_export_declaration_p;
    parser->in_unbraced_export_declaration_p = false;
+   saved_auto_is_implicit_function_template_parm_p
+     = parser->auto_is_implicit_function_template_parm_p;
+   parser->auto_is_implicit_function_template_parm_p = false;
+ 
    /* 'this' from an enclosing non-static member function is unavailable.  */
    tree saved_ccp = current_class_ptr;
    tree saved_ccr = current_class_ref;
*************** cp_parser_class_specifier (cp_parser* pa
*** 28571,28576 ****
--- 28576,28583 ----
      = saved_in_unbraced_linkage_specification_p;
    parser->in_unbraced_export_declaration_p
      = saved_in_unbraced_export_declaration_p;
+   parser->auto_is_implicit_function_template_parm_p
+     = saved_auto_is_implicit_function_template_parm_p;
    current_class_ptr = saved_ccp;
    current_class_ref = saved_ccr;
  
*************** cp_parser_asm_label_list (cp_parser* par
*** 31179,31188 ****
  	  if (TREE_CODE (label) == LABEL_DECL)
  	    {
  	      TREE_USED (label) = 1;
- 	      check_goto (label);
  	      name = build_string (IDENTIFIER_LENGTH (identifier),
  				   IDENTIFIER_POINTER (identifier));
  	      labels = tree_cons (name, label, labels);
  	    }
  	}
        /* If the next token is not a `,', then the list is
--- 31186,31195 ----
  	  if (TREE_CODE (label) == LABEL_DECL)
  	    {
  	      TREE_USED (label) = 1;
  	      name = build_string (IDENTIFIER_LENGTH (identifier),
  				   IDENTIFIER_POINTER (identifier));
  	      labels = tree_cons (name, label, labels);
+ 	      check_goto (&TREE_VALUE (labels));
  	    }
  	}
        /* If the next token is not a `,', then the list is
diff -Nrcpad gcc-16-20250928/gcc/cp/pt.cc gcc-16-20251005/gcc/cp/pt.cc
*** gcc-16-20250928/gcc/cp/pt.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/pt.cc	Sun Oct  5 22:32:15 2025
*************** convert_template_argument (tree parm,
*** 8928,8935 ****
  	orig_arg = TREE_OPERAND (orig_arg, 0);
  
        if (!uses_template_parms (t)
! 	  && !(force_conv ? uses_template_parms (orig_arg)
! 	       : type_dependent_expression_p (orig_arg)))
  	/* We used to call digest_init here.  However, digest_init
  	   will report errors, which we don't want when complain
  	   is zero.  More importantly, digest_init will try too
--- 8928,8938 ----
  	orig_arg = TREE_OPERAND (orig_arg, 0);
  
        if (!uses_template_parms (t)
! 	  && !type_dependent_expression_p (orig_arg)
! 	  && !(force_conv
! 	       && !(same_type_ignoring_top_level_qualifiers_p
! 		    (TREE_TYPE (orig_arg), t))
! 	       && value_dependent_expression_p (orig_arg)))
  	/* We used to call digest_init here.  However, digest_init
  	   will report errors, which we don't want when complain
  	   is zero.  More importantly, digest_init will try too
diff -Nrcpad gcc-16-20250928/gcc/cp/semantics.cc gcc-16-20251005/gcc/cp/semantics.cc
*** gcc-16-20250928/gcc/cp/semantics.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/semantics.cc	Sun Oct  5 22:32:15 2025
*************** finish_goto_stmt (tree destination)
*** 919,928 ****
  	}
      }
  
-   check_goto (destination);
- 
    add_stmt (build_predict_expr (PRED_GOTO, NOT_TAKEN));
!   return add_stmt (build_stmt (input_location, GOTO_EXPR, destination));
  }
  
  /* Returns true if T corresponds to an assignment operator expression.  */
--- 919,930 ----
  	}
      }
  
    add_stmt (build_predict_expr (PRED_GOTO, NOT_TAKEN));
! 
!   tree stmt = build_stmt (input_location, GOTO_EXPR, destination);
!   check_goto (&TREE_OPERAND (stmt, 0));
! 
!   return add_stmt (stmt);
  }
  
  /* Returns true if T corresponds to an assignment operator expression.  */
diff -Nrcpad gcc-16-20250928/gcc/cp/tree.cc gcc-16-20251005/gcc/cp/tree.cc
*** gcc-16-20250928/gcc/cp/tree.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/cp/tree.cc	Sun Oct  5 22:32:15 2025
*************** handle_maybe_unused_attribute (tree *nod
*** 5591,5596 ****
--- 5591,5613 ----
    return ret;
  }
  
+ /* The C++26 [[indeterminate]] attribute.  */
+ 
+ static tree
+ handle_indeterminate_attribute (tree *node, tree name, tree, int,
+ 				bool *no_add_attrs)
+ {
+   if (TREE_CODE (*node) != PARM_DECL
+       && (!VAR_P (*node) || is_global_var (*node)))
+     {
+       pedwarn (input_location, OPT_Wattributes,
+ 	       "%qE on declaration other than parameter or automatic variable",
+ 	       name);
+       *no_add_attrs = true;
+     }
+   return NULL_TREE;
+ }
+ 
  /* Table of valid C++ attributes.  */
  static const attribute_spec cxx_gnu_attributes[] =
  {
*************** static const attribute_spec std_attribut
*** 5630,5635 ****
--- 5647,5654 ----
      handle_noreturn_attribute, attr_noreturn_exclusions },
    { "carries_dependency", 0, 0, true, false, false, false,
      handle_carries_dependency_attribute, NULL },
+   { "indeterminate", 0, 0, true, false, false, false,
+     handle_indeterminate_attribute, NULL },
    { "pre", 0, -1, false, false, false, false,
      handle_contract_attribute, NULL },
    { "post", 0, -1, false, false, false, false,
diff -Nrcpad gcc-16-20250928/gcc/diagnostics/output-spec.cc gcc-16-20251005/gcc/diagnostics/output-spec.cc
*** gcc-16-20250928/gcc/diagnostics/output-spec.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/diagnostics/output-spec.cc	Sun Oct  5 22:32:15 2025
*************** along with GCC; see the file COPYING3.
*** 42,54 ****
  #include "diagnostics/output-spec.h"
  
  /* A namespace for handling the DSL of the arguments of
!    -fdiagnostics-add-output= and -fdiagnostics-set-output=.  */
  
  namespace diagnostics {
  namespace output_spec {
  
  /* Decls.  */
  
  struct scheme_name_and_params
  {
    std::string m_scheme_name;
--- 42,65 ----
  #include "diagnostics/output-spec.h"
  
  /* A namespace for handling the DSL of the arguments of
!    -fdiagnostics-add-output= and -fdiagnostics-set-output=
!    which look like:
!      SCHEME[:KEY=VALUE(,KEY=VALUE)*]
!    We call this an output spec.  */
  
  namespace diagnostics {
  namespace output_spec {
  
+ class scheme_handler;
+ 
  /* Decls.  */
  
+ /* A class for the result of the first stage of parsing an output spec,
+    where values are represented as untyped strings.
+    The scheme might not exist.
+    The keys have not been validated against the scheme.
+    The values have not been validated against their keys.  */
+ 
  struct scheme_name_and_params
  {
    std::string m_scheme_name;
*************** struct scheme_name_and_params
*** 62,200 ****
  class output_factory
  {
  public:
!   class scheme_handler
!   {
!   public:
!     scheme_handler (std::string scheme_name)
!     : m_scheme_name (std::move (scheme_name))
!     {}
!     virtual ~scheme_handler () {}
  
!     const std::string &get_scheme_name () const { return m_scheme_name; }
  
!     virtual std::unique_ptr<sink>
!     make_sink (const context &ctxt,
! 	       diagnostics::context &dc,
! 	       const char *unparsed_arg,
! 	       const scheme_name_and_params &parsed_arg) const = 0;
  
!   protected:
!     bool
!     parse_bool_value (const context &ctxt,
! 		      const char *unparsed_arg,
! 		      const std::string &key,
! 		      const std::string &value,
! 		      bool &out) const
!     {
!       if (value == "yes")
! 	{
! 	  out = true;
! 	  return true;
! 	}
!       else if (value == "no")
! 	{
! 	  out = false;
! 	  return true;
! 	}
!       else
! 	{
! 	  ctxt.report_error
! 	    ("%<%s%s%>:"
! 	     " unexpected value %qs for key %qs; expected %qs or %qs",
! 	     ctxt.get_option_name (), unparsed_arg,
! 	     value.c_str (),
! 	     key.c_str (),
! 	     "yes", "no");
  
! 	  return false;
! 	}
      }
!     template <typename EnumType, size_t NumValues>
!     bool
!     parse_enum_value (const context &ctxt,
! 		      const char *unparsed_arg,
! 		      const std::string &key,
! 		      const std::string &value,
! 		      const std::array<std::pair<const char *, EnumType>, NumValues> &value_names,
! 		      EnumType &out) const
      {
-       for (auto &iter : value_names)
- 	if (value == iter.first)
- 	  {
- 	    out = iter.second;
- 	    return true;
- 	  }
- 
-       auto_vec<const char *> known_values;
-       for (auto iter : value_names)
- 	known_values.safe_push (iter.first);
-       pp_markup::comma_separated_quoted_strings e (known_values);
        ctxt.report_error
  	("%<%s%s%>:"
! 	 " unexpected value %qs for key %qs; known values: %e",
! 	 ctxt.get_option_name (), unparsed_arg,
  	 value.c_str (),
  	 key.c_str (),
! 	 &e);
!       return false;
      }
  
!   private:
!     const std::string m_scheme_name;
!   };
  
!   output_factory ();
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc,
! 	     const char *unparsed_arg,
! 	     const scheme_name_and_params &parsed_arg);
  
!   const scheme_handler *get_scheme_handler (const std::string &scheme_name);
  
  private:
!   std::vector<std::unique_ptr<scheme_handler>> m_scheme_handlers;
  };
  
! class text_scheme_handler : public output_factory::scheme_handler
  {
  public:
!   text_scheme_handler () : scheme_handler ("text") {}
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc,
! 	     const char *unparsed_arg,
! 	     const scheme_name_and_params &parsed_arg) const final override;
! };
  
! class sarif_scheme_handler : public output_factory::scheme_handler
! {
! public:
!   sarif_scheme_handler () : scheme_handler ("sarif") {}
  
!   std::unique_ptr<sink>
!   make_sink (const context &ctxt,
! 	     diagnostics::context &dc,
! 	     const char *unparsed_arg,
! 	     const scheme_name_and_params &parsed_arg) const final override;
  
  private:
    static std::unique_ptr<sarif_serialization_format>
    make_sarif_serialization_object (enum sarif_serialization_kind);
  };
  
! class html_scheme_handler : public output_factory::scheme_handler
  {
  public:
    html_scheme_handler () : scheme_handler ("experimental-html") {}
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc,
! 	     const char *unparsed_arg,
! 	     const scheme_name_and_params &parsed_arg) const final override;
  };
  
  /* struct context.  */
--- 73,232 ----
  class output_factory
  {
  public:
!   output_factory (diagnostics::context &dc);
  
!   std::unique_ptr<sink>
!   make_sink (const context &ctxt,
! 	     diagnostics::context &dc,
! 	     const scheme_name_and_params &scheme_and_kvs);
  
!   scheme_handler *get_scheme_handler (const std::string &scheme_name);
  
! private:
!   std::vector<std::unique_ptr<scheme_handler>> m_scheme_handlers;
! };
  
! enum key_handler::result
! key_handler::parse_bool_value (const context &ctxt,
! 			       const std::string &key,
! 			       const std::string &value,
! 			       bool &out) const
! {
!   if (value == "yes")
!     {
!       out = true;
!       return result::ok;
      }
!   else if (value == "no")
!     {
!       out = false;
!       return result::ok;
!     }
!   else
      {
        ctxt.report_error
  	("%<%s%s%>:"
! 	 " unexpected value %qs for key %qs; expected %qs or %qs",
! 	 ctxt.get_option_name (), ctxt.get_unparsed_spec (),
  	 value.c_str (),
  	 key.c_str (),
! 	 "yes", "no");
!       return result::malformed_value;
      }
+ }
  
! template <typename EnumType, size_t NumValues>
! key_handler::result
! key_handler::parse_enum_value (const context &ctxt,
! 			       const std::string &key,
! 			       const std::string &value,
! 			       const std::array<std::pair<const char *,
! 							  EnumType>,
! 						NumValues> &value_names,
! 			       EnumType &out) const
! {
!   for (auto &iter : value_names)
!     if (value == iter.first)
!       {
! 	out = iter.second;
! 	return result::ok;
!       }
  
!   auto_vec<const char *> known_values;
!   for (auto iter : value_names)
!     known_values.safe_push (iter.first);
!   pp_markup::comma_separated_quoted_strings e (known_values);
!   ctxt.report_error
!     ("%<%s%s%>:"
!      " unexpected value %qs for key %qs; known values: %e",
!      ctxt.get_option_name (), ctxt.get_unparsed_spec (),
!      value.c_str (),
!      key.c_str (),
!      &e);
!   return result::malformed_value;
! }
! 
! class text_scheme_handler : public scheme_handler
! {
! public:
!   text_scheme_handler (diagnostics::context &dc)
!   : scheme_handler ("text"),
!     m_show_color (pp_show_color (dc.get_reference_printer ())),
!     m_show_nesting (true),
!     m_show_locations_in_nesting (true),
!     m_show_levels (false)
!   {
!   }
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc) final override;
  
!   enum result
!   maybe_handle_kv (const context &ctxt,
! 		   const std::string &key,
! 		   const std::string &value) final override;
! 
!   void
!   get_keys (auto_vec<const char *> &out) const final override;
  
  private:
!   bool m_show_color;
!   bool m_show_nesting;
!   bool m_show_locations_in_nesting;
!   bool m_show_levels;
  };
  
! class sarif_scheme_handler : public scheme_handler
  {
  public:
!   sarif_scheme_handler ()
!   : scheme_handler ("sarif"),
!     m_serialization_kind (sarif_serialization_kind::json)
!   {
!   }
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc) final override;
  
!   enum result
!   maybe_handle_kv (const context &ctxt,
! 		   const std::string &key,
! 		   const std::string &value) final override;
  
!   void
!   get_keys (auto_vec<const char *> &out) const final override;
  
  private:
    static std::unique_ptr<sarif_serialization_format>
    make_sarif_serialization_object (enum sarif_serialization_kind);
+ 
+   label_text m_filename;
+   enum sarif_serialization_kind m_serialization_kind;
+   sarif_generation_options m_generation_opts;
  };
  
! class html_scheme_handler : public scheme_handler
  {
  public:
    html_scheme_handler () : scheme_handler ("experimental-html") {}
  
    std::unique_ptr<sink>
    make_sink (const context &ctxt,
! 	     diagnostics::context &dc) final override;
! 
!   enum result
!   maybe_handle_kv (const context &ctxt,
! 		   const std::string &key,
! 		   const std::string &value) final override;
! 
!   void
!   get_keys (auto_vec<const char *> &out) const final override;
! 
! private:
!   label_text m_filename;
!   html_generation_options m_html_gen_opts;
  };
  
  /* struct context.  */
*************** context::report_error (const char *gmsgi
*** 209,230 ****
  }
  
  void
! context::report_unknown_key (const char *unparsed_arg,
! 			     const std::string &key,
! 			     const std::string &scheme_name,
! 			     auto_vec<const char *> &known_keys) const
  {
!   pp_markup::comma_separated_quoted_strings e (known_keys);
    report_error
      ("%<%s%s%>:"
!      " unknown key %qs for format %qs; known keys: %e",
!      get_option_name (), unparsed_arg,
!      key.c_str (), scheme_name.c_str (), &e);
  }
  
  void
! context::report_missing_key (const char *unparsed_arg,
! 			     const std::string &key,
  			     const std::string &scheme_name,
  			     const char *metavar) const
  {
--- 241,283 ----
  }
  
  void
! context::report_unknown_key (const std::string &key,
! 			     const scheme_handler &scheme) const
  {
!   auto_vec<const char *> scheme_key_vec;
!   scheme.get_keys (scheme_key_vec);
! 
!   pp_markup::comma_separated_quoted_strings e_scheme_keys (scheme_key_vec);
! 
!   const char *scheme_name = scheme.get_scheme_name ().c_str ();
! 
!   if (m_client_keys)
!     {
!       auto_vec<const char *> client_key_vec;
!       m_client_keys->get_keys (client_key_vec);
!       if (!client_key_vec.is_empty ())
! 	{
! 	  pp_markup::comma_separated_quoted_strings e_client_keys
! 	    (client_key_vec);
! 	  report_error
! 	    ("%<%s%s%>:"
! 	     " unknown key %qs for output scheme %qs;"
! 	     " scheme keys: %e; client keys: %e",
! 	     get_option_name (), get_unparsed_spec (),
! 	     key.c_str (), scheme_name,
! 	     &e_scheme_keys, &e_client_keys);
! 	}
!     }
! 
    report_error
      ("%<%s%s%>:"
!      " unknown key %qs for output scheme %qs; scheme keys: %e",
!      get_option_name (), get_unparsed_spec (),
!      key.c_str (), scheme_name, &e_scheme_keys);
  }
  
  void
! context::report_missing_key (const std::string &key,
  			     const std::string &scheme_name,
  			     const char *metavar) const
  {
*************** context::report_missing_key (const char
*** 232,238 ****
      ("%<%s%s%>:"
       " missing required key %qs for format %qs;"
       " try %<%s%s:%s=%s%>",
!      get_option_name (), unparsed_arg,
       key.c_str (), scheme_name.c_str (),
       get_option_name (), scheme_name.c_str (), key.c_str (), metavar);
  }
--- 285,291 ----
      ("%<%s%s%>:"
       " missing required key %qs for format %qs;"
       " try %<%s%s:%s=%s%>",
!      get_option_name (), get_unparsed_spec (),
       key.c_str (), scheme_name.c_str (),
       get_option_name (), scheme_name.c_str (), key.c_str (), metavar);
  }
*************** context::open_output_file (label_text &&
*** 250,261 ****
  }
  
  static std::unique_ptr<scheme_name_and_params>
! parse (const context &ctxt, const char *unparsed_arg)
  {
    scheme_name_and_params result;
!   if (const char *const colon = strchr (unparsed_arg, ':'))
      {
!       result.m_scheme_name = std::string (unparsed_arg, colon - unparsed_arg);
        /* Expect zero of more of KEY=VALUE,KEY=VALUE, etc  .*/
        const char *iter = colon + 1;
        const char *last_separator = ":";
--- 303,315 ----
  }
  
  static std::unique_ptr<scheme_name_and_params>
! parse (const context &ctxt)
  {
    scheme_name_and_params result;
!   const char *const unparsed_spec = ctxt.get_unparsed_spec ();
!   if (const char *const colon = strchr (unparsed_spec, ':'))
      {
!       result.m_scheme_name = std::string (unparsed_spec, colon - unparsed_spec);
        /* Expect zero of more of KEY=VALUE,KEY=VALUE, etc  .*/
        const char *iter = colon + 1;
        const char *last_separator = ":";
*************** parse (const context &ctxt, const char *
*** 271,277 ****
  		 " expected KEY=VALUE-style parameter for format %qs"
  		 " after %qs;"
  		 " got %qs",
! 		 ctxt.get_option_name (), unparsed_arg,
  		 result.m_scheme_name.c_str (),
  		 last_separator,
  		 iter);
--- 325,331 ----
  		 " expected KEY=VALUE-style parameter for format %qs"
  		 " after %qs;"
  		 " got %qs",
! 		 ctxt.get_option_name (), ctxt.get_unparsed_spec (),
  		 result.m_scheme_name.c_str (),
  		 last_separator,
  		 iter);
*************** parse (const context &ctxt, const char *
*** 295,328 ****
  	}
      }
    else
!     result.m_scheme_name = unparsed_arg;
    return std::make_unique<scheme_name_and_params> (std::move (result));
  }
  
  std::unique_ptr<sink>
! context::parse_and_make_sink (const char *unparsed_arg,
! 			      diagnostics::context &dc)
  {
!   auto parsed_arg = parse (*this, unparsed_arg);
    if (!parsed_arg)
      return nullptr;
  
!   output_factory factory;
!   return factory.make_sink (*this, dc, unparsed_arg, *parsed_arg);
  }
  
! /* class output_factory::scheme_handler.  */
  
  /* class output_factory.  */
  
! output_factory::output_factory ()
  {
!   m_scheme_handlers.push_back (std::make_unique<text_scheme_handler> ());
    m_scheme_handlers.push_back (std::make_unique<sarif_scheme_handler> ());
    m_scheme_handlers.push_back (std::make_unique<html_scheme_handler> ());
  }
  
! const output_factory::scheme_handler *
  output_factory::get_scheme_handler (const std::string &scheme_name)
  {
    for (auto &iter : m_scheme_handlers)
--- 349,381 ----
  	}
      }
    else
!     result.m_scheme_name = unparsed_spec;
    return std::make_unique<scheme_name_and_params> (std::move (result));
  }
  
  std::unique_ptr<sink>
! context::parse_and_make_sink (diagnostics::context &dc)
  {
!   auto parsed_arg = parse (*this);
    if (!parsed_arg)
      return nullptr;
  
!   output_factory factory (dc);
!   return factory.make_sink (*this, dc, *parsed_arg);
  }
  
! /* class scheme_handler.  */
  
  /* class output_factory.  */
  
! output_factory::output_factory (diagnostics::context &dc)
  {
!   m_scheme_handlers.push_back (std::make_unique<text_scheme_handler> (dc));
    m_scheme_handlers.push_back (std::make_unique<sarif_scheme_handler> ());
    m_scheme_handlers.push_back (std::make_unique<html_scheme_handler> ());
  }
  
! scheme_handler *
  output_factory::get_scheme_handler (const std::string &scheme_name)
  {
    for (auto &iter : m_scheme_handlers)
*************** output_factory::get_scheme_handler (cons
*** 334,343 ****
  std::unique_ptr<sink>
  output_factory::make_sink (const context &ctxt,
  			   diagnostics::context &dc,
! 			   const char *unparsed_arg,
! 			   const scheme_name_and_params &parsed_arg)
  {
!   auto scheme_handler = get_scheme_handler (parsed_arg.m_scheme_name);
    if (!scheme_handler)
      {
        auto_vec<const char *> strings;
--- 387,395 ----
  std::unique_ptr<sink>
  output_factory::make_sink (const context &ctxt,
  			   diagnostics::context &dc,
! 			   const scheme_name_and_params &scheme_and_kvs)
  {
!   auto scheme_handler = get_scheme_handler (scheme_and_kvs.m_scheme_name);
    if (!scheme_handler)
      {
        auto_vec<const char *> strings;
*************** output_factory::make_sink (const context
*** 346,500 ****
        pp_markup::comma_separated_quoted_strings e (strings);
        ctxt.report_error ("%<%s%s%>:"
  			 " unrecognized format %qs; known formats: %e",
! 			 ctxt.get_option_name (), unparsed_arg,
! 			 parsed_arg.m_scheme_name.c_str (), &e);
        return nullptr;
      }
  
!   return scheme_handler->make_sink (ctxt, dc, unparsed_arg, parsed_arg);
! }
  
! /* class text_scheme_handler : public output_factory::scheme_handler.  */
  
! std::unique_ptr<sink>
! text_scheme_handler::make_sink (const context &ctxt,
! 				diagnostics::context &dc,
! 				const char *unparsed_arg,
! 				const scheme_name_and_params &parsed_arg) const
  {
!   bool show_color = pp_show_color (dc.get_reference_printer ());
!   bool show_nesting = true;
!   bool show_locations_in_nesting = true;
!   bool show_levels = false;
!   for (auto& iter : parsed_arg.m_kvs)
      {
!       const std::string &key = iter.first;
!       const std::string &value = iter.second;
!       if (key == "color")
! 	{
! 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_color))
! 	    return nullptr;
! 	  continue;
! 	}
!       if (key == "show-nesting")
! 	{
! 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
! 				 show_nesting))
! 	    return nullptr;
! 	  continue;
! 	}
!       if (key == "show-nesting-locations")
! 	{
! 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
! 				 show_locations_in_nesting))
! 	    return nullptr;
! 	  continue;
! 	}
!       if (key == "show-nesting-levels")
  	{
! 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_levels))
! 	    return nullptr;
! 	  continue;
  	}
! 
!       /* Key not found.  */
!       auto_vec<const char *> known_keys;
!       known_keys.safe_push ("color");
!       known_keys.safe_push ("show-nesting");
!       known_keys.safe_push ("show-nesting-locations");
!       known_keys.safe_push ("show-nesting-levels");
!       ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
! 			       known_keys);
!       return nullptr;
      }
  
    auto sink = std::make_unique<diagnostics::text_sink> (dc);
!   sink->set_show_nesting (show_nesting);
!   sink->set_show_locations_in_nesting (show_locations_in_nesting);
!   sink->set_show_nesting_levels (show_levels);
    return sink;
  }
  
! /* class sarif_scheme_handler : public output_factory::scheme_handler.  */
! 
! std::unique_ptr<sink>
! sarif_scheme_handler::make_sink (const context &ctxt,
! 				 diagnostics::context &dc,
! 				 const char *unparsed_arg,
! 				 const scheme_name_and_params &parsed_arg) const
  {
!   label_text filename;
!   enum sarif_serialization_kind serialization_kind
!     = sarif_serialization_kind::json;
!   sarif_generation_options sarif_gen_opts;
!   for (auto& iter : parsed_arg.m_kvs)
!     {
!       const std::string &key = iter.first;
!       const std::string &value = iter.second;
!       if (key == "file")
! 	{
! 	  filename = label_text::take (xstrdup (value.c_str ()));
! 	  continue;
! 	}
!       if (key == "serialization")
! 	{
! 	  static const std::array<std::pair<const char *, enum sarif_serialization_kind>,
! 				  (size_t)sarif_serialization_kind::num_values> value_names
! 	    {{{"json", sarif_serialization_kind::json}}};
  
! 	  if (!parse_enum_value<enum sarif_serialization_kind>
! 		 (ctxt, unparsed_arg,
! 		  key, value,
! 		  value_names,
! 		  serialization_kind))
! 	    return nullptr;
! 	  continue;
! 	}
!       if (key == "version")
! 	{
! 	  static const std::array<std::pair<const char *, enum sarif_version>,
! 				  (size_t)sarif_version::num_versions> value_names
! 	    {{{"2.1", sarif_version::v2_1_0},
! 	      {"2.2-prerelease", sarif_version::v2_2_prerelease_2024_08_08}}};
  
! 	    if (!parse_enum_value<enum sarif_version>
! 		   (ctxt, unparsed_arg,
! 		    key, value,
! 		    value_names,
! 		    sarif_gen_opts.m_version))
! 	    return nullptr;
! 	  continue;
! 	}
!       if (key == "state-graphs")
! 	{
! 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
! 				 sarif_gen_opts.m_state_graph))
! 	    return nullptr;
! 	  continue;
! 	}
  
!       /* Key not found.  */
!       auto_vec<const char *> known_keys;
!       known_keys.safe_push ("file");
!       known_keys.safe_push ("serialization");
!       known_keys.safe_push ("state-graphs");
!       known_keys.safe_push ("version");
!       ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
! 			       known_keys);
!       return nullptr;
!     }
  
    output_file output_file_;
!   if (filename.get ())
!     output_file_ = ctxt.open_output_file (std::move (filename));
    else
      // Default filename
      {
        const char *basename = ctxt.get_base_filename ();
        if (!basename)
  	{
! 	  ctxt.report_missing_key (unparsed_arg,
! 				   "file",
  				   get_scheme_name (),
  				   "FILENAME");
  	  return nullptr;
--- 398,512 ----
        pp_markup::comma_separated_quoted_strings e (strings);
        ctxt.report_error ("%<%s%s%>:"
  			 " unrecognized format %qs; known formats: %e",
! 			 ctxt.get_option_name (), ctxt.get_unparsed_spec (),
! 			 scheme_and_kvs.m_scheme_name.c_str (), &e);
        return nullptr;
      }
  
!   /* Parse key/value pairs.  */
!   for (auto& iter : scheme_and_kvs.m_kvs)
!     {
!       const std::string &key = iter.first;
!       const std::string &value = iter.second;
!       if (!ctxt.handle_kv (key, value, *scheme_handler))
! 	return nullptr;
!     }
  
!   return scheme_handler->make_sink (ctxt, dc);
! }
  
! bool
! context::handle_kv (const std::string &key,
! 		    const std::string &value,
! 		    scheme_handler &scheme) const
  {
!   auto result = scheme.maybe_handle_kv (*this, key, value);
!   switch (result)
      {
!     default: gcc_unreachable ();
!     case key_handler::result::ok:
!       return true;
!     case key_handler::result::malformed_value:
!       return false;
!     case key_handler::result::unrecognized:
!       /* Key recognized by the scheme; try the client keys.  */
!       if (m_client_keys)
  	{
! 	  result = m_client_keys->maybe_handle_kv (*this, key, value);
! 	  switch (result)
! 	    {
! 	    default: gcc_unreachable ();
! 	    case key_handler::result::ok:
! 	      return true;
! 	    case key_handler::result::malformed_value:
! 	      return false;
! 	    case key_handler::result::unrecognized:
! 	      break;
! 	    }
  	}
!       report_unknown_key (key, scheme);
!       return false;
      }
+ }
+ 
+ /* class text_scheme_handler : public scheme_handler.  */
  
+ std::unique_ptr<sink>
+ text_scheme_handler::make_sink (const context &,
+ 				diagnostics::context &dc)
+ {
    auto sink = std::make_unique<diagnostics::text_sink> (dc);
!   sink->set_show_nesting (m_show_nesting);
!   sink->set_show_locations_in_nesting (m_show_locations_in_nesting);
!   sink->set_show_nesting_levels (m_show_levels);
!   pp_show_color (sink->get_printer ()) = m_show_color;
    return sink;
  }
  
! enum key_handler::result
! text_scheme_handler::maybe_handle_kv (const context &ctxt,
! 				      const std::string &key,
! 				      const std::string &value)
  {
!   if (key == "color")
!     return parse_bool_value (ctxt, key, value, m_show_color);
!   if (key == "show-nesting")
!     return parse_bool_value (ctxt, key, value, m_show_nesting);
!   if (key == "show-nesting-locations")
!     return parse_bool_value (ctxt, key, value,
! 			     m_show_locations_in_nesting);
!   if (key == "show-nesting-levels")
!     return parse_bool_value (ctxt, key, value, m_show_levels);
  
!   return result::unrecognized;
! }
  
! void
! text_scheme_handler::get_keys (auto_vec<const char *> &out) const
! {
!   out.safe_push ("color");
!   out.safe_push ("show-nesting");
!   out.safe_push ("show-nesting-locations");
!   out.safe_push ("show-nesting-levels");
! }
  
! /* class sarif_scheme_handler : public scheme_handler.  */
  
+ std::unique_ptr<sink>
+ sarif_scheme_handler::
+ make_sink (const context &ctxt,
+ 	   diagnostics::context &dc)
+ {
    output_file output_file_;
!   if (m_filename.get ())
!     output_file_ = ctxt.open_output_file (std::move (m_filename));
    else
      // Default filename
      {
        const char *basename = ctxt.get_base_filename ();
        if (!basename)
  	{
! 	  ctxt.report_missing_key ("file",
  				   get_scheme_name (),
  				   "FILENAME");
  	  return nullptr;
*************** sarif_scheme_handler::make_sink (const c
*** 503,523 ****
  	= open_sarif_output_file (dc,
  				  ctxt.get_affected_location_mgr (),
  				  basename,
! 				  serialization_kind);
      }
    if (!output_file_)
      return nullptr;
  
!   auto serialization_obj = make_sarif_serialization_object (serialization_kind);
  
    auto sink = make_sarif_sink (dc,
  			       *ctxt.get_affected_location_mgr (),
  			       std::move (serialization_obj),
! 			       sarif_gen_opts,
  			       std::move (output_file_));
    return sink;
  }
  
  std::unique_ptr<sarif_serialization_format>
  sarif_scheme_handler::
  make_sarif_serialization_object (enum sarif_serialization_kind kind)
--- 515,586 ----
  	= open_sarif_output_file (dc,
  				  ctxt.get_affected_location_mgr (),
  				  basename,
! 				  m_serialization_kind);
      }
    if (!output_file_)
      return nullptr;
  
!   auto serialization_obj
!     = make_sarif_serialization_object (m_serialization_kind);
  
    auto sink = make_sarif_sink (dc,
  			       *ctxt.get_affected_location_mgr (),
  			       std::move (serialization_obj),
! 			       m_generation_opts,
  			       std::move (output_file_));
+ 
    return sink;
  }
  
+ enum key_handler::result
+ sarif_scheme_handler::maybe_handle_kv (const context &ctxt,
+ 				       const std::string &key,
+ 				       const std::string &value)
+ {
+   if (key == "file")
+     {
+       m_filename = label_text::take (xstrdup (value.c_str ()));
+       return result::ok;
+     }
+   if (key == "serialization")
+     {
+       static const std::array<std::pair<const char *, enum sarif_serialization_kind>,
+ 			      (size_t)sarif_serialization_kind::num_values> value_names
+ 	{{{"json", sarif_serialization_kind::json}}};
+       return parse_enum_value<enum sarif_serialization_kind>
+ 	(ctxt,
+ 	 key, value,
+ 	 value_names,
+ 	 m_serialization_kind);
+     }
+   if (key == "version")
+     {
+       static const std::array<std::pair<const char *, enum sarif_version>,
+ 			      (size_t)sarif_version::num_versions> value_names
+ 	{{{"2.1", sarif_version::v2_1_0},
+ 	  {"2.2-prerelease", sarif_version::v2_2_prerelease_2024_08_08}}};
+       return parse_enum_value<enum sarif_version>
+ 	(ctxt,
+ 	 key, value,
+ 	 value_names,
+ 	 m_generation_opts.m_version);
+     }
+   if (key == "state-graphs")
+     return parse_bool_value (ctxt, key, value,
+ 			     m_generation_opts.m_state_graph);
+ 
+   return result::unrecognized;
+ }
+ 
+ void
+ sarif_scheme_handler::get_keys (auto_vec<const char *> &out) const
+ {
+   out.safe_push ("file");
+   out.safe_push ("serialization");
+   out.safe_push ("state-graphs");
+   out.safe_push ("version");
+ }
+ 
  std::unique_ptr<sarif_serialization_format>
  sarif_scheme_handler::
  make_sarif_serialization_object (enum sarif_serialization_kind kind)
*************** make_sarif_serialization_object (enum sa
*** 532,616 ****
      }
  }
  
! /* class html_scheme_handler : public output_factory::scheme_handler.  */
  
  std::unique_ptr<sink>
! html_scheme_handler::make_sink (const context &ctxt,
! 				diagnostics::context &dc,
! 				const char *unparsed_arg,
! 				const scheme_name_and_params &parsed_arg) const
  {
-   label_text filename;
-   html_generation_options html_gen_opts;
-   for (auto& iter : parsed_arg.m_kvs)
-     {
-       const std::string &key = iter.first;
-       const std::string &value = iter.second;
-       if (key == "css")
- 	{
- 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
- 				 html_gen_opts.m_css))
- 	    return nullptr;
- 	  continue;
- 	}
-       if (key == "file")
- 	{
- 	  filename = label_text::take (xstrdup (value.c_str ()));
- 	  continue;
- 	}
-       if (key == "javascript")
- 	{
- 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
- 				 html_gen_opts.m_javascript))
- 	    return nullptr;
- 	  continue;
- 	}
-       if (key == "show-state-diagrams")
- 	{
- 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
- 				 html_gen_opts.m_show_state_diagrams))
- 	    return nullptr;
- 	  continue;
- 	}
-       if (key == "show-state-diagrams-dot-src")
- 	{
- 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
- 				 html_gen_opts.m_show_state_diagrams_dot_src))
- 	    return nullptr;
- 	  continue;
- 	}
-       if (key == "show-state-diagrams-sarif")
- 	{
- 	  if (!parse_bool_value (ctxt, unparsed_arg, key, value,
- 				 html_gen_opts.m_show_state_diagrams_sarif))
- 	    return nullptr;
- 	  continue;
- 	}
- 
-       /* Key not found.  */
-       auto_vec<const char *> known_keys;
-       known_keys.safe_push ("css");
-       known_keys.safe_push ("file");
-       known_keys.safe_push ("javascript");
-       known_keys.safe_push ("show-state-diagrams");
-       known_keys.safe_push ("show-state-diagram-dot-src");
-       known_keys.safe_push ("show-state-diagram-sarif");
-       ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (),
- 			       known_keys);
-       return nullptr;
-     }
- 
    output_file output_file_;
!   if (filename.get ())
!     output_file_ = ctxt.open_output_file (std::move (filename));
    else
      // Default filename
      {
        const char *basename = ctxt.get_base_filename ();
        if (!basename)
  	{
! 	  ctxt.report_missing_key (unparsed_arg,
! 				   "file",
  				   get_scheme_name (),
  				   "FILENAME");
  	  return nullptr;
--- 595,617 ----
      }
  }
  
! /* class html_scheme_handler : public scheme_handler.  */
  
  std::unique_ptr<sink>
! html_scheme_handler::
! make_sink (const context &ctxt,
! 	   diagnostics::context &dc)
  {
    output_file output_file_;
!   if (m_filename.get ())
!     output_file_ = ctxt.open_output_file (std::move (m_filename));
    else
      // Default filename
      {
        const char *basename = ctxt.get_base_filename ();
        if (!basename)
  	{
! 	  ctxt.report_missing_key ("file",
  				   get_scheme_name (),
  				   "FILENAME");
  	  return nullptr;
*************** html_scheme_handler::make_sink (const co
*** 626,636 ****
  
    auto sink = make_html_sink (dc,
  			      *ctxt.get_affected_location_mgr (),
! 			      html_gen_opts,
  			      std::move (output_file_));
    return sink;
  }
  
  } // namespace output_spec
  
  #if CHECKING_P
--- 627,675 ----
  
    auto sink = make_html_sink (dc,
  			      *ctxt.get_affected_location_mgr (),
! 			      m_html_gen_opts,
  			      std::move (output_file_));
    return sink;
  }
  
+ enum key_handler::result
+ html_scheme_handler::maybe_handle_kv (const context &ctxt,
+ 				      const std::string &key,
+ 				      const std::string &value)
+ {
+   if (key == "css")
+     return parse_bool_value (ctxt, key, value, m_html_gen_opts.m_css);
+   if (key == "file")
+     {
+       m_filename = label_text::take (xstrdup (value.c_str ()));
+       return result::ok;
+     }
+   if (key == "javascript")
+     return parse_bool_value (ctxt, key, value,
+ 			     m_html_gen_opts.m_javascript);
+   if (key == "show-state-diagrams")
+     return parse_bool_value (ctxt, key, value,
+ 			     m_html_gen_opts.m_show_state_diagrams);
+   if (key == "show-state-diagrams-dot-src")
+     return parse_bool_value (ctxt, key, value,
+ 			     m_html_gen_opts.m_show_state_diagrams_dot_src);
+   if (key == "show-state-diagrams-sarif")
+     return parse_bool_value (ctxt, key, value,
+ 			     m_html_gen_opts.m_show_state_diagrams_sarif);
+   return result::unrecognized;
+ }
+ 
+ void
+ html_scheme_handler::get_keys (auto_vec<const char *> &out) const
+ {
+   out.safe_push ("css");
+   out.safe_push ("file");
+   out.safe_push ("javascript");
+   out.safe_push ("show-state-diagrams");
+   out.safe_push ("show-state-diagrams-dot-src");
+   out.safe_push ("show-state-diagrams-sarif");
+ }
+ 
  } // namespace output_spec
  
  #if CHECKING_P
*************** struct parser_test
*** 665,679 ****
    class test_spec_context : public diagnostics::output_spec::dc_spec_context
    {
    public:
!     test_spec_context (diagnostics::context &dc,
  		       line_maps *location_mgr,
! 		       location_t loc,
! 		       const char *option_name)
!     : dc_spec_context (dc,
  		       location_mgr,
  		       location_mgr,
! 		       loc,
! 		       option_name)
      {
      }
  
--- 704,722 ----
    class test_spec_context : public diagnostics::output_spec::dc_spec_context
    {
    public:
!     test_spec_context (const char *option_name,
! 		       const char *unparsed_spec,
! 		       diagnostics::output_spec::key_handler *client_keys,
  		       line_maps *location_mgr,
! 		       diagnostics::context &dc,
! 		       location_t loc)
!     : dc_spec_context (option_name,
! 		       unparsed_spec,
! 		       client_keys,
  		       location_mgr,
+ 		       dc,
  		       location_mgr,
! 		       loc)
      {
      }
  
*************** struct parser_test
*** 684,701 ****
      }
    };
  
!   parser_test ()
    : m_dc (),
!     m_ctxt (m_dc, line_table, UNKNOWN_LOCATION, "-fOPTION="),
      m_fmt (m_dc.get_sink (0))
    {
      pp_buffer (m_fmt.get_printer ())->m_flush_p = false;
    }
  
    std::unique_ptr<diagnostics::output_spec::scheme_name_and_params>
!   parse (const char *unparsed_arg)
    {
!     return diagnostics::output_spec::parse (m_ctxt, unparsed_arg);
    }
  
    bool execution_failed_p () const
--- 727,756 ----
      }
    };
  
!   parser_test (const char *unparsed_spec,
! 	       diagnostics::output_spec::key_handler *client_keys = nullptr)
    : m_dc (),
!     m_ctxt ("-fOPTION=",
! 	    unparsed_spec,
! 	    client_keys,
! 	    line_table,
! 	    m_dc,
! 	    UNKNOWN_LOCATION),
      m_fmt (m_dc.get_sink (0))
    {
      pp_buffer (m_fmt.get_printer ())->m_flush_p = false;
    }
  
    std::unique_ptr<diagnostics::output_spec::scheme_name_and_params>
!   parse ()
    {
!     return diagnostics::output_spec::parse (m_ctxt);
!   }
! 
!   std::unique_ptr<diagnostics::sink>
!   parse_and_make_sink ()
!   {
!     return m_ctxt.parse_and_make_sink (m_dc);
    }
  
    bool execution_failed_p () const
*************** private:
*** 720,732 ****
  static void
  test_output_arg_parsing ()
  {
-   auto_fix_quotes fix_quotes;
-   auto_fix_progname fix_progname;
- 
    /* Minimal correct example.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo");
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 0);
      ASSERT_FALSE (pt.execution_failed_p ());
--- 775,784 ----
  static void
  test_output_arg_parsing ()
  {
    /* Minimal correct example.  */
    {
!     parser_test pt ("foo");
!     auto result = pt.parse ();
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 0);
      ASSERT_FALSE (pt.execution_failed_p ());
*************** test_output_arg_parsing ()
*** 734,741 ****
  
    /* Stray trailing colon with no key/value pairs.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:");
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
--- 786,793 ----
  
    /* Stray trailing colon with no key/value pairs.  */
    {
!     parser_test pt ("foo:");
!     auto result = pt.parse ();
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
*************** test_output_arg_parsing ()
*** 747,754 ****
  
    /* No key before '='.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:=");
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
--- 799,806 ----
  
    /* No key before '='.  */
    {
!     parser_test pt ("foo:=");
!     auto result = pt.parse ();
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
*************** test_output_arg_parsing ()
*** 760,767 ****
  
    /* No value for key.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:key,");
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
--- 812,819 ----
  
    /* No value for key.  */
    {
!     parser_test pt ("foo:key,");
!     auto result = pt.parse ();
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
*************** test_output_arg_parsing ()
*** 773,780 ****
  
    /* Correct example, with one key/value pair.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:key=value");
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 1);
      ASSERT_EQ (result->m_kvs[0].first, "key");
--- 825,832 ----
  
    /* Correct example, with one key/value pair.  */
    {
!     parser_test pt ("foo:key=value");
!     auto result = pt.parse ();
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 1);
      ASSERT_EQ (result->m_kvs[0].first, "key");
*************** test_output_arg_parsing ()
*** 784,791 ****
  
    /* Stray trailing comma.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:key=value,");
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
--- 836,843 ----
  
    /* Stray trailing comma.  */
    {
!     parser_test pt ("foo:key=value,");
!     auto result = pt.parse ();
      ASSERT_EQ (result, nullptr);
      ASSERT_TRUE (pt.execution_failed_p ());
      ASSERT_STREQ (pt.get_diagnostic_text (),
*************** test_output_arg_parsing ()
*** 797,804 ****
  
    /* Correct example, with two key/value pairs.  */
    {
!     parser_test pt;
!     auto result = pt.parse ("foo:color=red,shape=circle");
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 2);
      ASSERT_EQ (result->m_kvs[0].first, "color");
--- 849,856 ----
  
    /* Correct example, with two key/value pairs.  */
    {
!     parser_test pt ("foo:color=red,shape=circle");
!     auto result = pt.parse ();
      ASSERT_EQ (result->m_scheme_name, "foo");
      ASSERT_EQ (result->m_kvs.size (), 2);
      ASSERT_EQ (result->m_kvs[0].first, "color");
*************** test_output_arg_parsing ()
*** 809,820 ****
--- 861,919 ----
    }
  }
  
+ class test_key_handler : public diagnostics::output_spec::key_handler
+ {
+ public:
+   test_key_handler ()
+   : m_verbose (false),
+     m_strict (false)
+   {
+   }
+ 
+   enum result
+   maybe_handle_kv (const diagnostics::output_spec::context &ctxt,
+ 		   const std::string &key,
+ 		   const std::string &value) final override
+   {
+     if (key == "verbose")
+       return parse_bool_value (ctxt, key, value, m_verbose);
+     if (key == "strict")
+       return parse_bool_value (ctxt, key, value, m_strict);
+     return result::unrecognized;
+   }
+ 
+   void
+   get_keys (auto_vec<const char *> &out_known_keys) const final override
+   {
+     out_known_keys.safe_push ("verbose");
+     out_known_keys.safe_push ("strict");
+   }
+ 
+   bool m_verbose;
+   bool m_strict;
+ };
+ 
+ static void
+ test_client_arg_parsing ()
+ {
+   test_key_handler client_keys;
+   parser_test pt ("text:verbose=yes,strict=no", &client_keys);
+   auto result = pt.parse_and_make_sink ();
+   ASSERT_TRUE (result.get ());
+   ASSERT_TRUE (client_keys.m_verbose);
+   ASSERT_FALSE (client_keys.m_strict);
+ }
+ 
  /* Run all of the selftests within this file.  */
  
  void
  output_spec_cc_tests ()
  {
+   auto_fix_quotes fix_quotes;
+   auto_fix_progname fix_progname;
+ 
    test_output_arg_parsing ();
+   test_client_arg_parsing ();
  }
  
  } // namespace diagnostics::selftest
diff -Nrcpad gcc-16-20250928/gcc/diagnostics/output-spec.h gcc-16-20251005/gcc/diagnostics/output-spec.h
*** gcc-16-20250928/gcc/diagnostics/output-spec.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/diagnostics/output-spec.h	Sun Oct  5 22:32:15 2025
*************** along with GCC; see the file COPYING3.
*** 27,55 ****
  namespace diagnostics {
  namespace output_spec {
  
  /* An abstract base class for handling the DSL of -fdiagnostics-add-output=
     and -fdiagnostics-set-output=.  */
  
  class context
  {
!  public:
    std::unique_ptr<sink>
!   parse_and_make_sink (const char *,
! 		       diagnostics::context &dc);
  
    void
    report_error (const char *gmsgid, ...) const
      ATTRIBUTE_GCC_DIAG(2,3);
  
    void
!   report_unknown_key (const char *unparsed_arg,
! 		      const std::string &key,
! 		      const std::string &scheme_name,
! 		      auto_vec<const char *> &known_keys) const;
  
    void
!   report_missing_key (const char *unparsed_arg,
! 		      const std::string &key,
  		      const std::string &scheme_name,
  		      const char *metavar) const;
  
--- 27,110 ----
  namespace diagnostics {
  namespace output_spec {
  
+ class context;
+ 
+ /* An abstract base class for schemes, and for client-specific keys.  */
+ 
+ class key_handler
+ {
+ public:
+   enum class result
+   {
+     ok,
+     unrecognized,
+     malformed_value
+   };
+ 
+   /* Attempt to decode KEY and VALUE, storing the decoded value.  */
+   virtual enum result
+   maybe_handle_kv (const context &ctxt,
+ 		   const std::string &key,
+ 		   const std::string &value) = 0;
+ 
+   virtual void
+   get_keys (auto_vec<const char *> &out) const = 0;
+ 
+   enum result
+   parse_bool_value (const context &ctxt,
+ 		    const std::string &key,
+ 		    const std::string &value,
+ 		    bool &out) const;
+ 
+   template <typename EnumType, size_t NumValues>
+   enum result
+   parse_enum_value (const context &ctxt,
+ 		    const std::string &key,
+ 		    const std::string &value,
+ 		    const std::array<std::pair<const char *, EnumType>,
+ 				     NumValues> &value_names,
+ 		    EnumType &out) const;
+ };
+ 
+ /* Abstract subclass for handling particular schemes and their keys.  */
+ 
+ class scheme_handler : public key_handler
+ {
+ public:
+   scheme_handler (std::string scheme_name)
+     : m_scheme_name (std::move (scheme_name))
+   {}
+   virtual ~scheme_handler () {}
+ 
+   const std::string &get_scheme_name () const { return m_scheme_name; }
+ 
+   virtual std::unique_ptr<sink>
+   make_sink (const context &ctxt,
+ 	     diagnostics::context &dc) = 0;
+ 
+ private:
+   const std::string m_scheme_name;
+ };
+ 
  /* An abstract base class for handling the DSL of -fdiagnostics-add-output=
     and -fdiagnostics-set-output=.  */
  
  class context
  {
! public:
    std::unique_ptr<sink>
!   parse_and_make_sink (diagnostics::context &dc);
  
    void
    report_error (const char *gmsgid, ...) const
      ATTRIBUTE_GCC_DIAG(2,3);
  
    void
!   report_unknown_key (const std::string &key,
! 		      const scheme_handler &scheme) const;
  
    void
!   report_missing_key (const std::string &key,
  		      const std::string &scheme_name,
  		      const char *metavar) const;
  
*************** class context
*** 59,64 ****
--- 114,122 ----
    const char *
    get_option_name () const { return m_option_name; }
  
+   const char *
+   get_unparsed_spec () const { return m_unparsed_spec;  }
+ 
    line_maps *
    get_affected_location_mgr () const { return m_affected_location_mgr; }
  
*************** class context
*** 70,84 ****
--- 128,159 ----
    virtual const char *
    get_base_filename () const = 0;
  
+   bool
+   handle_kv (const std::string &key,
+ 	     const std::string &value,
+ 	     scheme_handler &scheme) const;
+ 
  protected:
    context (const char *option_name,
+ 	   const char *unparsed_spec,
+ 	   key_handler *client_keys,
  	   line_maps *affected_location_mgr)
    : m_option_name (option_name),
+     m_unparsed_spec (unparsed_spec),
+     m_client_keys (client_keys),
      m_affected_location_mgr (affected_location_mgr)
    {
    }
  
+   // e.g. "-fdiagnostics-add-output="
    const char *m_option_name;
+ 
+   // e.g. "scheme:foo=bar,key=value"
+   const char *m_unparsed_spec;
+ 
+   // Optional borrowed ptr to client-specific keys
+   key_handler *m_client_keys;
+ 
    line_maps *m_affected_location_mgr;
  };
  
*************** protected:
*** 87,98 ****
  struct dc_spec_context : public output_spec::context
  {
  public:
!   dc_spec_context (diagnostics::context &dc,
  		   line_maps *affected_location_mgr,
  		   line_maps *control_location_mgr,
! 		   location_t loc,
! 		   const char *option_name)
!   : context (option_name, affected_location_mgr),
      m_dc (dc),
      m_control_location_mgr (control_location_mgr),
      m_loc (loc)
--- 162,178 ----
  struct dc_spec_context : public output_spec::context
  {
  public:
!   dc_spec_context (const char *option_name,
! 		   const char *unparsed_spec,
! 		   key_handler *client_keys,
  		   line_maps *affected_location_mgr,
+ 		   diagnostics::context &dc,
  		   line_maps *control_location_mgr,
! 		   location_t loc)
!     : context (option_name,
! 	       unparsed_spec,
! 	       client_keys,
! 	       affected_location_mgr),
      m_dc (dc),
      m_control_location_mgr (control_location_mgr),
      m_loc (loc)
diff -Nrcpad gcc-16-20250928/gcc/doc/invoke.texi gcc-16-20251005/gcc/doc/invoke.texi
*** gcc-16-20250928/gcc/doc/invoke.texi	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/doc/invoke.texi	Sun Oct  5 22:32:15 2025
*************** in the following sections.
*** 272,278 ****
  -Woverloaded-virtual  -Wno-pmf-conversions -Wself-move -Wsign-promo
  -Wsized-deallocation  -Wsuggest-final-methods
  -Wsuggest-final-types  -Wsuggest-override  -Wno-template-body
! -Wno-template-id-cdtor  -Wtemplate-names-tu-local
  -Wno-terminate  -Wno-vexing-parse  -Wvirtual-inheritance
  -Wno-virtual-move-assign  -Wvolatile}
  
--- 272,278 ----
  -Woverloaded-virtual  -Wno-pmf-conversions -Wself-move -Wsign-promo
  -Wsized-deallocation  -Wsuggest-final-methods
  -Wsuggest-final-types  -Wsuggest-override  -Wno-template-body
! -Wno-template-id-cdtor  -Wtemplate-names-tu-local -Wno-external-tu-local
  -Wno-terminate  -Wno-vexing-parse  -Wvirtual-inheritance
  -Wno-virtual-move-assign  -Wvolatile}
  
*************** The presence of an explicit instantiatio
*** 4759,4764 ****
--- 4759,4790 ----
  
  This flag is enabled by @option{-Wextra}.
  
+ @opindex Wexternal-tu-local
+ @opindex Wno-external-tu-local
+ @item -Wno-external-tu-local
+ Warn when naming a TU-local entity outside of the translation unit it
+ was declared in.  Such declarations will be ignored during name lookup.
+ This can occur when performing ADL from a template declared in the same
+ TU as the internal function:
+ 
+ @smallexample
+ export module M;
+ template <typename T> void foo(T t) @{
+   bar(t);
+ @}
+ struct S @{@} s;
+ static void bar(S) @{@}  // internal linkage
+ 
+ // instantiating foo(s) from outside this TU can see ::bar,
+ // but naming it there is ill-formed.
+ @end smallexample
+ 
+ This can be worked around by making @code{bar} attached to the global
+ module, using @code{extern "C++"}.
+ 
+ This warning is enabled by default, and is upgraded to an error by
+ @option{-pedantic-errors}.
+ 
  @opindex Wterminate
  @opindex Wno-terminate
  @item -Wno-terminate @r{(C++ and Objective-C++ only)}
*************** and @option{-fauto-profile}.
*** 14725,14751 ****
  
  @opindex ftrivial-auto-var-init
  @item -ftrivial-auto-var-init=@var{choice}
! Initialize automatic variables with either a pattern or with zeroes to increase
! the security and predictability of a program by preventing uninitialized memory
! disclosure and use.
  GCC still considers an automatic variable that doesn't have an explicit
  initializer as uninitialized, @option{-Wuninitialized} and
  @option{-Wanalyzer-use-of-uninitialized-value} will still report
! warning messages on such automatic variables and the compiler will
! perform optimization as if the variable were uninitialized.
  With this option, GCC will also initialize any padding of automatic variables
! that have structure or union types to zeroes.
! However, the current implementation cannot initialize automatic variables that
! are declared between the controlling expression and the first case of a
! @code{switch} statement.  Using @option{-Wtrivial-auto-var-init} to report all
! such cases.
  
  The three values of @var{choice} are:
  
  @itemize @bullet
  @item
  @samp{uninitialized} doesn't initialize any automatic variables.
- This is C and C++'s default.
  
  @item
  @samp{pattern} Initialize automatic variables with values which will likely
--- 14751,14775 ----
  
  @opindex ftrivial-auto-var-init
  @item -ftrivial-auto-var-init=@var{choice}
! Initialize automatic variables or temporary objects with either a pattern or with
! zeroes to increase the security and predictability of a program by preventing
! uninitialized memory disclosure and use.
  GCC still considers an automatic variable that doesn't have an explicit
  initializer as uninitialized, @option{-Wuninitialized} and
  @option{-Wanalyzer-use-of-uninitialized-value} will still report
! warning messages on such automatic variables or temporary objects and the
! compiler will perform optimization as if the variable were uninitialized.
  With this option, GCC will also initialize any padding of automatic variables
! or temporary objects that have structure or union types to zeroes.
! However, the current implementation cannot initialize automatic variables
! whose initialization is bypassed through @code{switch} or @code{goto}
! statement.  Using @option{-Wtrivial-auto-var-init} to report all such cases.
  
  The three values of @var{choice} are:
  
  @itemize @bullet
  @item
  @samp{uninitialized} doesn't initialize any automatic variables.
  
  @item
  @samp{pattern} Initialize automatic variables with values which will likely
*************** The values used for pattern initializati
*** 14759,14765 ****
  @samp{zero} Initialize automatic variables with zeroes.
  @end itemize
  
! The default is @samp{uninitialized}.
  
  Note that the initializer values, whether @samp{zero} or @samp{pattern},
  refer to data representation (in memory or machine registers), rather
--- 14783,14792 ----
  @samp{zero} Initialize automatic variables with zeroes.
  @end itemize
  
! The default is @samp{uninitialized} except for C++26, in which case
! if @option{-ftrivial-auto-var-init=} is not specified at all automatic
! variables or temporary objects are zero initialized, but zero initialization
! of padding bits does not happen.
  
  Note that the initializer values, whether @samp{zero} or @samp{pattern},
  refer to data representation (in memory or machine registers), rather
*************** with the bit patterns @code{0x00} or @co
*** 14772,14778 ****
  @var{choice}, whether or not these representations stand for values in
  that range, and even if they do, the interpretation of the value held by
  the variable will depend on the bias.  A @samp{hardbool} variable that
! uses say @code{0X5A} and @code{0xA5} for @code{false} and @code{true},
  respectively, will trap with either @samp{choice} of trivial
  initializer, i.e., @samp{zero} initialization will not convert to the
  representation for @code{false}, even if it would for a @code{static}
--- 14799,14805 ----
  @var{choice}, whether or not these representations stand for values in
  that range, and even if they do, the interpretation of the value held by
  the variable will depend on the bias.  A @samp{hardbool} variable that
! uses say @code{0x5A} and @code{0xA5} for @code{false} and @code{true},
  respectively, will trap with either @samp{choice} of trivial
  initializer, i.e., @samp{zero} initialization will not convert to the
  representation for @code{false}, even if it would for a @code{static}
*************** are initialized with @code{false} (zero)
*** 14783,14789 ****
  requested.
  
  You can control this behavior for a specific variable by using the variable
! attribute @code{uninitialized} (@pxref{Variable Attributes}).
  
  @opindex fvect-cost-model
  @item -fvect-cost-model=@var{model}
--- 14810,14817 ----
  requested.
  
  You can control this behavior for a specific variable by using the variable
! attribute @code{uninitialized} standard attribute (@pxref{Variable Attributes})
! or the C++26 @code{[[indeterminate]]}.
  
  @opindex fvect-cost-model
  @item -fvect-cost-model=@var{model}
*************** In each case, the @var{value} is an inte
*** 16245,16250 ****
--- 16273,16283 ----
  of @var{name} are recognized for all targets:
  
  @table @gcctabopt
+ @item auto-profile-bbs
+ If non-zero and used together with @option{-fauto-profile}, the auto-profile
+ will be used to determine basic block profile.  If zero, then only function
+ level profile will be read.
+ 
  @item phiopt-factor-max-stmts-live
  When factoring statements out of if/then/else, this is the max # of statements
  after the defining statement to be allow to extend the lifetime of a name
diff -Nrcpad gcc-16-20250928/gcc/doc/passes.texi gcc-16-20251005/gcc/doc/passes.texi
*** gcc-16-20250928/gcc/doc/passes.texi	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/doc/passes.texi	Sun Oct  5 22:32:15 2025
*************** cannot be used for branch prediction (th
*** 735,746 ****
  not be difficult).  The pass is located in @file{tree-vrp.cc} and is
  described by @code{pass_vrp}.
  
- @item Folding built-in functions
- 
- This pass simplifies built-in functions, as applicable, with constant
- arguments or with inferable string lengths.  It is located in
- @file{tree-ssa-ccp.cc} and is described by @code{pass_fold_builtins}.
- 
  @item Split critical edges
  
  This pass identifies critical edges and inserts empty basic blocks
--- 735,740 ----
diff -Nrcpad gcc-16-20250928/gcc/doc/tm.texi gcc-16-20251005/gcc/doc/tm.texi
*** gcc-16-20250928/gcc/doc/tm.texi	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/doc/tm.texi	Sun Oct  5 22:32:15 2025
*************** This target hook returns @code{true} if
*** 10983,10988 ****
--- 10983,11007 ----
  @var{fn1} and @var{fn2} imply the same function version.
  @end deftypefn
  
+ @deftypefn {Target Hook} bool TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A (tree @var{decl_a}, tree @var{decl_v}, tree @var{base})
+ @var{decl_b} is a function declaration with a function multi-versioning
+ (FMV) attribute; this attribute is either @code{target} or
+ @code{target_version}, depending on @code{TARGET_HAS_FMV_TARGET_ATTRIBUTE}.
+ @var{decl_a} is a function declaration that may or may not have an FMV
+ attribute.
+ 
+ Return true if we have enough information to determine that the
+ requirements of @var{decl_b}'s FMV attribute are met whenever @var{decl_a}
+ is executed, given that the target supports all features required by
+ function declaration @var{base}.
+ 
+ The default implementation just checks whether @var{decl_a} has the same
+ FMV attribute as @var{decl_b}.  This is conservatively correct,
+ but ports can do better by taking the relationships between architecture
+ features into account.  For example, on AArch64, @code{sve} is present
+ whenever @code{sve2} is present.
+ @end deftypefn
+ 
  @deftypefn {Target Hook} bool TARGET_CAN_INLINE_P (tree @var{caller}, tree @var{callee})
  This target hook returns @code{false} if the @var{caller} function
  cannot inline @var{callee}, based on target specific information.  By
diff -Nrcpad gcc-16-20250928/gcc/doc/tm.texi.in gcc-16-20251005/gcc/doc/tm.texi.in
*** gcc-16-20250928/gcc/doc/tm.texi.in	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/doc/tm.texi.in	Sun Oct  5 22:32:15 2025
*************** with the target specific attributes.  Th
*** 7142,7147 ****
--- 7142,7149 ----
  
  @hook TARGET_OPTION_SAME_FUNCTION_VERSIONS
  
+ @hook TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A
+ 
  @hook TARGET_CAN_INLINE_P
  
  @hook TARGET_UPDATE_IPA_FN_TARGET_INFO
diff -Nrcpad gcc-16-20250928/gcc/flag-types.h gcc-16-20251005/gcc/flag-types.h
*** gcc-16-20250928/gcc/flag-types.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/flag-types.h	Sun Oct  5 22:32:15 2025
*************** enum vect_cost_model {
*** 288,294 ****
  enum auto_init_type {
    AUTO_INIT_UNINITIALIZED = 0,
    AUTO_INIT_PATTERN = 1,
!   AUTO_INIT_ZERO = 2
  };
  
  /* Initialization of padding bits with zeros.  */
--- 288,295 ----
  enum auto_init_type {
    AUTO_INIT_UNINITIALIZED = 0,
    AUTO_INIT_PATTERN = 1,
!   AUTO_INIT_ZERO = 2,
!   AUTO_INIT_CXX26 = 3
  };
  
  /* Initialization of padding bits with zeros.  */
diff -Nrcpad gcc-16-20250928/gcc/fold-const.cc gcc-16-20251005/gcc/fold-const.cc
*** gcc-16-20250928/gcc/fold-const.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fold-const.cc	Sun Oct  5 22:32:15 2025
*************** along with GCC; see the file COPYING3.
*** 25,31 ****
    @@ This would also make life easier when this technology is used
    @@ for cross-compilers.  */
  
! /* The entry points in this file are fold, size_int_wide and size_binop.
  
     fold takes a tree as argument and returns a simplified tree.
  
--- 25,31 ----
    @@ This would also make life easier when this technology is used
    @@ for cross-compilers.  */
  
! /* The entry points in this file are fold, size_int and size_binop.
  
     fold takes a tree as argument and returns a simplified tree.
  
diff -Nrcpad gcc-16-20250928/gcc/fortran/ChangeLog gcc-16-20251005/gcc/fortran/ChangeLog
*** gcc-16-20250928/gcc/fortran/ChangeLog	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/ChangeLog	Sun Oct  5 22:32:15 2025
***************
*** 1,3 ****
--- 1,45 ----
+ 2025-10-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107968
+ 	* trans-io.cc (gfc_trans_transfer): Also scalarize I/O of section
+ 	of an array pointer.
+ 
+ 2025-10-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/122089
+ 	* decl.cc (gfc_get_pdt_instance): If gfc_extract_int is true an
+ 	error has occurred because the kind expr was not provided. Use
+ 	the template in this case and return MATCH_YES.
+ 
+ 2025-10-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122080
+ 	* trans-array.cc (gfc_conv_array_parameter): Wrap the derivation of
+ 	bounds and strides for the descriptor of an optional dummy array
+ 	argument by a test on argument presence when it is supposed to be
+ 	passed to an optional argument.
+ 
+ 2025-10-01  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/122089
+ 	* decl.cc (gfc_get_pdt_instance): If the pdt_template is use
+ 	associated, 'module' field should be copied to this instance.
+ 
+ 2025-09-30  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102241
+ 	* gfortran.h: Add symbol attribute 'pdt_comp'.
+ 	* module.cc : Add 'pdt_comp' to 'ab_attribute' and 'attr_bits'.
+ 	(mio_symbol_attribute): Set 'pdt_comp'.
+ 	* resolve.cc (resolve_component): If a PDT component is found
+ 	in a non-PDT type, generate the PDT instance, if necessary, and
+ 	set the 'pdt_comp' attribute. Fix some whitespace issues.
+ 	* trans-decl.cc (gfc_get_symbol_decl, gfc_trans_deferred_vars):
+ 	If 'pdt_comp' set, initialize the PDT components.
+ 	* trans-stmt.cc (gfc_trans_deallocate): Verify that a typespec
+ 	parameter list is available for PDT components of ordinary
+ 	derived types.
+ 
  2025-09-27  Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/87908
diff -Nrcpad gcc-16-20250928/gcc/fortran/decl.cc gcc-16-20251005/gcc/fortran/decl.cc
*** gcc-16-20250928/gcc/fortran/decl.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/decl.cc	Sun Oct  5 22:32:15 2025
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 4038,4044 ****
  	}
  
        kind_value = 0;
!       gfc_extract_int (kind_expr, &kind_value);
        sprintf (name + strlen (name), "_%d", kind_value);
  
        if (!name_seen && actual_param)
--- 4038,4052 ----
  	}
  
        kind_value = 0;
!       /* This can come about during the parsing of nested pdt_templates. An
! 	 error arises because the KIND parameter expression has not been
! 	 provided. Use the template instead of an incorrect instance.  */
!       if (gfc_extract_int (kind_expr, &kind_value))
! 	{
! 	  gfc_free_actual_arglist (type_param_spec_list);
! 	  return MATCH_YES;
! 	}
! 
        sprintf (name + strlen (name), "_%d", kind_value);
  
        if (!name_seen && actual_param)
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 4076,4081 ****
--- 4084,4091 ----
  
    /* Start building the new instance of the parameterized type.  */
    gfc_copy_attr (&instance->attr, &pdt->attr, &pdt->declared_at);
+   if (pdt->attr.use_assoc)
+     instance->module = pdt->module;
    instance->attr.pdt_template = 0;
    instance->attr.pdt_type = 1;
    instance->declared_at = gfc_current_locus;
diff -Nrcpad gcc-16-20250928/gcc/fortran/gfortran.h gcc-16-20251005/gcc/fortran/gfortran.h
*** gcc-16-20250928/gcc/fortran/gfortran.h	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/gfortran.h	Sun Oct  5 22:32:15 2025
*************** typedef struct
*** 1033,1039 ****
    /* These are the attributes required for parameterized derived
       types.  */
    unsigned pdt_kind:1, pdt_len:1, pdt_type:1, pdt_template:1,
! 	   pdt_array:1, pdt_string:1;
  
    /* This is omp_{out,in,priv,orig} artificial variable in
       !$OMP DECLARE REDUCTION.  */
--- 1033,1039 ----
    /* These are the attributes required for parameterized derived
       types.  */
    unsigned pdt_kind:1, pdt_len:1, pdt_type:1, pdt_template:1,
! 	   pdt_array:1, pdt_string:1, pdt_comp:1;
  
    /* This is omp_{out,in,priv,orig} artificial variable in
       !$OMP DECLARE REDUCTION.  */
diff -Nrcpad gcc-16-20250928/gcc/fortran/module.cc gcc-16-20251005/gcc/fortran/module.cc
*** gcc-16-20250928/gcc/fortran/module.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/module.cc	Sun Oct  5 22:32:15 2025
*************** enum ab_attribute
*** 2093,2099 ****
    AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
    AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK,
    AB_OMP_DECLARE_TARGET_LINK, AB_PDT_KIND, AB_PDT_LEN, AB_PDT_TYPE,
!   AB_PDT_TEMPLATE, AB_PDT_ARRAY, AB_PDT_STRING,
    AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER,
    AB_OACC_ROUTINE_LOP_VECTOR, AB_OACC_ROUTINE_LOP_SEQ,
    AB_OACC_ROUTINE_NOHOST,
--- 2093,2099 ----
    AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
    AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK,
    AB_OMP_DECLARE_TARGET_LINK, AB_PDT_KIND, AB_PDT_LEN, AB_PDT_TYPE,
!   AB_PDT_COMP, AB_PDT_TEMPLATE, AB_PDT_ARRAY, AB_PDT_STRING,
    AB_OACC_ROUTINE_LOP_GANG, AB_OACC_ROUTINE_LOP_WORKER,
    AB_OACC_ROUTINE_LOP_VECTOR, AB_OACC_ROUTINE_LOP_SEQ,
    AB_OACC_ROUTINE_NOHOST,
*************** static const mstring attr_bits[] =
*** 2172,2177 ****
--- 2172,2178 ----
      minit ("PDT_TEMPLATE", AB_PDT_TEMPLATE),
      minit ("PDT_ARRAY", AB_PDT_ARRAY),
      minit ("PDT_STRING", AB_PDT_STRING),
+     minit ("PDT_COMP", AB_PDT_COMP),
      minit ("OACC_ROUTINE_LOP_GANG", AB_OACC_ROUTINE_LOP_GANG),
      minit ("OACC_ROUTINE_LOP_WORKER", AB_OACC_ROUTINE_LOP_WORKER),
      minit ("OACC_ROUTINE_LOP_VECTOR", AB_OACC_ROUTINE_LOP_VECTOR),
*************** mio_symbol_attribute (symbol_attribute *
*** 2404,2409 ****
--- 2405,2412 ----
  	MIO_NAME (ab_attribute) (AB_PDT_LEN, attr_bits);
        if (attr->pdt_type)
  	MIO_NAME (ab_attribute) (AB_PDT_TYPE, attr_bits);
+       if (attr->pdt_comp)
+ 	MIO_NAME (ab_attribute) (AB_PDT_COMP , attr_bits);
        if (attr->pdt_template)
  	MIO_NAME (ab_attribute) (AB_PDT_TEMPLATE, attr_bits);
        if (attr->pdt_array)
*************** mio_symbol_attribute (symbol_attribute *
*** 2681,2686 ****
--- 2684,2692 ----
  	    case AB_PDT_TYPE:
  	      attr->pdt_type = 1;
  	      break;
+ 	    case AB_PDT_COMP:
+ 	      attr->pdt_comp = 1;
+ 	      break;
  	    case AB_PDT_TEMPLATE:
  	      attr->pdt_template = 1;
  	      break;
diff -Nrcpad gcc-16-20250928/gcc/fortran/resolve.cc gcc-16-20251005/gcc/fortran/resolve.cc
*** gcc-16-20250928/gcc/fortran/resolve.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/resolve.cc	Sun Oct  5 22:32:15 2025
*************** resolve_component (gfc_component *c, gfc
*** 16663,16668 ****
--- 16663,16688 ----
        return false;
      }
  
+   if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.pdt_template
+       && !sym->attr.pdt_type && !sym->attr.pdt_template
+       && !(gfc_get_derived_super_type (sym)
+ 	   && (gfc_get_derived_super_type (sym)->attr.pdt_type
+ 	       ||  gfc_get_derived_super_type (sym)->attr.pdt_template)))
+     {
+       gfc_actual_arglist *type_spec_list;
+       if (gfc_get_pdt_instance (c->param_list, &c->ts.u.derived,
+ 				&type_spec_list)
+ 	  != MATCH_YES)
+ 	return false;
+       gfc_free_actual_arglist (c->param_list);
+       c->param_list = type_spec_list;
+       if (!sym->attr.pdt_type)
+ 	sym->attr.pdt_comp = 1;
+     }
+   else if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.pdt_type
+ 	   && !sym->attr.pdt_type)
+     sym->attr.pdt_comp = 1;
+ 
    if (c->attr.proc_pointer && c->ts.interface)
      {
        gfc_symbol *ifc = c->ts.interface;
*************** resolve_component (gfc_component *c, gfc
*** 16863,16878 ****
      }
  
    if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer
!         && !c->ts.deferred)
      {
!      if (c->ts.u.cl->length == NULL
!          || (!resolve_charlen(c->ts.u.cl))
!          || !gfc_is_constant_expr (c->ts.u.cl->length))
!        {
!          gfc_error ("Character length of component %qs needs to "
!                     "be a constant specification expression at %L",
!                     c->name,
!                     c->ts.u.cl->length ? &c->ts.u.cl->length->where : &c->loc);
           return false;
         }
  
--- 16883,16898 ----
      }
  
    if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer
!       && !c->ts.deferred)
      {
!       if (c->ts.u.cl->length == NULL
! 	  || (!resolve_charlen(c->ts.u.cl))
! 	  || !gfc_is_constant_expr (c->ts.u.cl->length))
! 	{
! 	  gfc_error ("Character length of component %qs needs to "
! 		     "be a constant specification expression at %L",
! 		     c->name,
! 		     c->ts.u.cl->length ? &c->ts.u.cl->length->where : &c->loc);
           return false;
         }
  
*************** resolve_component (gfc_component *c, gfc
*** 16894,16901 ****
        && !c->attr.pointer && !c->attr.allocatable)
      {
        gfc_error ("Character component %qs of %qs at %L with deferred "
!                  "length must be a POINTER or ALLOCATABLE",
!                  c->name, sym->name, &c->loc);
        return false;
      }
  
--- 16914,16921 ----
        && !c->attr.pointer && !c->attr.allocatable)
      {
        gfc_error ("Character component %qs of %qs at %L with deferred "
! 		 "length must be a POINTER or ALLOCATABLE",
! 		 c->name, sym->name, &c->loc);
        return false;
      }
  
*************** resolve_component (gfc_component *c, gfc
*** 16910,16923 ****
        sprintf (name, "_%s_length", c->name);
        strlen = gfc_find_component (sym, name, true, true, NULL);
        if (strlen == NULL)
!         {
!           if (!gfc_add_component (sym, name, &strlen))
!             return false;
!           strlen->ts.type = BT_INTEGER;
!           strlen->ts.kind = gfc_charlen_int_kind;
!           strlen->attr.access = ACCESS_PRIVATE;
!           strlen->attr.artificial = 1;
!         }
      }
  
    if (c->ts.type == BT_DERIVED
--- 16930,16943 ----
        sprintf (name, "_%s_length", c->name);
        strlen = gfc_find_component (sym, name, true, true, NULL);
        if (strlen == NULL)
! 	{
! 	  if (!gfc_add_component (sym, name, &strlen))
! 	    return false;
! 	  strlen->ts.type = BT_INTEGER;
! 	  strlen->ts.kind = gfc_charlen_int_kind;
! 	  strlen->attr.access = ACCESS_PRIVATE;
! 	  strlen->attr.artificial = 1;
! 	}
      }
  
    if (c->ts.type == BT_DERIVED
*************** resolve_component (gfc_component *c, gfc
*** 16927,16953 ****
        && !c->ts.u.derived->attr.use_assoc
        && !gfc_check_symbol_access (c->ts.u.derived)
        && !gfc_notify_std (GFC_STD_F2003, "the component %qs is a "
!                           "PRIVATE type and cannot be a component of "
!                           "%qs, which is PUBLIC at %L", c->name,
!                           sym->name, &sym->declared_at))
      return false;
  
    if ((sym->attr.sequence || sym->attr.is_bind_c) && c->ts.type == BT_CLASS)
      {
        gfc_error ("Polymorphic component %s at %L in SEQUENCE or BIND(C) "
!                  "type %s", c->name, &c->loc, sym->name);
        return false;
      }
  
    if (sym->attr.sequence)
      {
        if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.sequence == 0)
!         {
            gfc_error ("Component %s of SEQUENCE type declared at %L does "
!                      "not have the SEQUENCE attribute",
!                      c->ts.u.derived->name, &sym->declared_at);
!           return false;
!         }
      }
  
    if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.generic)
--- 16947,16973 ----
        && !c->ts.u.derived->attr.use_assoc
        && !gfc_check_symbol_access (c->ts.u.derived)
        && !gfc_notify_std (GFC_STD_F2003, "the component %qs is a "
! 			  "PRIVATE type and cannot be a component of "
! 			  "%qs, which is PUBLIC at %L", c->name,
! 			  sym->name, &sym->declared_at))
      return false;
  
    if ((sym->attr.sequence || sym->attr.is_bind_c) && c->ts.type == BT_CLASS)
      {
        gfc_error ("Polymorphic component %s at %L in SEQUENCE or BIND(C) "
! 		 "type %s", c->name, &c->loc, sym->name);
        return false;
      }
  
    if (sym->attr.sequence)
      {
        if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.sequence == 0)
! 	{
            gfc_error ("Component %s of SEQUENCE type declared at %L does "
! 		     "not have the SEQUENCE attribute",
! 		     c->ts.u.derived->name, &sym->declared_at);
! 	  return false;
! 	}
      }
  
    if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.generic)
*************** resolve_component (gfc_component *c, gfc
*** 16955,16961 ****
    else if (c->ts.type == BT_CLASS && c->attr.class_ok
             && CLASS_DATA (c)->ts.u.derived->attr.generic)
      CLASS_DATA (c)->ts.u.derived
!                     = gfc_find_dt_in_generic (CLASS_DATA (c)->ts.u.derived);
  
    /* If an allocatable component derived type is of the same type as
       the enclosing derived type, we need a vtable generating so that
--- 16975,16981 ----
    else if (c->ts.type == BT_CLASS && c->attr.class_ok
             && CLASS_DATA (c)->ts.u.derived->attr.generic)
      CLASS_DATA (c)->ts.u.derived
! 		= gfc_find_dt_in_generic (CLASS_DATA (c)->ts.u.derived);
  
    /* If an allocatable component derived type is of the same type as
       the enclosing derived type, we need a vtable generating so that
*************** resolve_component (gfc_component *c, gfc
*** 16968,16977 ****
       derived type list; even in formal namespaces, where derived type
       pointer components might not have been declared.  */
    if (c->ts.type == BT_DERIVED
!         && c->ts.u.derived
!         && c->ts.u.derived->components
!         && c->attr.pointer
!         && sym != c->ts.u.derived)
      add_dt_to_dt_list (c->ts.u.derived);
  
    if (c->as && c->as->type != AS_DEFERRED
--- 16988,16997 ----
       derived type list; even in formal namespaces, where derived type
       pointer components might not have been declared.  */
    if (c->ts.type == BT_DERIVED
!       && c->ts.u.derived
!       && c->ts.u.derived->components
!       && c->attr.pointer
!       && sym != c->ts.u.derived)
      add_dt_to_dt_list (c->ts.u.derived);
  
    if (c->as && c->as->type != AS_DEFERRED
*************** resolve_component (gfc_component *c, gfc
*** 16979,16986 ****
      return false;
  
    if (!gfc_resolve_array_spec (c->as,
!                                !(c->attr.pointer || c->attr.proc_pointer
!                                  || c->attr.allocatable)))
      return false;
  
    if (c->initializer && !sym->attr.vtype
--- 16999,17006 ----
      return false;
  
    if (!gfc_resolve_array_spec (c->as,
! 			       !(c->attr.pointer || c->attr.proc_pointer
! 				 || c->attr.allocatable)))
      return false;
  
    if (c->initializer && !sym->attr.vtype
diff -Nrcpad gcc-16-20250928/gcc/fortran/trans-array.cc gcc-16-20251005/gcc/fortran/trans-array.cc
*** gcc-16-20250928/gcc/fortran/trans-array.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/trans-array.cc	Sun Oct  5 22:32:15 2025
*************** gfc_conv_array_parameter (gfc_se *se, gf
*** 9446,9451 ****
--- 9446,9460 ----
  
  	  gfc_add_expr_to_block (&se->pre, tmp);
  	}
+       else if (pass_optional && full_array_var && sym->as && sym->as->rank != 0)
+ 	{
+ 	  /* Perform calculation of bounds and strides of optional array dummy
+ 	     only if the argument is present.  */
+ 	  tmp = build3_v (COND_EXPR, gfc_conv_expr_present (sym),
+ 			  gfc_finish_block (&se->pre),
+ 			  build_empty_stmt (input_location));
+ 	  gfc_add_expr_to_block (&se->pre, tmp);
+ 	}
      }
  
    /* Deallocate the allocatable components of structures that are
diff -Nrcpad gcc-16-20250928/gcc/fortran/trans-decl.cc gcc-16-20251005/gcc/fortran/trans-decl.cc
*** gcc-16-20250928/gcc/fortran/trans-decl.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/trans-decl.cc	Sun Oct  5 22:32:15 2025
*************** gfc_get_symbol_decl (gfc_symbol * sym)
*** 1688,1693 ****
--- 1688,1698 ----
        && !(sym->attr.use_assoc || sym->attr.dummy))
      gfc_defer_symbol_init (sym);
  
+   if ((sym->ts.type == BT_DERIVED && sym->ts.u.derived->attr.pdt_comp)
+       && gfc_current_ns == sym->ns
+       && !(sym->attr.use_assoc || sym->attr.dummy))
+     gfc_defer_symbol_init (sym);
+ 
    /* Dummy PDT 'len' parameters should be checked when they are explicit.  */
    if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS)
        && (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)
*************** gfc_trans_deferred_vars (gfc_symbol * pr
*** 4921,4927 ****
  
        if (sym->ts.type == BT_DERIVED
  	  && sym->ts.u.derived
! 	  && sym->ts.u.derived->attr.pdt_type)
  	{
  	  is_pdt_type = true;
  	  gfc_init_block (&tmpblock);
--- 4926,4932 ----
  
        if (sym->ts.type == BT_DERIVED
  	  && sym->ts.u.derived
! 	  && (sym->ts.u.derived->attr.pdt_type || sym->ts.u.derived->attr.pdt_comp))
  	{
  	  is_pdt_type = true;
  	  gfc_init_block (&tmpblock);
diff -Nrcpad gcc-16-20250928/gcc/fortran/trans-io.cc gcc-16-20251005/gcc/fortran/trans-io.cc
*** gcc-16-20250928/gcc/fortran/trans-io.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/trans-io.cc	Sun Oct  5 22:32:15 2025
*************** gfc_trans_transfer (gfc_code * code)
*** 2646,2652 ****
  	 && ((expr->symtree->n.sym->ts.type == BT_DERIVED && expr->ts.deferred)
  	     || (expr->symtree->n.sym->assoc
  		 && expr->symtree->n.sym->assoc->variable)
! 	     || gfc_expr_attr (expr).pointer))
  	goto scalarize;
  
        /* With array-bounds checking enabled, force scalarization in some
--- 2646,2654 ----
  	 && ((expr->symtree->n.sym->ts.type == BT_DERIVED && expr->ts.deferred)
  	     || (expr->symtree->n.sym->assoc
  		 && expr->symtree->n.sym->assoc->variable)
! 	     || gfc_expr_attr (expr).pointer
! 	     || (expr->symtree->n.sym->attr.pointer
! 		 && gfc_expr_attr (expr).target)))
  	goto scalarize;
  
        /* With array-bounds checking enabled, force scalarization in some
diff -Nrcpad gcc-16-20250928/gcc/fortran/trans-stmt.cc gcc-16-20251005/gcc/fortran/trans-stmt.cc
*** gcc-16-20250928/gcc/fortran/trans-stmt.cc	Sun Sep 28 22:33:05 2025
--- gcc-16-20251005/gcc/fortran/trans-stmt.cc	Sun Oct  5 22:32:15 2025
*************** gfc_trans_deallocate (gfc_code *code)
*** 7922,7927 ****
--- 7922,7929 ----
        gfc_expr *expr = gfc_copy_expr (al->expr);
        bool is_coarray = false, is_coarray_array = false;
        int caf_mode = 0;
+       gfc_ref * ref;
+       gfc_actual_arglist * param_list;
  
        gcc_assert (expr->expr_type == EXPR_VARIABLE);
  
*************** gfc_trans_deallocate (gfc_code *code)
*** 7937,7945 ****
  
        /* Deallocate PDT components that are parameterized.  */
        tmp = NULL;
        if (expr->ts.type == BT_DERIVED
! 	  && expr->ts.u.derived->attr.pdt_type
! 	  && expr->symtree->n.sym->param_list)
  	tmp = gfc_deallocate_pdt_comp (expr->ts.u.derived, se.expr, expr->rank);
        else if (expr->ts.type == BT_CLASS
  	       && CLASS_DATA (expr)->ts.u.derived->attr.pdt_type
--- 7939,7956 ----
  
        /* Deallocate PDT components that are parameterized.  */
        tmp = NULL;
+       param_list = expr->param_list;
+       if (!param_list && expr->symtree->n.sym->param_list)
+ 	param_list = expr->symtree->n.sym->param_list;
+       for (ref = expr->ref; ref; ref = ref->next)
+ 	if (ref->type ==  REF_COMPONENT
+ 	    && ref->u.c.component->ts.type == BT_DERIVED
+ 	    && ref->u.c.component->ts.u.derived->attr.pdt_type
+ 	    && ref->u.c.component->param_list)
+ 	  param_list = ref->u.c.component->param_list;
        if (expr->ts.type == BT_DERIVED
! 	  && ((expr->ts.u.derived->attr.pdt_type && param_list)
! 	      || expr->ts.u.derived->attr.pdt_comp))
  	tmp = gfc_deallocate_pdt_comp (expr->ts.u.derived, se.expr, expr->rank);
        else if (expr->ts.type == BT_CLASS
  	       && CLASS_DATA (expr)->ts.u.derived->attr.pdt_type
diff -Nrcpad gcc-16-20250928/gcc/gimple-fold.cc gcc-16-20251005/gcc/gimple-fold.cc
*** gcc-16-20250928/gcc/gimple-fold.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/gimple-fold.cc	Sun Oct  5 22:32:15 2025
*************** gimple_fold_builtin_assume_aligned (gimp
*** 5252,5257 ****
--- 5252,5378 ----
    return true;
  }
  
+ /* If va_list type is a simple pointer and nothing special is needed,
+    optimize __builtin_va_start (&ap, 0) into ap = __builtin_next_arg (0),
+    __builtin_va_end (&ap) out as NOP and __builtin_va_copy into a simple
+    pointer assignment.  Returns true if a change happened.  */
+ 
+ static bool
+ gimple_fold_builtin_stdarg (gimple_stmt_iterator *gsi, gcall *call)
+ {
+   /* These shouldn't be folded before pass_stdarg.  */
+   if (!(cfun->curr_properties & PROP_last_full_fold))
+     return false;
+ 
+   tree callee, lhs, rhs, cfun_va_list;
+   bool va_list_simple_ptr;
+   location_t loc = gimple_location (call);
+   gimple *nstmt0, *nstmt;
+   tree tlhs, oldvdef, newvdef;
+ 
+   callee = gimple_call_fndecl (call);
+ 
+   cfun_va_list = targetm.fn_abi_va_list (callee);
+   va_list_simple_ptr = POINTER_TYPE_P (cfun_va_list)
+ 		       && (TREE_TYPE (cfun_va_list) == void_type_node
+ 			   || TREE_TYPE (cfun_va_list) == char_type_node);
+ 
+   switch (DECL_FUNCTION_CODE (callee))
+     {
+     case BUILT_IN_VA_START:
+       if (!va_list_simple_ptr
+ 	  || targetm.expand_builtin_va_start != NULL
+ 	  || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
+ 	return false;
+ 
+       if (gimple_call_num_args (call) != 2)
+ 	return false;
+ 
+       lhs = gimple_call_arg (call, 0);
+       if (!POINTER_TYPE_P (TREE_TYPE (lhs))
+ 	  || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs)))
+ 	     != TYPE_MAIN_VARIANT (cfun_va_list))
+ 	return false;
+       /* Create `tlhs = __builtin_next_arg(0);`. */
+       tlhs = make_ssa_name (cfun_va_list);
+       nstmt0 = gimple_build_call (builtin_decl_explicit (BUILT_IN_NEXT_ARG), 1, integer_zero_node);
+       lhs = fold_build2 (MEM_REF, cfun_va_list, lhs, build_zero_cst (TREE_TYPE (lhs)));
+       gimple_call_set_lhs (nstmt0, tlhs);
+       gimple_set_location (nstmt0, loc);
+       gimple_move_vops (nstmt0, call);
+       gsi_replace (gsi, nstmt0, false);
+       oldvdef = gimple_vdef (nstmt0);
+       newvdef = make_ssa_name (gimple_vop (cfun), nstmt0);
+       gimple_set_vdef (nstmt0, newvdef);
+ 
+       /* Create `*lhs = tlhs;`.  */
+       nstmt = gimple_build_assign (lhs, tlhs);
+       gimple_set_location (nstmt, loc);
+       gimple_set_vuse (nstmt, newvdef);
+       gimple_set_vdef (nstmt, oldvdef);
+       SSA_NAME_DEF_STMT (oldvdef) = nstmt;
+       gsi_insert_after (gsi, nstmt, GSI_NEW_STMT);
+ 
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  fprintf (dump_file, "Simplified\n  ");
+ 	  print_gimple_stmt (dump_file, call, 0, dump_flags);
+ 	  fprintf (dump_file, "into\n  ");
+ 	  print_gimple_stmt (dump_file, nstmt0, 0, dump_flags);
+ 	  fprintf (dump_file, "  ");
+ 	  print_gimple_stmt (dump_file, nstmt, 0, dump_flags);
+ 	}
+       return true;
+ 
+     case BUILT_IN_VA_COPY:
+       if (!va_list_simple_ptr)
+ 	return false;
+ 
+       if (gimple_call_num_args (call) != 2)
+ 	return false;
+ 
+       lhs = gimple_call_arg (call, 0);
+       if (!POINTER_TYPE_P (TREE_TYPE (lhs))
+ 	  || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs)))
+ 	     != TYPE_MAIN_VARIANT (cfun_va_list))
+ 	return false;
+       rhs = gimple_call_arg (call, 1);
+       if (TYPE_MAIN_VARIANT (TREE_TYPE (rhs))
+ 	  != TYPE_MAIN_VARIANT (cfun_va_list))
+ 	return false;
+ 
+       lhs = fold_build2 (MEM_REF, cfun_va_list, lhs, build_zero_cst (TREE_TYPE (lhs)));
+       nstmt = gimple_build_assign (lhs, rhs);
+       gimple_set_location (nstmt, loc);
+       gimple_move_vops (nstmt, call);
+       gsi_replace (gsi, nstmt, false);
+ 
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  fprintf (dump_file, "Simplified\n  ");
+ 	  print_gimple_stmt (dump_file, call, 0, dump_flags);
+ 	  fprintf (dump_file, "into\n  ");
+ 	  print_gimple_stmt (dump_file, nstmt, 0, dump_flags);
+ 	}
+       return true;
+ 
+     case BUILT_IN_VA_END:
+       /* No effect, so the statement will be deleted.  */
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  fprintf (dump_file, "Removed\n  ");
+ 	  print_gimple_stmt (dump_file, call, 0, dump_flags);
+ 	}
+       unlink_stmt_vdef (call);
+       release_defs (call);
+       gsi_replace (gsi, gimple_build_nop (), true);
+       return true;
+ 
+     default:
+       gcc_unreachable ();
+     }
+ }
+ 
  /* Fold the non-target builtin at *GSI and return whether any simplification
     was made.  */
  
*************** gimple_fold_builtin (gimple_stmt_iterato
*** 5270,5275 ****
--- 5391,5400 ----
    enum built_in_function fcode = DECL_FUNCTION_CODE (callee);
    switch (fcode)
      {
+     case BUILT_IN_VA_START:
+     case BUILT_IN_VA_END:
+     case BUILT_IN_VA_COPY:
+       return gimple_fold_builtin_stdarg (gsi, stmt);
      case BUILT_IN_BCMP:
        return gimple_fold_builtin_bcmp (gsi);
      case BUILT_IN_BCOPY:
*************** gimple_fold_call (gimple_stmt_iterator *
*** 5886,5891 ****
--- 6011,6022 ----
        tree overflow = NULL_TREE;
        switch (gimple_call_internal_fn (stmt))
  	{
+ 	case IFN_ASSUME:
+ 	  /* Remove .ASSUME calls during the last fold since it is no
+ 	     longer needed.  */
+ 	  if (cfun->curr_properties & PROP_last_full_fold)
+ 	    replace_call_with_value (gsi, NULL_TREE);
+ 	  break;
  	case IFN_BUILTIN_EXPECT:
  	  result = fold_builtin_expect (gimple_location (stmt),
  					gimple_call_arg (stmt, 0),
diff -Nrcpad gcc-16-20250928/gcc/gimple-isel.cc gcc-16-20251005/gcc/gimple-isel.cc
*** gcc-16-20250928/gcc/gimple-isel.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/gimple-isel.cc	Sun Oct  5 22:32:15 2025
*************** along with GCC; see the file COPYING3.
*** 39,44 ****
--- 39,45 ----
  #include "optabs.h"
  #include "gimple-fold.h"
  #include "internal-fn.h"
+ #include "fold-const.h"
  
  /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to
     internal function based on vector type of selected expansion.
*************** maybe_duplicate_comparison (gassign *stm
*** 349,354 ****
--- 350,364 ----
      }
  }
  
+ /* match.pd function to match atomic_bit_test_and pattern which
+    has nop_convert:
+      _1 = __atomic_fetch_or_4 (&v, 1, 0);
+      _2 = (int) _1;
+      _5 = _2 & 1;
+  */
+ extern bool gimple_nop_atomic_bit_test_and_p (tree, tree *,
+ 					      tree (*) (tree));
+ extern bool gimple_nop_convert (tree, tree*, tree (*) (tree));
  
  namespace {
  
*************** public:
*** 382,387 ****
--- 392,1338 ----
  }; // class pass_gimple_isel
  
  
+ 
+ /* Convert
+    _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
+    _7 = ~_1;
+    _5 = (_Bool) _7;
+    to
+    _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
+    _8 = _1 & 1;
+    _5 = _8 == 0;
+    and convert
+    _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
+    _7 = ~_1;
+    _4 = (_Bool) _7;
+    to
+    _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
+    _8 = _1 & 1;
+    _4 = (_Bool) _8;
+ 
+    USE_STMT is the gimplt statement which uses the return value of
+    __atomic_fetch_or_*.  LHS is the return value of __atomic_fetch_or_*.
+    MASK is the mask passed to __atomic_fetch_or_*.
+  */
+ 
+ static gimple *
+ convert_atomic_bit_not (enum internal_fn fn, gimple *use_stmt,
+ 			tree lhs, tree mask)
+ {
+   tree and_mask;
+   if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
+     {
+       /* MASK must be ~1.  */
+       if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs),
+ 					   ~HOST_WIDE_INT_1), mask, 0))
+ 	return nullptr;
+       and_mask = build_int_cst (TREE_TYPE (lhs), 1);
+     }
+   else
+     {
+       /* MASK must be 1.  */
+       if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), 1), mask, 0))
+ 	return nullptr;
+       and_mask = mask;
+     }
+ 
+   tree use_lhs = gimple_assign_lhs (use_stmt);
+ 
+   use_operand_p use_p;
+   gimple *use_not_stmt;
+ 
+   if (!single_imm_use (use_lhs, &use_p, &use_not_stmt)
+       || !is_gimple_assign (use_not_stmt))
+     return nullptr;
+ 
+   if (!CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (use_not_stmt)))
+     return nullptr;
+ 
+   tree use_not_lhs = gimple_assign_lhs (use_not_stmt);
+   if (TREE_CODE (TREE_TYPE (use_not_lhs)) != BOOLEAN_TYPE)
+     return nullptr;
+ 
+   gimple_stmt_iterator gsi;
+   tree var = make_ssa_name (TREE_TYPE (lhs));
+   /* use_stmt need to be removed after use_nop_stmt,
+      so use_lhs can be released.  */
+   gimple *use_stmt_removal = use_stmt;
+   use_stmt = gimple_build_assign (var, BIT_AND_EXPR, lhs, and_mask);
+   gsi = gsi_for_stmt (use_not_stmt);
+   gsi_insert_before (&gsi, use_stmt, GSI_NEW_STMT);
+   lhs = gimple_assign_lhs (use_not_stmt);
+   gimple *g = gimple_build_assign (lhs, EQ_EXPR, var,
+ 				   build_zero_cst (TREE_TYPE (mask)));
+   gsi_insert_after (&gsi, g, GSI_NEW_STMT);
+   gsi = gsi_for_stmt (use_not_stmt);
+   gsi_remove (&gsi, true);
+   gsi = gsi_for_stmt (use_stmt_removal);
+   gsi_remove (&gsi, true);
+   return use_stmt;
+ }
+ 
+ /* Optimize
+      mask_2 = 1 << cnt_1;
+      _4 = __atomic_fetch_or_* (ptr_6, mask_2, _3);
+      _5 = _4 & mask_2;
+    to
+      _4 = .ATOMIC_BIT_TEST_AND_SET (ptr_6, cnt_1, 0, _3);
+      _5 = _4;
+    If _5 is only used in _5 != 0 or _5 == 0 comparisons, 1
+    is passed instead of 0, and the builtin just returns a zero
+    or 1 value instead of the actual bit.
+    Similarly for __sync_fetch_and_or_* (without the ", _3" part
+    in there), and/or if mask_2 is a power of 2 constant.
+    Similarly for xor instead of or, use ATOMIC_BIT_TEST_AND_COMPLEMENT
+    in that case.  And similarly for and instead of or, except that
+    the second argument to the builtin needs to be one's complement
+    of the mask instead of mask.  */
+ 
+ static bool
+ optimize_atomic_bit_test_and (gimple_stmt_iterator *gsip,
+ 			      enum internal_fn fn, bool has_model_arg,
+ 			      bool after)
+ {
+   gimple *call = gsi_stmt (*gsip);
+   tree lhs = gimple_call_lhs (call);
+   use_operand_p use_p;
+   gimple *use_stmt;
+   tree mask;
+   optab optab;
+ 
+   if (!flag_inline_atomics
+       || optimize_debug
+       || !gimple_call_builtin_p (call, BUILT_IN_NORMAL)
+       || !lhs
+       || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs)
+       || !single_imm_use (lhs, &use_p, &use_stmt)
+       || !is_gimple_assign (use_stmt)
+       || !gimple_vdef (call))
+     return false;
+ 
+   switch (fn)
+     {
+     case IFN_ATOMIC_BIT_TEST_AND_SET:
+       optab = atomic_bit_test_and_set_optab;
+       break;
+     case IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT:
+       optab = atomic_bit_test_and_complement_optab;
+       break;
+     case IFN_ATOMIC_BIT_TEST_AND_RESET:
+       optab = atomic_bit_test_and_reset_optab;
+       break;
+     default:
+       return false;
+     }
+ 
+   tree bit = nullptr;
+ 
+   mask = gimple_call_arg (call, 1);
+   tree_code rhs_code = gimple_assign_rhs_code (use_stmt);
+   if (rhs_code != BIT_AND_EXPR)
+     {
+       if (rhs_code != NOP_EXPR && rhs_code != BIT_NOT_EXPR)
+ 	return false;
+ 
+       tree use_lhs = gimple_assign_lhs (use_stmt);
+       if (TREE_CODE (use_lhs) == SSA_NAME
+ 	  && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs))
+ 	return false;
+ 
+       tree use_rhs = gimple_assign_rhs1 (use_stmt);
+       if (lhs != use_rhs)
+ 	return false;
+ 
+       if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
+ 	  == CODE_FOR_nothing)
+ 	return false;
+ 
+       gimple *g;
+       gimple_stmt_iterator gsi;
+       tree var;
+       int ibit = -1;
+ 
+       if (rhs_code == BIT_NOT_EXPR)
+ 	{
+ 	  g = convert_atomic_bit_not (fn, use_stmt, lhs, mask);
+ 	  if (!g)
+ 	    return false;
+ 	  use_stmt = g;
+ 	  ibit = 0;
+ 	}
+       else if (TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE)
+ 	{
+ 	  tree and_mask;
+ 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
+ 	    {
+ 	      /* MASK must be ~1.  */
+ 	      if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs),
+ 						   ~HOST_WIDE_INT_1),
+ 				    mask, 0))
+ 		return false;
+ 
+ 	      /* Convert
+ 		 _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
+ 		 _4 = (_Bool) _1;
+ 		 to
+ 		 _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
+ 		 _5 = _1 & 1;
+ 		 _4 = (_Bool) _5;
+ 	       */
+ 	      and_mask = build_int_cst (TREE_TYPE (lhs), 1);
+ 	    }
+ 	  else
+ 	    {
+ 	      and_mask = build_int_cst (TREE_TYPE (lhs), 1);
+ 	      if (!operand_equal_p (and_mask, mask, 0))
+ 		return false;
+ 
+ 	      /* Convert
+ 		 _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
+ 		 _4 = (_Bool) _1;
+ 		 to
+ 		 _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
+ 		 _5 = _1 & 1;
+ 		 _4 = (_Bool) _5;
+ 	       */
+ 	    }
+ 	  var = make_ssa_name (TREE_TYPE (use_rhs));
+ 	  replace_uses_by (use_rhs, var);
+ 	  g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs,
+ 				   and_mask);
+ 	  gsi = gsi_for_stmt (use_stmt);
+ 	  gsi_insert_before (&gsi, g, GSI_NEW_STMT);
+ 	  use_stmt = g;
+ 	  ibit = 0;
+ 	}
+       else if (TYPE_PRECISION (TREE_TYPE (use_lhs))
+ 	       <= TYPE_PRECISION (TREE_TYPE (use_rhs)))
+ 	{
+ 	  gimple *use_nop_stmt;
+ 	  if (!single_imm_use (use_lhs, &use_p, &use_nop_stmt)
+ 	      || (!is_gimple_assign (use_nop_stmt)
+ 		  && gimple_code (use_nop_stmt) != GIMPLE_COND))
+ 	    return false;
+ 	  /* Handle both
+ 	     _4 = _5 < 0;
+ 	     and
+ 	     if (_5 < 0)
+ 	   */
+ 	  tree use_nop_lhs = nullptr;
+ 	  rhs_code = ERROR_MARK;
+ 	  if (is_gimple_assign (use_nop_stmt))
+ 	    {
+ 	      use_nop_lhs = gimple_assign_lhs (use_nop_stmt);
+ 	      rhs_code = gimple_assign_rhs_code (use_nop_stmt);
+ 	    }
+ 	  if (!use_nop_lhs || rhs_code != BIT_AND_EXPR)
+ 	    {
+ 	      /* Also handle
+ 		 if (_5 < 0)
+ 	       */
+ 	      if (use_nop_lhs
+ 		  && TREE_CODE (use_nop_lhs) == SSA_NAME
+ 		  && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_nop_lhs))
+ 		return false;
+ 	      if (use_nop_lhs && rhs_code == BIT_NOT_EXPR)
+ 		{
+ 		  /* Handle
+ 		     _7 = ~_2;
+ 		   */
+ 		  g = convert_atomic_bit_not (fn, use_nop_stmt, lhs,
+ 					      mask);
+ 		  if (!g)
+ 		    return false;
+ 		  /* Convert
+ 		     _1 = __atomic_fetch_or_4 (ptr_6, 1, _3);
+ 		     _2 = (int) _1;
+ 		     _7 = ~_2;
+ 		     _5 = (_Bool) _7;
+ 		     to
+ 		     _1 = __atomic_fetch_or_4 (ptr_6, ~1, _3);
+ 		     _8 = _1 & 1;
+ 		     _5 = _8 == 0;
+ 		     and convert
+ 		     _1 = __atomic_fetch_and_4 (ptr_6, ~1, _3);
+ 		     _2 = (int) _1;
+ 		     _7 = ~_2;
+ 		     _5 = (_Bool) _7;
+ 		     to
+ 		     _1 = __atomic_fetch_and_4 (ptr_6, 1, _3);
+ 		     _8 = _1 & 1;
+ 		     _5 = _8 == 0;
+ 		   */
+ 		  gsi = gsi_for_stmt (use_stmt);
+ 		  gsi_remove (&gsi, true);
+ 		  use_stmt = g;
+ 		  ibit = 0;
+ 		}
+ 	      else
+ 		{
+ 		  tree cmp_rhs1, cmp_rhs2;
+ 		  if (use_nop_lhs)
+ 		    {
+ 		      /* Handle
+ 			 _4 = _5 < 0;
+ 		       */
+ 		      if (TREE_CODE (TREE_TYPE (use_nop_lhs))
+ 			  != BOOLEAN_TYPE)
+ 			return false;
+ 		      cmp_rhs1 = gimple_assign_rhs1 (use_nop_stmt);
+ 		      cmp_rhs2 = gimple_assign_rhs2 (use_nop_stmt);
+ 		    }
+ 		  else
+ 		    {
+ 		      /* Handle
+ 			 if (_5 < 0)
+ 		       */
+ 		      rhs_code = gimple_cond_code (use_nop_stmt);
+ 		      cmp_rhs1 = gimple_cond_lhs (use_nop_stmt);
+ 		      cmp_rhs2 = gimple_cond_rhs (use_nop_stmt);
+ 		    }
+ 		  if (rhs_code != GE_EXPR && rhs_code != LT_EXPR)
+ 		    return false;
+ 		  if (use_lhs != cmp_rhs1)
+ 		    return false;
+ 		  if (!integer_zerop (cmp_rhs2))
+ 		    return false;
+ 
+ 		  tree and_mask;
+ 
+ 		  unsigned HOST_WIDE_INT bytes
+ 		    = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (use_rhs)));
+ 		  ibit = bytes * BITS_PER_UNIT - 1;
+ 		  unsigned HOST_WIDE_INT highest
+ 		    = HOST_WIDE_INT_1U << ibit;
+ 
+ 		  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
+ 		    {
+ 		      /* Get the signed maximum of the USE_RHS type.  */
+ 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
+ 						highest - 1);
+ 		      if (!operand_equal_p (and_mask, mask, 0))
+ 			return false;
+ 
+ 		      /* Convert
+ 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
+ 			 _5 = (signed int) _1;
+ 			 _4 = _5 < 0 or _5 >= 0;
+ 			 to
+ 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
+ 			 _6 = _1 & 0x80000000;
+ 			 _4 = _6 != 0 or _6 == 0;
+ 			 and convert
+ 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
+ 			 _5 = (signed int) _1;
+ 			 if (_5 < 0 or _5 >= 0)
+ 			 to
+ 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
+ 			 _6 = _1 & 0x80000000;
+ 			 if (_6 != 0 or _6 == 0)
+ 		       */
+ 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
+ 						highest);
+ 		    }
+ 		  else
+ 		    {
+ 		      /* Get the signed minimum of the USE_RHS type.  */
+ 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
+ 						highest);
+ 		      if (!operand_equal_p (and_mask, mask, 0))
+ 			return false;
+ 
+ 		      /* Convert
+ 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
+ 			 _5 = (signed int) _1;
+ 			 _4 = _5 < 0 or _5 >= 0;
+ 			 to
+ 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
+ 			 _6 = _1 & 0x80000000;
+ 			 _4 = _6 != 0 or _6 == 0;
+ 			 and convert
+ 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
+ 			 _5 = (signed int) _1;
+ 			 if (_5 < 0 or _5 >= 0)
+ 			 to
+ 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
+ 			 _6 = _1 & 0x80000000;
+ 			 if (_6 != 0 or _6 == 0)
+ 		       */
+ 		    }
+ 		  var = make_ssa_name (TREE_TYPE (use_rhs));
+ 		  gimple* use_stmt_removal = use_stmt;
+ 		  g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs,
+ 					   and_mask);
+ 		  gsi = gsi_for_stmt (use_nop_stmt);
+ 		  gsi_insert_before (&gsi, g, GSI_NEW_STMT);
+ 		  use_stmt = g;
+ 		  rhs_code = rhs_code == GE_EXPR ? EQ_EXPR : NE_EXPR;
+ 		  tree const_zero = build_zero_cst (TREE_TYPE (use_rhs));
+ 		  if (use_nop_lhs)
+ 		    g = gimple_build_assign (use_nop_lhs, rhs_code,
+ 					     var, const_zero);
+ 		  else
+ 		    g = gimple_build_cond (rhs_code, var, const_zero,
+ 					   nullptr, nullptr);
+ 		  gsi_insert_after (&gsi, g, GSI_NEW_STMT);
+ 		  gsi = gsi_for_stmt (use_nop_stmt);
+ 		  gsi_remove (&gsi, true);
+ 		  gsi = gsi_for_stmt (use_stmt_removal);
+ 		  gsi_remove (&gsi, true);
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      tree match_op[3];
+ 	      gimple *g;
+ 	      if (!gimple_nop_atomic_bit_test_and_p (use_nop_lhs,
+ 						     &match_op[0], NULL)
+ 		  || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (match_op[2])
+ 		  || !single_imm_use (match_op[2], &use_p, &g)
+ 		  || !is_gimple_assign (g))
+ 		return false;
+ 	      mask = match_op[0];
+ 	      if (TREE_CODE (match_op[1]) == INTEGER_CST)
+ 		{
+ 		  ibit = tree_log2 (match_op[1]);
+ 		  gcc_assert (ibit >= 0);
+ 		}
+ 	      else
+ 		{
+ 		  g = SSA_NAME_DEF_STMT (match_op[1]);
+ 		  gcc_assert (is_gimple_assign (g));
+ 		  bit = gimple_assign_rhs2 (g);
+ 		}
+ 	      /* Convert
+ 		 _1 = __atomic_fetch_or_4 (ptr_6, mask, _3);
+ 		 _2 = (int) _1;
+ 		 _5 = _2 & mask;
+ 		 to
+ 		 _1 = __atomic_fetch_or_4 (ptr_6, mask, _3);
+ 		 _6 = _1 & mask;
+ 		 _5 = (int) _6;
+ 		 and convert
+ 		 _1 = ~mask_7;
+ 		 _2 = (unsigned int) _1;
+ 		 _3 = __atomic_fetch_and_4 (ptr_6, _2, 0);
+ 		 _4 = (int) _3;
+ 		 _5 = _4 & mask_7;
+ 		 to
+ 		 _1 = __atomic_fetch_and_* (ptr_6, ~mask_7, _3);
+ 		 _12 = _3 & mask_7;
+ 		 _5 = (int) _12;
+ 
+ 		 and Convert
+ 		 _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3);
+ 		 _2 = (short int) _1;
+ 		 _5 = _2 & mask;
+ 		 to
+ 		 _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3);
+ 		 _8 = _1 & mask;
+ 		 _5 = (short int) _8;
+ 	      */
+ 	      gimple_seq stmts = NULL;
+ 	      match_op[1] = gimple_convert (&stmts,
+ 					    TREE_TYPE (use_rhs),
+ 					    match_op[1]);
+ 	      var = gimple_build (&stmts, BIT_AND_EXPR,
+ 				  TREE_TYPE (use_rhs), use_rhs, match_op[1]);
+ 	      gsi = gsi_for_stmt (use_stmt);
+ 	      gsi_remove (&gsi, true);
+ 	      release_defs (use_stmt);
+ 	      use_stmt = gimple_seq_last_stmt (stmts);
+ 	      gsi = gsi_for_stmt (use_nop_stmt);
+ 	      gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT);
+ 	      gimple_assign_set_rhs_with_ops (&gsi, CONVERT_EXPR, var);
+ 	      update_stmt (use_nop_stmt);
+ 	    }
+ 	}
+       else
+ 	return false;
+ 
+       if (!bit)
+ 	{
+ 	  if (ibit < 0)
+ 	    gcc_unreachable ();
+ 	  bit = build_int_cst (TREE_TYPE (lhs), ibit);
+ 	}
+     }
+   else if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
+ 	   == CODE_FOR_nothing)
+     return false;
+ 
+   tree use_lhs = gimple_assign_lhs (use_stmt);
+   if (!use_lhs)
+     return false;
+ 
+   if (!bit)
+     {
+       if (TREE_CODE (mask) == INTEGER_CST)
+ 	{
+ 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
+ 	    mask = const_unop (BIT_NOT_EXPR, TREE_TYPE (mask), mask);
+ 	  mask = fold_convert (TREE_TYPE (lhs), mask);
+ 	  int ibit = tree_log2 (mask);
+ 	  if (ibit < 0)
+ 	    return false;
+ 	  bit = build_int_cst (TREE_TYPE (lhs), ibit);
+ 	}
+       else if (TREE_CODE (mask) == SSA_NAME)
+ 	{
+ 	  gimple *g = SSA_NAME_DEF_STMT (mask);
+ 	  tree match_op;
+ 	  if (gimple_nop_convert (mask, &match_op, NULL))
+ 	    {
+ 	      mask = match_op;
+ 	      if (TREE_CODE (mask) != SSA_NAME)
+ 		return false;
+ 	      g = SSA_NAME_DEF_STMT (mask);
+ 	    }
+ 	  if (!is_gimple_assign (g))
+ 	    return false;
+ 
+ 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
+ 	    {
+ 	      if (gimple_assign_rhs_code (g) != BIT_NOT_EXPR)
+ 		return false;
+ 	      mask = gimple_assign_rhs1 (g);
+ 	      if (TREE_CODE (mask) != SSA_NAME)
+ 		return false;
+ 	      g = SSA_NAME_DEF_STMT (mask);
+ 	    }
+ 
+ 	  if (!is_gimple_assign (g)
+ 	      || gimple_assign_rhs_code (g) != LSHIFT_EXPR
+ 	      || !integer_onep (gimple_assign_rhs1 (g)))
+ 	    return false;
+ 	  bit = gimple_assign_rhs2 (g);
+ 	}
+       else
+ 	return false;
+ 
+       tree cmp_mask;
+       if (gimple_assign_rhs1 (use_stmt) == lhs)
+ 	cmp_mask = gimple_assign_rhs2 (use_stmt);
+       else
+ 	cmp_mask = gimple_assign_rhs1 (use_stmt);
+ 
+       tree match_op;
+       if (gimple_nop_convert (cmp_mask, &match_op, NULL))
+ 	cmp_mask = match_op;
+ 
+       if (!operand_equal_p (cmp_mask, mask, 0))
+ 	return false;
+     }
+ 
+   bool use_bool = true;
+   bool has_debug_uses = false;
+   imm_use_iterator iter;
+   gimple *g;
+ 
+   if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs))
+     use_bool = false;
+   FOR_EACH_IMM_USE_STMT (g, iter, use_lhs)
+     {
+       enum tree_code code = ERROR_MARK;
+       tree op0 = NULL_TREE, op1 = NULL_TREE;
+       if (is_gimple_debug (g))
+ 	{
+ 	  has_debug_uses = true;
+ 	  continue;
+ 	}
+       else if (is_gimple_assign (g))
+ 	switch (gimple_assign_rhs_code (g))
+ 	  {
+ 	  case COND_EXPR:
+ 	    op1 = gimple_assign_rhs1 (g);
+ 	    code = TREE_CODE (op1);
+ 	    if (TREE_CODE_CLASS (code) != tcc_comparison)
+ 	      break;
+ 	    op0 = TREE_OPERAND (op1, 0);
+ 	    op1 = TREE_OPERAND (op1, 1);
+ 	    break;
+ 	  case EQ_EXPR:
+ 	  case NE_EXPR:
+ 	    code = gimple_assign_rhs_code (g);
+ 	    op0 = gimple_assign_rhs1 (g);
+ 	    op1 = gimple_assign_rhs2 (g);
+ 	    break;
+ 	  default:
+ 	    break;
+ 	  }
+       else if (gimple_code (g) == GIMPLE_COND)
+ 	{
+ 	  code = gimple_cond_code (g);
+ 	  op0 = gimple_cond_lhs (g);
+ 	  op1 = gimple_cond_rhs (g);
+ 	}
+ 
+       if ((code == EQ_EXPR || code == NE_EXPR)
+ 	  && op0 == use_lhs
+ 	  && integer_zerop (op1))
+ 	{
+ 	  use_operand_p use_p;
+ 	  int n = 0;
+ 	  FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
+ 	    n++;
+ 	  if (n == 1)
+ 	    continue;
+ 	}
+ 
+       use_bool = false;
+       break;
+     }
+ 
+   tree new_lhs = make_ssa_name (TREE_TYPE (lhs));
+   tree flag = build_int_cst (TREE_TYPE (lhs), use_bool);
+   if (has_model_arg)
+     g = gimple_build_call_internal (fn, 5, gimple_call_arg (call, 0),
+ 				    bit, flag, gimple_call_arg (call, 2),
+ 				    gimple_call_fn (call));
+   else
+     g = gimple_build_call_internal (fn, 4, gimple_call_arg (call, 0),
+ 				    bit, flag, gimple_call_fn (call));
+   gimple_call_set_lhs (g, new_lhs);
+   gimple_set_location (g, gimple_location (call));
+   gimple_move_vops (g, call);
+   bool throws = stmt_can_throw_internal (cfun, call);
+   gimple_call_set_nothrow (as_a <gcall *> (g),
+ 			   gimple_call_nothrow_p (as_a <gcall *> (call)));
+   gimple_stmt_iterator gsi = *gsip;
+   gsi_insert_after (&gsi, g, GSI_NEW_STMT);
+   edge e = NULL;
+   if (throws)
+     {
+       maybe_clean_or_replace_eh_stmt (call, g);
+       if (after || (use_bool && has_debug_uses))
+ 	e = find_fallthru_edge (gsi_bb (gsi)->succs);
+     }
+   if (after)
+     {
+       /* The internal function returns the value of the specified bit
+ 	 before the atomic operation.  If we are interested in the value
+ 	 of the specified bit after the atomic operation (makes only sense
+ 	 for xor, otherwise the bit content is compile time known),
+ 	 we need to invert the bit.  */
+       tree mask_convert = mask;
+       gimple_seq stmts = NULL;
+       if (!use_bool)
+ 	mask_convert = gimple_convert (&stmts, TREE_TYPE (lhs), mask);
+       new_lhs = gimple_build (&stmts, BIT_XOR_EXPR, TREE_TYPE (lhs), new_lhs,
+ 			      use_bool ? build_int_cst (TREE_TYPE (lhs), 1)
+ 				       : mask_convert);
+       if (throws)
+ 	{
+ 	  gsi_insert_seq_on_edge_immediate (e, stmts);
+ 	  gsi = gsi_for_stmt (gimple_seq_last (stmts));
+ 	}
+       else
+ 	gsi_insert_seq_after (&gsi, stmts, GSI_NEW_STMT);
+     }
+   if (use_bool && has_debug_uses)
+     {
+       tree temp = NULL_TREE;
+       if (!throws || after || single_pred_p (e->dest))
+ 	{
+ 	  temp = build_debug_expr_decl (TREE_TYPE (lhs));
+ 	  tree t = build2 (LSHIFT_EXPR, TREE_TYPE (lhs), new_lhs, bit);
+ 	  g = gimple_build_debug_bind (temp, t, g);
+ 	  if (throws && !after)
+ 	    {
+ 	      gsi = gsi_after_labels (e->dest);
+ 	      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
+ 	    }
+ 	  else
+ 	    gsi_insert_after (&gsi, g, GSI_NEW_STMT);
+ 	}
+       FOR_EACH_IMM_USE_STMT (g, iter, use_lhs)
+ 	if (is_gimple_debug (g))
+ 	  {
+ 	    use_operand_p use_p;
+ 	    if (temp == NULL_TREE)
+ 	      gimple_debug_bind_reset_value (g);
+ 	    else
+ 	      FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
+ 		SET_USE (use_p, temp);
+ 	    update_stmt (g);
+ 	  }
+     }
+   SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_lhs)
+     = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs);
+   replace_uses_by (use_lhs, new_lhs);
+   gsi = gsi_for_stmt (use_stmt);
+   gsi_remove (&gsi, true);
+   release_defs (use_stmt);
+   gsi_remove (gsip, true);
+   release_ssa_name (lhs);
+   return true;
+ }
+ 
+ /* Optimize
+      _4 = __atomic_add_fetch_* (ptr_6, arg_2, _3);
+      _5 = _4 == 0;
+    to
+      _4 = .ATOMIC_ADD_FETCH_CMP_0 (EQ_EXPR, ptr_6, arg_2, _3);
+      _5 = _4;
+    Similarly for __sync_add_and_fetch_* (without the ", _3" part
+    in there).  */
+ 
+ static bool
+ optimize_atomic_op_fetch_cmp_0 (gimple_stmt_iterator *gsip,
+ 				enum internal_fn fn, bool has_model_arg)
+ {
+   gimple *call = gsi_stmt (*gsip);
+   tree lhs = gimple_call_lhs (call);
+   use_operand_p use_p;
+   gimple *use_stmt;
+ 
+   if (!flag_inline_atomics
+       || !gimple_call_builtin_p (call, BUILT_IN_NORMAL)
+       || !lhs
+       || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs)
+       || !single_imm_use (lhs, &use_p, &use_stmt)
+       || !gimple_vdef (call))
+     return false;
+ 
+   optab optab;
+   switch (fn)
+     {
+     case IFN_ATOMIC_ADD_FETCH_CMP_0:
+       optab = atomic_add_fetch_cmp_0_optab;
+       break;
+     case IFN_ATOMIC_SUB_FETCH_CMP_0:
+       optab = atomic_sub_fetch_cmp_0_optab;
+       break;
+     case IFN_ATOMIC_AND_FETCH_CMP_0:
+       optab = atomic_and_fetch_cmp_0_optab;
+       break;
+     case IFN_ATOMIC_OR_FETCH_CMP_0:
+       optab = atomic_or_fetch_cmp_0_optab;
+       break;
+     case IFN_ATOMIC_XOR_FETCH_CMP_0:
+       optab = atomic_xor_fetch_cmp_0_optab;
+       break;
+     default:
+       return false;
+     }
+ 
+   if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
+       == CODE_FOR_nothing)
+     return false;
+ 
+   tree use_lhs = lhs;
+   if (gimple_assign_cast_p (use_stmt))
+     {
+       use_lhs = gimple_assign_lhs (use_stmt);
+       if (!tree_nop_conversion_p (TREE_TYPE (use_lhs), TREE_TYPE (lhs))
+ 	  || (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs))
+ 	      && !POINTER_TYPE_P (TREE_TYPE (use_lhs)))
+ 	  || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)
+ 	  || !single_imm_use (use_lhs, &use_p, &use_stmt))
+ 	return false;
+     }
+   enum tree_code code = ERROR_MARK;
+   tree op0 = NULL_TREE, op1 = NULL_TREE;
+   if (is_gimple_assign (use_stmt))
+     switch (gimple_assign_rhs_code (use_stmt))
+       {
+       case COND_EXPR:
+ 	op1 = gimple_assign_rhs1 (use_stmt);
+ 	code = TREE_CODE (op1);
+ 	if (TREE_CODE_CLASS (code) == tcc_comparison)
+ 	  {
+ 	    op0 = TREE_OPERAND (op1, 0);
+ 	    op1 = TREE_OPERAND (op1, 1);
+ 	  }
+ 	break;
+       default:
+ 	code = gimple_assign_rhs_code (use_stmt);
+ 	if (TREE_CODE_CLASS (code) == tcc_comparison)
+ 	  {
+ 	    op0 = gimple_assign_rhs1 (use_stmt);
+ 	    op1 = gimple_assign_rhs2 (use_stmt);
+ 	  }
+ 	break;
+       }
+   else if (gimple_code (use_stmt) == GIMPLE_COND)
+     {
+       code = gimple_cond_code (use_stmt);
+       op0 = gimple_cond_lhs (use_stmt);
+       op1 = gimple_cond_rhs (use_stmt);
+     }
+ 
+   switch (code)
+     {
+     case LT_EXPR:
+     case LE_EXPR:
+     case GT_EXPR:
+     case GE_EXPR:
+       if (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs))
+ 	  || TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE
+ 	  || TYPE_UNSIGNED (TREE_TYPE (use_lhs)))
+ 	return false;
+       /* FALLTHRU */
+     case EQ_EXPR:
+     case NE_EXPR:
+       if (op0 == use_lhs && integer_zerop (op1))
+ 	break;
+       return false;
+     default:
+       return false;
+     }
+ 
+   int encoded;
+   switch (code)
+     {
+     /* Use special encoding of the operation.  We want to also
+        encode the mode in the first argument and for neither EQ_EXPR
+        etc. nor EQ etc. we can rely it will fit into QImode.  */
+     case EQ_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_EQ; break;
+     case NE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_NE; break;
+     case LT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LT; break;
+     case LE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LE; break;
+     case GT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GT; break;
+     case GE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GE; break;
+     default: gcc_unreachable ();
+     }
+ 
+   tree new_lhs = make_ssa_name (boolean_type_node);
+   gimple *g;
+   tree flag = build_int_cst (TREE_TYPE (lhs), encoded);
+   if (has_model_arg)
+     g = gimple_build_call_internal (fn, 5, flag,
+ 				    gimple_call_arg (call, 0),
+ 				    gimple_call_arg (call, 1),
+ 				    gimple_call_arg (call, 2),
+ 				    gimple_call_fn (call));
+   else
+     g = gimple_build_call_internal (fn, 4, flag,
+ 				    gimple_call_arg (call, 0),
+ 				    gimple_call_arg (call, 1),
+ 				    gimple_call_fn (call));
+   gimple_call_set_lhs (g, new_lhs);
+   gimple_set_location (g, gimple_location (call));
+   gimple_move_vops (g, call);
+   bool throws = stmt_can_throw_internal (cfun, call);
+   gimple_call_set_nothrow (as_a <gcall *> (g),
+ 			   gimple_call_nothrow_p (as_a <gcall *> (call)));
+   gimple_stmt_iterator gsi = *gsip;
+   gsi_insert_after (&gsi, g, GSI_SAME_STMT);
+   if (throws)
+     maybe_clean_or_replace_eh_stmt (call, g);
+   if (is_gimple_assign (use_stmt))
+     switch (gimple_assign_rhs_code (use_stmt))
+       {
+       case COND_EXPR:
+ 	gimple_assign_set_rhs1 (use_stmt, new_lhs);
+ 	break;
+       default:
+ 	gsi = gsi_for_stmt (use_stmt);
+ 	if (tree ulhs = gimple_assign_lhs (use_stmt))
+ 	  if (useless_type_conversion_p (TREE_TYPE (ulhs),
+ 					 boolean_type_node))
+ 	    {
+ 	      gimple_assign_set_rhs_with_ops (&gsi, SSA_NAME, new_lhs);
+ 	      break;
+ 	    }
+ 	gimple_assign_set_rhs_with_ops (&gsi, NOP_EXPR, new_lhs);
+ 	break;
+       }
+   else if (gimple_code (use_stmt) == GIMPLE_COND)
+     {
+       gcond *use_cond = as_a <gcond *> (use_stmt);
+       gimple_cond_set_code (use_cond, NE_EXPR);
+       gimple_cond_set_lhs (use_cond, new_lhs);
+       gimple_cond_set_rhs (use_cond, boolean_false_node);
+     }
+ 
+   update_stmt (use_stmt);
+   if (use_lhs != lhs)
+     {
+       gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (use_lhs));
+       gsi_remove (&gsi, true);
+       release_ssa_name (use_lhs);
+     }
+   gsi_remove (gsip, true);
+   release_ssa_name (lhs);
+   return true;
+ }
+ 
+ /* Process builtin CALL located at GSI.
+    Currently it is only fgr atomic functions optimizations from above. */
+ static void
+ gimple_isel_builtin_call (gcall *call, gimple_stmt_iterator *gsi)
+ {
+   /* Don't handle these in non optimization mode or optimize debug mode.  */
+   if (!optimize || optimize_debug)
+     return;
+ 
+   if (!gimple_call_builtin_p (call, BUILT_IN_NORMAL))
+     return;
+ 
+   tree callee = gimple_call_fndecl (call);
+   
+   switch (DECL_FUNCTION_CODE (callee))
+     {
+ #define CASE_ATOMIC(NAME) 			\
+       case BUILT_IN_##NAME##_1:	\
+       case BUILT_IN_##NAME##_2:	\
+       case BUILT_IN_##NAME##_4:	\
+       case BUILT_IN_##NAME##_8:	\
+       case BUILT_IN_##NAME##_16
+ #define CASE_ATOMIC_CMP0(ATOMIC, SYNC) 					\
+       CASE_ATOMIC(ATOMIC_##ATOMIC):					\
+ 	optimize_atomic_op_fetch_cmp_0 (gsi,				\
+ 					IFN_ATOMIC_##ATOMIC##_CMP_0,	\
+ 					true);				\
+ 	break;								\
+       CASE_ATOMIC(SYNC_##SYNC):						\
+ 	optimize_atomic_op_fetch_cmp_0 (gsi,				\
+ 					IFN_ATOMIC_##ATOMIC##_CMP_0, 	\
+ 					false);				\
+       break;
+ 
+ 
+       CASE_ATOMIC_CMP0(ADD_FETCH, ADD_AND_FETCH)
+       CASE_ATOMIC_CMP0(SUB_FETCH, SUB_AND_FETCH)
+       CASE_ATOMIC_CMP0(AND_FETCH, AND_AND_FETCH)
+       CASE_ATOMIC_CMP0(OR_FETCH, OR_AND_FETCH)
+ #define CASE_ATOMIC_BIT_TEST_AND(ATOMIC, SYNC, FN, AFTER) 		\
+       CASE_ATOMIC(ATOMIC_##ATOMIC):					\
+ 	optimize_atomic_bit_test_and (gsi,				\
+ 				      IFN_ATOMIC_BIT_TEST_AND_##FN,	\
+ 				      true, AFTER);			\
+ 	break;								\
+       CASE_ATOMIC(SYNC_##SYNC):						\
+ 	optimize_atomic_bit_test_and (gsi,				\
+ 				      IFN_ATOMIC_BIT_TEST_AND_##FN, 	\
+ 				      false, AFTER);			\
+         break;
+       CASE_ATOMIC_BIT_TEST_AND(FETCH_OR,  FETCH_AND_OR,  SET, false)
+       CASE_ATOMIC_BIT_TEST_AND(FETCH_XOR, FETCH_AND_XOR, COMPLEMENT, false)
+       CASE_ATOMIC_BIT_TEST_AND(FETCH_AND, FETCH_AND_AND, RESET, false)
+ 
+       CASE_ATOMIC(ATOMIC_XOR_FETCH):
+ 	if (optimize_atomic_bit_test_and
+ 	     (gsi, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, true))
+ 	  break;
+ 	optimize_atomic_op_fetch_cmp_0 (gsi,
+ 					IFN_ATOMIC_XOR_FETCH_CMP_0,
+ 					true);
+ 	break;
+       CASE_ATOMIC(SYNC_XOR_AND_FETCH):
+ 	if (optimize_atomic_bit_test_and
+ 	      (gsi, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, true))
+ 	  break;
+ 	optimize_atomic_op_fetch_cmp_0 (gsi,
+ 					IFN_ATOMIC_XOR_FETCH_CMP_0,
+ 					false);
+         break;
+ 
+       default:;
+     }
+ }
+ 
  /* Iterate all gimple statements and perform pre RTL expansion
     GIMPLE massaging to improve instruction selection.  */
  
*************** pass_gimple_isel::execute (struct functi
*** 411,416 ****
--- 1362,1372 ----
  	  if (gsi_end_p (gsi))
  	    break;
  
+ 	  if (gcall *call = dyn_cast <gcall*>(*gsi))
+ 	    {
+ 	      gimple_isel_builtin_call (call, &gsi);
+ 	      continue;
+ 	    }
  	  gassign *stmt = dyn_cast <gassign *> (*gsi);
  	  if (!stmt)
  	    continue;
diff -Nrcpad gcc-16-20250928/gcc/gimple-lower-bitint.cc gcc-16-20251005/gcc/gimple-lower-bitint.cc
*** gcc-16-20250928/gcc/gimple-lower-bitint.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/gimple-lower-bitint.cc	Sun Oct  5 22:32:15 2025
*************** bitint_precision_kind (int prec)
*** 105,111 ****
    bitint_big_endian = info.big_endian;
    bitint_extended = info.extended;
    if (!large_min_prec
!       && GET_MODE_PRECISION (limb_mode) < MAX_FIXED_MODE_SIZE)
      large_min_prec = MAX_FIXED_MODE_SIZE + 1;
    if (!limb_prec)
      limb_prec = GET_MODE_PRECISION (limb_mode);
--- 105,111 ----
    bitint_big_endian = info.big_endian;
    bitint_extended = info.extended;
    if (!large_min_prec
!       && GET_MODE_PRECISION (limb_mode) <= MAX_FIXED_MODE_SIZE)
      large_min_prec = MAX_FIXED_MODE_SIZE + 1;
    if (!limb_prec)
      limb_prec = GET_MODE_PRECISION (limb_mode);
*************** bitint_precision_kind (int prec)
*** 125,133 ****
  	mid_min_prec = prec;
        return bitint_prec_middle;
      }
!   if (large_min_prec && prec <= large_min_prec)
!     return bitint_prec_large;
!   return bitint_prec_huge;
  }
  
  /* Same for a TYPE.  */
--- 125,133 ----
  	mid_min_prec = prec;
        return bitint_prec_middle;
      }
!   if (huge_min_prec && prec >= huge_min_prec)
!     return bitint_prec_huge;
!   return bitint_prec_large;
  }
  
  /* Same for a TYPE.  */
diff -Nrcpad gcc-16-20250928/gcc/gimple.h gcc-16-20251005/gcc/gimple.h
*** gcc-16-20250928/gcc/gimple.h	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/gimple.h	Sun Oct  5 22:32:15 2025
*************** extern size_t const gimple_ops_offset_[]
*** 1545,1551 ****
  extern enum gimple_statement_structure_enum const gss_for_code_[];
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of comminucating the profile info to the builtin expanders.  */
  extern gimple *currently_expanding_gimple_stmt;
  
  size_t gimple_size (enum gimple_code code, unsigned num_ops = 0);
--- 1545,1551 ----
  extern enum gimple_statement_structure_enum const gss_for_code_[];
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of communicating the profile info to the builtin expanders.  */
  extern gimple *currently_expanding_gimple_stmt;
  
  size_t gimple_size (enum gimple_code code, unsigned num_ops = 0);
diff -Nrcpad gcc-16-20250928/gcc/gimplify.cc gcc-16-20251005/gcc/gimplify.cc
*** gcc-16-20250928/gcc/gimplify.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/gimplify.cc	Sun Oct  5 22:32:15 2025
*************** build_stack_save_restore (gcall **save,
*** 1280,1286 ****
  			 1, tmp_var);
  }
  
! /* Generate IFN_ASAN_MARK call that poisons shadow of a for DECL variable.  */
  
  static tree
  build_asan_poison_call_expr (tree decl)
--- 1280,1287 ----
  			 1, tmp_var);
  }
  
! /* Generate IFN_ASAN_MARK call that poisons shadow memory of the DECL
!    variable.  */
  
  static tree
  build_asan_poison_call_expr (tree decl)
*************** gimple_add_padding_init_for_auto_var (tr
*** 2102,2114 ****
  /* Return true if the DECL need to be automaticly initialized by the
     compiler.  */
  static bool
! is_var_need_auto_init (tree decl)
  {
    if (auto_var_p (decl)
!       && (TREE_CODE (decl) != VAR_DECL
! 	  || !DECL_HARD_REGISTER (decl))
!       && (flag_auto_var_init > AUTO_INIT_UNINITIALIZED)
!       && (!lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl)))
        && !OPAQUE_TYPE_P (TREE_TYPE (decl))
        && !is_empty_type (TREE_TYPE (decl)))
      return true;
--- 2103,2115 ----
  /* Return true if the DECL need to be automaticly initialized by the
     compiler.  */
  static bool
! var_needs_auto_init_p (tree decl)
  {
    if (auto_var_p (decl)
!       && (TREE_CODE (decl) != VAR_DECL || !DECL_HARD_REGISTER (decl))
!       && flag_auto_var_init > AUTO_INIT_UNINITIALIZED
!       && !lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl))
!       && !lookup_attribute ("indeterminate", DECL_ATTRIBUTES (decl))
        && !OPAQUE_TYPE_P (TREE_TYPE (decl))
        && !is_empty_type (TREE_TYPE (decl)))
      return true;
*************** gimplify_decl_expr (tree *stmt_p, gimple
*** 2221,2227 ****
        /* When there is no explicit initializer, if the user requested,
  	 We should insert an artifical initializer for this automatic
  	 variable.  */
!       else if (is_var_need_auto_init (decl)
  	       && !decl_had_value_expr_p)
  	{
  	  gimple_add_init_for_auto_var (decl,
--- 2222,2228 ----
        /* When there is no explicit initializer, if the user requested,
  	 We should insert an artifical initializer for this automatic
  	 variable.  */
!       else if (var_needs_auto_init_p (decl)
  	       && !decl_had_value_expr_p)
  	{
  	  gimple_add_init_for_auto_var (decl,
*************** emit_warn_switch_unreachable (gimple *st
*** 2315,2341 ****
    /* Don't warn for compiler-generated gotos.  These occur
       in Duff's devices, for example.  */
      return NULL;
-   else if ((flag_auto_var_init > AUTO_INIT_UNINITIALIZED)
- 	   && ((gimple_call_internal_p (stmt, IFN_DEFERRED_INIT))
- 		|| (gimple_call_builtin_p (stmt, BUILT_IN_CLEAR_PADDING)
- 		    && (bool) TREE_INT_CST_LOW (gimple_call_arg (stmt, 1)))
- 		|| (is_gimple_assign (stmt)
- 		    && gimple_assign_single_p (stmt)
- 		    && (TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME)
- 		    && gimple_call_internal_p (
- 			 SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)),
- 			 IFN_DEFERRED_INIT))))
-   /* Don't warn for compiler-generated initializations for
-      -ftrivial-auto-var-init.
-      There are 3 cases:
- 	case 1: a call to .DEFERRED_INIT;
- 	case 2: a call to __builtin_clear_padding with the 2nd argument is
- 		present and non-zero;
- 	case 3: a gimple assign store right after the call to .DEFERRED_INIT
- 		that has the LHS of .DEFERRED_INIT as the RHS as following:
- 		  _1 = .DEFERRED_INIT (4, 2, &"i1"[0]);
- 		  i1 = _1.  */
-     return NULL;
    else
      warning_at (gimple_location (stmt), OPT_Wswitch_unreachable,
  		"statement will never be executed");
--- 2316,2321 ----
*************** warn_switch_unreachable_and_auto_init_r
*** 2383,2388 ****
--- 2363,2380 ----
  	 there will be non-debug stmts too, and we'll catch those.  */
        break;
  
+     case GIMPLE_ASSIGN:
+       /* See comment below in the GIMPLE_CALL case.  */
+       if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	  && gimple_assign_single_p (stmt)
+ 	  && TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME)
+ 	{
+ 	  gimple *g = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt));
+ 	  if (gimple_call_internal_p (g, IFN_DEFERRED_INIT))
+ 	    break;
+ 	}
+       goto do_default;
+ 
      case GIMPLE_LABEL:
        /* Stop till the first Label.  */
        return integer_zero_node;
*************** warn_switch_unreachable_and_auto_init_r
*** 2392,2415 ****
  	  *handled_ops_p = false;
  	  break;
  	}
!       if (warn_trivial_auto_var_init
! 	  && flag_auto_var_init > AUTO_INIT_UNINITIALIZED
  	  && gimple_call_internal_p (stmt, IFN_DEFERRED_INIT))
  	{
! 	  /* Get the variable name from the 3rd argument of call.  */
! 	  tree var_name = gimple_call_arg (stmt, 2);
! 	  var_name = TREE_OPERAND (TREE_OPERAND (var_name, 0), 0);
! 	  const char *var_name_str = TREE_STRING_POINTER (var_name);
  
! 	  warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init,
! 		      "%qs cannot be initialized with "
! 		      "%<-ftrivial-auto-var_init%>",
! 		      var_name_str);
  	  break;
         }
! 
        /* Fall through.  */
      default:
        /* check the first "real" statement (not a decl/lexical scope/...), issue
  	 warning if needed.  */
        if (warn_switch_unreachable && !unreachable_issued)
--- 2384,2424 ----
  	  *handled_ops_p = false;
  	  break;
  	}
!       /* Don't warn for compiler-generated initializations for
! 	 -ftrivial-auto-var-init for -Wswitch-unreachable.  Though
! 	 do warn for -Wtrivial-auto-var-init.
! 	 There are 3 cases:
! 	 case 1: a call to .DEFERRED_INIT;
! 	 case 2: a call to __builtin_clear_padding with the 2nd argument is
! 		 present and non-zero;
! 	 case 3: a gimple assign store right after the call to .DEFERRED_INIT
! 		 that has the LHS of .DEFERRED_INIT as the RHS as following:
! 		  _1 = .DEFERRED_INIT (4, 2, &"i1"[0]);
! 		  i1 = _1.
! 	 case 3 is handled above in the GIMPLE_ASSIGN case.  */
!       if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
  	  && gimple_call_internal_p (stmt, IFN_DEFERRED_INIT))
  	{
! 	  if (warn_trivial_auto_var_init)
! 	    {
! 	      /* Get the variable name from the 3rd argument of call.  */
! 	      tree var_name = gimple_call_arg (stmt, 2);
! 	      var_name = TREE_OPERAND (TREE_OPERAND (var_name, 0), 0);
! 	      const char *var_name_str = TREE_STRING_POINTER (var_name);
  
! 	      warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init,
! 			  "%qs cannot be initialized with "
! 			  "%<-ftrivial-auto-var_init%>", var_name_str);
! 	    }
  	  break;
         }
!       if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
! 	  && gimple_call_builtin_p (stmt, BUILT_IN_CLEAR_PADDING)
! 	  && (bool) TREE_INT_CST_LOW (gimple_call_arg (stmt, 1)))
! 	break;
        /* Fall through.  */
      default:
+     do_default:
        /* check the first "real" statement (not a decl/lexical scope/...), issue
  	 warning if needed.  */
        if (warn_switch_unreachable && !unreachable_issued)
*************** last_stmt_in_scope (gimple *stmt)
*** 2489,2514 ****
    if (!stmt)
      return NULL;
  
    switch (gimple_code (stmt))
      {
      case GIMPLE_BIND:
        {
  	gbind *bind = as_a <gbind *> (stmt);
! 	stmt = gimple_seq_last_nondebug_stmt (gimple_bind_body (bind));
  	return last_stmt_in_scope (stmt);
        }
  
      case GIMPLE_TRY:
        {
  	gtry *try_stmt = as_a <gtry *> (stmt);
! 	stmt = gimple_seq_last_nondebug_stmt (gimple_try_eval (try_stmt));
  	gimple *last_eval = last_stmt_in_scope (stmt);
  	if (gimple_stmt_may_fallthru (last_eval)
  	    && (last_eval == NULL
  		|| !gimple_call_internal_p (last_eval, IFN_FALLTHROUGH))
  	    && gimple_try_kind (try_stmt) == GIMPLE_TRY_FINALLY)
  	  {
! 	    stmt = gimple_seq_last_nondebug_stmt (gimple_try_cleanup (try_stmt));
  	    return last_stmt_in_scope (stmt);
  	  }
  	else
--- 2498,2536 ----
    if (!stmt)
      return NULL;
  
+   auto last_stmt_in_seq = [] (gimple_seq s) 
+     {
+       gimple_seq_node n;
+       for (n = gimple_seq_last (s);
+ 	   n && (is_gimple_debug (n)
+ 		 || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 		     && gimple_call_internal_p (n, IFN_DEFERRED_INIT)));
+ 	n = n->prev)
+       if (n == s)
+ 	return (gimple *) NULL;
+       return (gimple *) n;
+     };
+ 
    switch (gimple_code (stmt))
      {
      case GIMPLE_BIND:
        {
  	gbind *bind = as_a <gbind *> (stmt);
! 	stmt = last_stmt_in_seq (gimple_bind_body (bind));
  	return last_stmt_in_scope (stmt);
        }
  
      case GIMPLE_TRY:
        {
  	gtry *try_stmt = as_a <gtry *> (stmt);
! 	stmt = last_stmt_in_seq (gimple_try_eval (try_stmt));
  	gimple *last_eval = last_stmt_in_scope (stmt);
  	if (gimple_stmt_may_fallthru (last_eval)
  	    && (last_eval == NULL
  		|| !gimple_call_internal_p (last_eval, IFN_FALLTHROUGH))
  	    && gimple_try_kind (try_stmt) == GIMPLE_TRY_FINALLY)
  	  {
! 	    stmt = last_stmt_in_seq (gimple_try_cleanup (try_stmt));
  	    return last_stmt_in_scope (stmt);
  	  }
  	else
*************** collect_fallthrough_labels (gimple_stmt_
*** 2661,2668 ****
--- 2683,2698 ----
  	}
        else if (gimple_call_internal_p (gsi_stmt (*gsi_p), IFN_ASAN_MARK))
  	;
+       else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	       && gimple_call_internal_p (gsi_stmt (*gsi_p),
+ 					  IFN_DEFERRED_INIT))
+ 	;
        else if (gimple_code (gsi_stmt (*gsi_p)) == GIMPLE_PREDICT)
  	;
+       else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 	       && gimple_code (gsi_stmt (*gsi_p)) == GIMPLE_GOTO
+ 	       && VACUOUS_INIT_LABEL_P (gimple_goto_dest (gsi_stmt (*gsi_p))))
+ 	;
        else if (!is_gimple_debug (gsi_stmt (*gsi_p)))
  	prev = gsi_stmt (*gsi_p);
        gsi_next (gsi_p);
*************** should_warn_for_implicit_fallthrough (gi
*** 2699,2707 ****
      {
        tree l;
        while (!gsi_end_p (gsi)
! 	     && gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL
! 	     && (l = gimple_label_label (as_a <glabel *> (gsi_stmt (gsi))))
! 	     && !case_label_p (&gimplify_ctxp->case_labels, l))
  	gsi_next_nondebug (&gsi);
        if (gsi_end_p (gsi) || gimple_code (gsi_stmt (gsi)) != GIMPLE_LABEL)
  	return false;
--- 2729,2741 ----
      {
        tree l;
        while (!gsi_end_p (gsi)
! 	     && ((gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL
! 		  && (l
! 		      = gimple_label_label (as_a <glabel *> (gsi_stmt (gsi))))
! 		  && !case_label_p (&gimplify_ctxp->case_labels, l))
! 		 || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
! 		     && gimple_call_internal_p (gsi_stmt (gsi),
! 						IFN_DEFERRED_INIT))))
  	gsi_next_nondebug (&gsi);
        if (gsi_end_p (gsi) || gimple_code (gsi_stmt (gsi)) != GIMPLE_LABEL)
  	return false;
*************** should_warn_for_implicit_fallthrough (gi
*** 2714,2720 ****
    /* Skip all immediately following labels.  */
    while (!gsi_end_p (gsi)
  	 && (gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL
! 	     || gimple_code (gsi_stmt (gsi)) == GIMPLE_PREDICT))
      gsi_next_nondebug (&gsi);
  
    /* { ... something; default:; } */
--- 2748,2757 ----
    /* Skip all immediately following labels.  */
    while (!gsi_end_p (gsi)
  	 && (gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL
! 	     || gimple_code (gsi_stmt (gsi)) == GIMPLE_PREDICT
! 	     || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
! 		 && gimple_call_internal_p (gsi_stmt (gsi),
! 					    IFN_DEFERRED_INIT))))
      gsi_next_nondebug (&gsi);
  
    /* { ... something; default:; } */
*************** expand_FALLTHROUGH_r (gimple_stmt_iterat
*** 2891,2897 ****
  
  	  gimple_stmt_iterator gsi2 = *gsi_p;
  	  stmt = gsi_stmt (gsi2);
! 	  if (gimple_code (stmt) == GIMPLE_GOTO && !gimple_has_location (stmt))
  	    {
  	      /* Go on until the artificial label.  */
  	      tree goto_dest = gimple_goto_dest (stmt);
--- 2928,2960 ----
  
  	  gimple_stmt_iterator gsi2 = *gsi_p;
  	  stmt = gsi_stmt (gsi2);
! 	  if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
! 	      && gimple_code (stmt) == GIMPLE_GOTO
! 	      && VACUOUS_INIT_LABEL_P (gimple_goto_dest (stmt)))
! 	    {
! 	      /* Handle for C++ artificial -ftrivial-auto-var-init=
! 		 sequences.  Those look like:
! 		 goto lab1;
! 		 lab2:;
! 		 v1 = .DEFERRED_INIT (...);
! 		 v2 = .DEFERRED_INIT (...);
! 		 lab3:;
! 		 v3 = .DEFERRED_INIT (...);
! 		 lab1:;
! 		 In this case, a case/default label can be either in between
! 		 the GIMPLE_GOTO and the corresponding GIMPLE_LABEL, if jumps
! 		 from the switch condition to the case/default label cross
! 		 vacuous initialization of some variables, or after the
! 		 corresponding GIMPLE_LABEL, if those jumps don't cross
! 		 any such initialization but there is an adjacent named label
! 		 which crosses such initialization.  So, for the purpose of
! 		 this function, just ignore the goto but until reaching the
! 		 corresponding GIMPLE_LABEL allow also .DEFERRED_INIT
! 		 calls.  */
! 	      gsi_next (&gsi2);
! 	    }
! 	  else if (gimple_code (stmt) == GIMPLE_GOTO
! 		   && !gimple_has_location (stmt))
  	    {
  	      /* Go on until the artificial label.  */
  	      tree goto_dest = gimple_goto_dest (stmt);
*************** expand_FALLTHROUGH_r (gimple_stmt_iterat
*** 2926,2931 ****
--- 2989,2997 ----
  		}
  	      else if (gimple_call_internal_p (stmt, IFN_ASAN_MARK))
  		;
+ 	      else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED
+ 		       && gimple_call_internal_p (stmt, IFN_DEFERRED_INIT))
+ 		;
  	      else if (!is_gimple_debug (stmt))
  		/* Anything else is not expected.  */
  		break;
*************** gimplify_init_constructor (tree *expr_p,
*** 6753,6759 ****
        && clear_padding_type_may_have_padding_p (type)
        && ((AGGREGATE_TYPE_P (type) && !cleared && !is_empty_ctor)
  	  || !AGGREGATE_TYPE_P (type))
!       && is_var_need_auto_init (object))
      gimple_add_padding_init_for_auto_var (object, false, pre_p);
  
    return ret;
--- 6819,6826 ----
        && clear_padding_type_may_have_padding_p (type)
        && ((AGGREGATE_TYPE_P (type) && !cleared && !is_empty_ctor)
  	  || !AGGREGATE_TYPE_P (type))
!       && var_needs_auto_init_p (object)
!       && flag_auto_var_init != AUTO_INIT_CXX26)
      gimple_add_padding_init_for_auto_var (object, false, pre_p);
  
    return ret;
*************** gimplify_target_expr (tree *expr_p, gimp
*** 8460,8465 ****
--- 8527,8533 ----
    if (init)
      {
        gimple_seq init_pre_p = NULL;
+       bool is_vla = false;
  
        /* TARGET_EXPR temps aren't part of the enclosing block, so add it
  	 to the temps list.  Handle also variable length TARGET_EXPRs.  */
*************** gimplify_target_expr (tree *expr_p, gimp
*** 8470,8475 ****
--- 8538,8544 ----
  	  /* FIXME: this is correct only when the size of the type does
  	     not depend on expressions evaluated in init.  */
  	  gimplify_vla_decl (temp, &init_pre_p);
+ 	  is_vla = true;
  	}
        else
  	{
*************** gimplify_target_expr (tree *expr_p, gimp
*** 8481,8486 ****
--- 8550,8564 ----
  	  gimple_add_tmp_var (temp);
  	}
  
+       if (var_needs_auto_init_p (temp) && VOID_TYPE_P (TREE_TYPE (init)))
+ 	{
+ 	  gimple_add_init_for_auto_var (temp, flag_auto_var_init, &init_pre_p);
+ 	  if (flag_auto_var_init == AUTO_INIT_PATTERN
+ 	      && !is_gimple_reg (temp)
+ 	      && clear_padding_type_may_have_padding_p (TREE_TYPE (temp)))
+ 	    gimple_add_padding_init_for_auto_var (temp, is_vla, &init_pre_p);
+ 	}
+ 
        /* If TARGET_EXPR_INITIAL is void, then the mere evaluation of the
  	 expression is supposed to initialize the slot.  */
        if (VOID_TYPE_P (TREE_TYPE (init)))
diff -Nrcpad gcc-16-20250928/gcc/ipa-devirt.cc gcc-16-20251005/gcc/ipa-devirt.cc
*** gcc-16-20250928/gcc/ipa-devirt.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/ipa-devirt.cc	Sun Oct  5 22:32:15 2025
*************** add_type_duplicate (odr_type val, tree t
*** 1801,1807 ****
       before we can pass them to odr_types_equivalent_p (PR lto/83121).  */
    if (lto_location_cache::current_cache)
      lto_location_cache::current_cache->apply_location_cache ();
!   /* As a special case we stream mangles names of integer types so we can see
       if they are believed to be same even though they have different
       representation.  Avoid bogus warning on mismatches in these.  */
    if (TREE_CODE (type) != INTEGER_TYPE
--- 1801,1807 ----
       before we can pass them to odr_types_equivalent_p (PR lto/83121).  */
    if (lto_location_cache::current_cache)
      lto_location_cache::current_cache->apply_location_cache ();
!   /* As a special case we stream mangled names of integer types so we can see
       if they are believed to be same even though they have different
       representation.  Avoid bogus warning on mismatches in these.  */
    if (TREE_CODE (type) != INTEGER_TYPE
diff -Nrcpad gcc-16-20250928/gcc/ipa-param-manipulation.cc gcc-16-20251005/gcc/ipa-param-manipulation.cc
*** gcc-16-20250928/gcc/ipa-param-manipulation.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/ipa-param-manipulation.cc	Sun Oct  5 22:32:16 2025
*************** ipa_param_body_adjustments
*** 1672,1678 ****
     in ADJUSTMENTS.  FNDECL designates the new function clone which is being
     modified.  OLD_FNDECL is the function of which FNDECL is a clone (and which
     at the time of invocation still share DECL_ARGUMENTS).  ID is the
!    copy_body_data structure driving the wholy body copying process.  VARS is a
     pointer to the head of the list of new local variables, TREE_MAP is the map
     that drives tree substitution in the cloning process.  */
  
--- 1672,1678 ----
     in ADJUSTMENTS.  FNDECL designates the new function clone which is being
     modified.  OLD_FNDECL is the function of which FNDECL is a clone (and which
     at the time of invocation still share DECL_ARGUMENTS).  ID is the
!    copy_body_data structure driving the whole body copying process.  VARS is a
     pointer to the head of the list of new local variables, TREE_MAP is the map
     that drives tree substitution in the cloning process.  */
  
diff -Nrcpad gcc-16-20250928/gcc/ipa-profile.cc gcc-16-20251005/gcc/ipa-profile.cc
*** gcc-16-20250928/gcc/ipa-profile.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/ipa-profile.cc	Sun Oct  5 22:32:16 2025
*************** ipa_profile_generate_summary (void)
*** 316,322 ****
  			      count = all;
  			    }
  			  speculative_call_target item (
! 			    val, GCOV_COMPUTE_SCALE (count, all));
  			  csum->speculative_call_targets.safe_push (item);
  			}
  
--- 316,326 ----
  			      count = all;
  			    }
  			  speculative_call_target item (
! 			    val,
! 			    profile_count::from_gcov_type (count)
! 			      .probability_in
! 				(profile_count::from_gcov_type (all))
! 				 .to_reg_br_prob_base ());
  			  csum->speculative_call_targets.safe_push (item);
  			}
  
*************** ipa_propagate_frequency_1 (struct cgraph
*** 621,627 ****
    return edge != NULL;
  }
  
! /* Return ture if NODE contains hot calls.  */
  
  bool
  contains_hot_call_p (struct cgraph_node *node)
--- 625,631 ----
    return edge != NULL;
  }
  
! /* Return true if NODE contains hot calls.  */
  
  bool
  contains_hot_call_p (struct cgraph_node *node)
diff -Nrcpad gcc-16-20250928/gcc/ipa-prop.cc gcc-16-20251005/gcc/ipa-prop.cc
*** gcc-16-20250928/gcc/ipa-prop.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/ipa-prop.cc	Sun Oct  5 22:32:16 2025
*************** struct ipa_cst_ref_desc
*** 130,136 ****
    /* Linked list of duplicates created when call graph edges are cloned.  */
    struct ipa_cst_ref_desc *next_duplicate;
    /* Number of references in IPA structures, IPA_UNDESCRIBED_USE if the value
!      if out of control.  */
    int refcount;
  };
  
--- 130,136 ----
    /* Linked list of duplicates created when call graph edges are cloned.  */
    struct ipa_cst_ref_desc *next_duplicate;
    /* Number of references in IPA structures, IPA_UNDESCRIBED_USE if the value
!      is out of control.  */
    int refcount;
  };
  
diff -Nrcpad gcc-16-20250928/gcc/ipa-split.cc gcc-16-20251005/gcc/ipa-split.cc
*** gcc-16-20250928/gcc/ipa-split.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/ipa-split.cc	Sun Oct  5 22:32:16 2025
*************** split_function (basic_block return_bb, c
*** 1400,1405 ****
--- 1400,1414 ----
    if (fndecl_built_in_p (node->decl))
      set_decl_built_in_function (node->decl, NOT_BUILT_IN, 0);
  
+   /* Drop "clobber *this" attribute from first argument of the split
+      function if any.  Code before that might be initializing the
+      members.  */
+   if (tree arg = DECL_ARGUMENTS (node->decl))
+     if (lookup_attribute ("clobber *this", DECL_ATTRIBUTES (arg)))
+       DECL_ATTRIBUTES (arg)
+ 	= remove_attribute ("clobber *this",
+ 			    copy_list (DECL_ATTRIBUTES (arg)));
+ 
    /* If return_bb contains any clobbers that refer to SSA_NAMEs
       set in the split part, remove them.  Also reset debug stmts that
       refer to SSA_NAMEs set in the split part.  */
diff -Nrcpad gcc-16-20250928/gcc/libgdiagnostics.cc gcc-16-20251005/gcc/libgdiagnostics.cc
*** gcc-16-20250928/gcc/libgdiagnostics.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/libgdiagnostics.cc	Sun Oct  5 22:32:16 2025
*************** struct spec_context : public diagnostics
*** 2481,2489 ****
  {
  public:
    spec_context (const char *option_name,
  		diagnostic_manager &affected_mgr,
  		diagnostic_manager &control_mgr)
!   : context (option_name, affected_mgr.get_line_table ()),
      m_control_mgr (control_mgr)
    {}
  
--- 2481,2491 ----
  {
  public:
    spec_context (const char *option_name,
+ 		const char *unparsed_spec,
  		diagnostic_manager &affected_mgr,
  		diagnostic_manager &control_mgr)
!   : context (option_name, unparsed_spec, nullptr,
! 	     affected_mgr.get_line_table ()),
      m_control_mgr (control_mgr)
    {}
  
*************** diagnostic_manager_add_sink_from_spec (d
*** 2519,2526 ****
    FAIL_IF_NULL (spec);
    FAIL_IF_NULL (control_mgr);
  
!   spec_context ctxt (option_name, *affected_mgr, *control_mgr);
!   auto inner_sink = ctxt.parse_and_make_sink (spec, affected_mgr->get_dc ());
    if (!inner_sink)
      return -1;
    affected_mgr->get_dc ().add_sink (std::move (inner_sink));
--- 2521,2528 ----
    FAIL_IF_NULL (spec);
    FAIL_IF_NULL (control_mgr);
  
!   spec_context ctxt (option_name, spec, *affected_mgr, *control_mgr);
!   auto inner_sink = ctxt.parse_and_make_sink (affected_mgr->get_dc ());
    if (!inner_sink)
      return -1;
    affected_mgr->get_dc ().add_sink (std::move (inner_sink));
diff -Nrcpad gcc-16-20250928/gcc/lto/ChangeLog gcc-16-20251005/gcc/lto/ChangeLog
*** gcc-16-20250928/gcc/lto/ChangeLog	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/lto/ChangeLog	Sun Oct  5 22:32:16 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* Make-lang.in: Add lto_FDAS; enable FDA collection
+ 	(create_fdas_for_lto1): Be sure that build fails if create_gcov fails.
+ 
  2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	* lto-partition.cc (add_node_references_to_partition): Define.
diff -Nrcpad gcc-16-20250928/gcc/lto/Make-lang.in gcc-16-20251005/gcc/lto/Make-lang.in
*** gcc-16-20250928/gcc/lto/Make-lang.in	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/lto/Make-lang.in	Sun Oct  5 22:32:16 2025
*************** LTO_DUMP_INSTALL_NAME := $(shell echo lt
*** 26,43 ****
  # The LTO-specific object files inclued in $(LTO_EXE).
  LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-common.o
  lto_OBJS = $(LTO_OBJS)
  LTO_DUMP_OBJS = lto/lto-lang.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-dump.o lto/lto-common.o
  lto_dump_OBJS = $(LTO_DUMP_OBJS)
  
! # this is only useful in a LTO bootstrap, but this does not work right
! # now. Should reenable after this is fixed, but only when LTO bootstrap
! # is enabled.
! 
! #ifeq ($(if $(wildcard ../stage_current),$(shell cat \
! #  ../stage_current)),stageautofeedback)
! #$(LTO_OBJS): CFLAGS += -fauto-profile=lto1.fda
! #$(LTO_OBJS): lto1.fda
! #endif
  
  # Rules
  
--- 26,40 ----
  # The LTO-specific object files inclued in $(LTO_EXE).
  LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-common.o
  lto_OBJS = $(LTO_OBJS)
+ lto_FDAS = lto1.fda
  LTO_DUMP_OBJS = lto/lto-lang.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-dump.o lto/lto-common.o
  lto_dump_OBJS = $(LTO_DUMP_OBJS)
  
! ifeq ($(if $(wildcard ../stage_current),$(shell cat \
!   ../stage_current)),stageautofeedback)
! $(LTO_OBJS): CFLAGS += -fauto-profile=lto1.fda
! $(LTO_OBJS): lto1.fda
! endif
  
  # Rules
  
*************** create_fdas_for_lto1: ../stage1-gcc/lto1
*** 118,124 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 115,121 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
*************** create_fdas_for_lto1: ../stage1-gcc/lto1
*** 128,134 ****
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 125,131 ----
  	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20250928/gcc/m2/ChangeLog gcc-16-20251005/gcc/m2/ChangeLog
*** gcc-16-20250928/gcc/m2/ChangeLog	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/ChangeLog	Sun Oct  5 22:32:16 2025
***************
*** 1,3 ****
--- 1,26 ----
+ 2025-10-02  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122009
+ 	* gm2-compiler/M2GCCDeclare.mod (PrintKnown): Remove.
+ 	* gm2-gcc/m2type.cc (m2type_BuildEnumerator): Add const modifier.
+ 	* gm2-gcc/m2type.def (BuildEnumerator): Use ConstCharStar type.
+ 	* gm2-gcc/m2type.h (m2type_BuildEnumerator): Add const modifier.
+ 	* gm2-libs/M2WIDESET.mod (ShiftLeftByteBit): Rename variable to
+ 	as toIdx.
+ 	Rename variable from as fromIdx.
+ 	(ShiftRightByteBit): Rename variable to as toIdx.
+ 	Rename variable from as fromIdx.
+ 	(RotateLeft): Rename variable to as toIdx.
+ 	Rename variable from as fromIdx.
+ 	(ArithShiftLeftBit): Rename set to setb.
+ 	(ArithShiftRightBit): Rename set to setb.
+ 
+ 2025-10-01  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/122009
+ 	* pge-boot/Gldtoa.cc (ldtoa_ldtoa): Change int to bool for
+ 	parameter sign.
+ 
  2025-09-21  Mark Wielaard  <mark@klomp.org>
  
  	* lang.opt.urls: Regenerate.
diff -Nrcpad gcc-16-20250928/gcc/m2/gm2-compiler/M2GCCDeclare.mod gcc-16-20251005/gcc/m2/gm2-compiler/M2GCCDeclare.mod
*** gcc-16-20250928/gcc/m2/gm2-compiler/M2GCCDeclare.mod	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/gm2-compiler/M2GCCDeclare.mod	Sun Oct  5 22:32:16 2025
*************** END PrintString ;
*** 4447,4465 ****
  
  
  (*
-    PrintKnown -
- *)
- 
- PROCEDURE PrintKnown (sym: CARDINAL) ;
- BEGIN
-    IF GccKnowsAbout (sym)
-    THEN
-       printf0 ("[gcc]")
-    END
- END PrintKnown ;
- 
- 
- (*
     PrintVerboseFromList - prints the, i, th element in the list, l.
  *)
  
--- 4447,4452 ----
diff -Nrcpad gcc-16-20250928/gcc/m2/gm2-gcc/m2type.cc gcc-16-20251005/gcc/m2/gm2-gcc/m2type.cc
*** gcc-16-20250928/gcc/m2/gm2-gcc/m2type.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/gm2-gcc/m2type.cc	Sun Oct  5 22:32:16 2025
*************** gm2_build_enumerator (location_t locatio
*** 2213,2219 ****
     enumvalues, list.  It returns a copy of the value.  */
  
  tree
! m2type_BuildEnumerator (location_t location, char *name, tree value,
                          tree *enumvalues)
  {
    tree id = get_identifier (name);
--- 2213,2219 ----
     enumvalues, list.  It returns a copy of the value.  */
  
  tree
! m2type_BuildEnumerator (location_t location, const char *name, tree value,
                          tree *enumvalues)
  {
    tree id = get_identifier (name);
diff -Nrcpad gcc-16-20250928/gcc/m2/gm2-gcc/m2type.def gcc-16-20251005/gcc/m2/gm2-gcc/m2type.def
*** gcc-16-20250928/gcc/m2/gm2-gcc/m2type.def	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/gm2-gcc/m2type.def	Sun Oct  5 22:32:16 2025
*************** PROCEDURE BuildPointerType (totype: tree
*** 173,179 ****
                        It returns a copy of the value.  --fixme-- why do this?
  *)
  
! PROCEDURE BuildEnumerator (location: location_t; name: CharStar; value: tree;
                             VAR enumvalues: tree) : tree ;
  
  
--- 173,179 ----
                        It returns a copy of the value.  --fixme-- why do this?
  *)
  
! PROCEDURE BuildEnumerator (location: location_t; name: ConstCharStar; value: tree;
                             VAR enumvalues: tree) : tree ;
  
  
diff -Nrcpad gcc-16-20250928/gcc/m2/gm2-gcc/m2type.h gcc-16-20251005/gcc/m2/gm2-gcc/m2type.h
*** gcc-16-20250928/gcc/m2/gm2-gcc/m2type.h	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/gm2-gcc/m2type.h	Sun Oct  5 22:32:16 2025
*************** EXTERN tree m2type_BuildStartEnumeration
*** 183,189 ****
                                            bool ispacked);
  EXTERN tree m2type_BuildEndEnumeration (location_t location, tree enumtype,
                                          tree enumvalues);
! EXTERN tree m2type_BuildEnumerator (location_t location, char *name,
                                      tree value, tree *enumvalues);
  EXTERN tree m2type_BuildPointerType (tree totype);
  EXTERN tree m2type_BuildConstPointerType (tree totype);
--- 183,189 ----
                                            bool ispacked);
  EXTERN tree m2type_BuildEndEnumeration (location_t location, tree enumtype,
                                          tree enumvalues);
! EXTERN tree m2type_BuildEnumerator (location_t location, const char *name,
                                      tree value, tree *enumvalues);
  EXTERN tree m2type_BuildPointerType (tree totype);
  EXTERN tree m2type_BuildConstPointerType (tree totype);
diff -Nrcpad gcc-16-20250928/gcc/m2/gm2-libs/M2WIDESET.mod gcc-16-20251005/gcc/m2/gm2-libs/M2WIDESET.mod
*** gcc-16-20250928/gcc/m2/gm2-libs/M2WIDESET.mod	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/gm2-libs/M2WIDESET.mod	Sun Oct  5 22:32:16 2025
*************** PROCEDURE ShiftLeftByteBit (VAR dest: AR
*** 490,510 ****
                              highbit: CARDINAL;
                              byteshift, bitshift: CARDINAL) ;
  VAR
!    top, bot, mid : BYTESET ;
!    i, h, from, to: CARDINAL ;
  BEGIN
     (* Copy the bytes into dest at the mostly correct position
        (modulo byte position).  *)
!    to := 0 ;
!    from := 0 ;
!    WHILE to < byteshift DO
!       dest[to] := BYTE (0) ;
!       INC (to)
     END ;
!    WHILE to <= HIGH (dest) DO
!       dest[to] := src[from] ;
!       INC (to) ;
!       INC (from)
     END ;
     (* And adjust by bit shifting.  *)
     IF bitshift > 0
--- 490,510 ----
                              highbit: CARDINAL;
                              byteshift, bitshift: CARDINAL) ;
  VAR
!    top, bot, mid       : BYTESET ;
!    i, h, fromIdx, toIdx: CARDINAL ;
  BEGIN
     (* Copy the bytes into dest at the mostly correct position
        (modulo byte position).  *)
!    toIdx := 0 ;
!    fromIdx := 0 ;
!    WHILE toIdx < byteshift DO
!       dest[toIdx] := BYTE (0) ;
!       INC (toIdx)
     END ;
!    WHILE toIdx <= HIGH (dest) DO
!       dest[toIdx] := src[fromIdx] ;
!       INC (toIdx) ;
!       INC (fromIdx)
     END ;
     (* And adjust by bit shifting.  *)
     IF bitshift > 0
*************** PROCEDURE ShiftRightByteBit (VAR dest: A
*** 567,578 ****
                               highbit: CARDINAL;
                               byteshift, bitshift: CARDINAL) ;
  VAR
!    top, bot, mid : BYTESET ;
!    i, h, to, from: CARDINAL ;
  BEGIN
     (* Copy the bytes.  *)
!    to := 0 ;
!    from := byteshift ;
     IF EnableDebugging
     THEN
        printf ("HIGH (dest) = %d\n", HIGH (dest))
--- 567,578 ----
                               highbit: CARDINAL;
                               byteshift, bitshift: CARDINAL) ;
  VAR
!    top, bot, mid       : BYTESET ;
!    i, h, toIdx, fromIdx: CARDINAL ;
  BEGIN
     (* Copy the bytes.  *)
!    toIdx := 0 ;
!    fromIdx := byteshift ;
     IF EnableDebugging
     THEN
        printf ("HIGH (dest) = %d\n", HIGH (dest))
*************** BEGIN
*** 580,594 ****
     IF byteshift <= HIGH (dest)
     THEN
        h := HIGH (dest) - byteshift ;
!       WHILE to <= h DO
!          dest[to] := src[from] ;
!          INC (to) ;
!          INC (from)
        END
     END ;
!    WHILE to <= HIGH (dest) DO
!       dest[to] := BYTE (0) ;
!       INC (to)
     END ;
     (* And bit shift the remainder.  *)
     IF EnableDebugging
--- 580,594 ----
     IF byteshift <= HIGH (dest)
     THEN
        h := HIGH (dest) - byteshift ;
!       WHILE toIdx <= h DO
!          dest[toIdx] := src[fromIdx] ;
!          INC (toIdx) ;
!          INC (fromIdx)
        END
     END ;
!    WHILE toIdx <= HIGH (dest) DO
!       dest[toIdx] := BYTE (0) ;
!       INC (toIdx)
     END ;
     (* And bit shift the remainder.  *)
     IF EnableDebugging
*************** VAR
*** 691,697 ****
     next  : BOOLEAN ;
     mask,
     unused,
!    set   : BYTESET ;
  BEGIN
     IF EnableDebugging
     THEN
--- 691,697 ----
     next  : BOOLEAN ;
     mask,
     unused,
!    setb  : BYTESET ;
  BEGIN
     IF EnableDebugging
     THEN
*************** BEGIN
*** 704,717 ****
        bytes.  *)
     i := 0 ;
     WHILE i < high DO
!       set := dest[i] ;
!       next := MSB IN set ;
!       set := SHIFT (set, 1) ;  (* Shift left.  *)
        IF carry
        THEN
!          INCL (set, 0)   (* Set bit 0.  *)
        END ;
!       dest[i] := set ;
        carry := next ;
        IF EnableDebugging
        THEN
--- 704,717 ----
        bytes.  *)
     i := 0 ;
     WHILE i < high DO
!       setb := dest[i] ;
!       next := MSB IN setb ;
!       setb := SHIFT (setb, 1) ;  (* Shift left.  *)
        IF carry
        THEN
!          INCL (setb, 0)   (* Set bit 0.  *)
        END ;
!       dest[i] := setb ;
        carry := next ;
        IF EnableDebugging
        THEN
*************** BEGIN
*** 722,748 ****
     END ;
     (* Last byte special case as there may be some unused bits which must be
        preserved.  *)
!    set := dest[high] ;
     unused := BYTESET {} ;  (* Will contain all top unused bits of dest[high].  *)
     mask := - BYTESET {} ;
     topbit := (highbit+1) MOD TBITSIZE (BYTE) ;
     WHILE topbit # 0 DO
        EXCL (mask, topbit) ;
!       IF topbit IN set
        THEN
!          EXCL (set, topbit) ;
           INCL (unused, topbit)
        END ;
        topbit := (topbit+1) MOD TBITSIZE (BYTE)
     END ;
!    set := SHIFT (set, 1) ;  (* Left shift.  *)
     IF carry
     THEN
!       INCL (set, 0)   (* Set bit 0.  *)
     END ;
!    set := set * mask ;  (* Remove all unused bits.  *)
!    set := set + unused ;  (* Restore original unused bits.  *)
!    dest[high] := set ;
     IF EnableDebugging
     THEN
        printf ("ArithShiftLeft shifted byte dest[%d]\n", high);
--- 722,748 ----
     END ;
     (* Last byte special case as there may be some unused bits which must be
        preserved.  *)
!    setb := dest[high] ;
     unused := BYTESET {} ;  (* Will contain all top unused bits of dest[high].  *)
     mask := - BYTESET {} ;
     topbit := (highbit+1) MOD TBITSIZE (BYTE) ;
     WHILE topbit # 0 DO
        EXCL (mask, topbit) ;
!       IF topbit IN setb
        THEN
!          EXCL (setb, topbit) ;
           INCL (unused, topbit)
        END ;
        topbit := (topbit+1) MOD TBITSIZE (BYTE)
     END ;
!    setb := SHIFT (setb, 1) ;  (* Left shift.  *)
     IF carry
     THEN
!       INCL (setb, 0)   (* Set bit 0.  *)
     END ;
!    setb := setb * mask ;  (* Remove all unused bits.  *)
!    setb := setb + unused ;  (* Restore original unused bits.  *)
!    dest[high] := setb ;
     IF EnableDebugging
     THEN
        printf ("ArithShiftLeft shifted byte dest[%d]\n", high);
*************** VAR
*** 785,816 ****
     next  : BOOLEAN ;
     mask,
     unused,
!    set   : BYTESET ;
  BEGIN
     high := HIGH (dest) ;
     (* Clear any unused bits in the highest byte, but save them into unused.  *)
!    set := dest[high] ;
     unused := BYTESET {} ;
     topbit := (highbit+1) MOD TBITSIZE (BYTE) ;
     mask := - BYTESET {} ;
     WHILE topbit # 0 DO
        EXCL (mask, topbit) ;
!       IF topbit IN set
        THEN
!          EXCL (set, topbit) ;
           INCL (unused, topbit)
        END ;
        topbit := (topbit+1) MOD TBITSIZE (BYTE)
     END ;
     (* Start at the top and work down to byte 0.  *)
!    set := set * mask ;  (* Ignore unused bits.  *)
!    next := 0 IN set ;   (* Next carry.  *)
!    set := SHIFT (set, -1) ;   (* Shift right by 1 bit.  *)
     IF carry
     THEN
!       INCL (set, highbit MOD TBITSIZE (BYTE))
     END ;
!    dest[high] := set + unused ;  (* First byte is a special case as we
                                      have to preserve the unused bits.  *)
     (* Now we ripple through the remaining bytes, propagating local
        carry between bytes.  *)
--- 785,816 ----
     next  : BOOLEAN ;
     mask,
     unused,
!    setb  : BYTESET ;
  BEGIN
     high := HIGH (dest) ;
     (* Clear any unused bits in the highest byte, but save them into unused.  *)
!    setb := dest[high] ;
     unused := BYTESET {} ;
     topbit := (highbit+1) MOD TBITSIZE (BYTE) ;
     mask := - BYTESET {} ;
     WHILE topbit # 0 DO
        EXCL (mask, topbit) ;
!       IF topbit IN setb
        THEN
!          EXCL (setb, topbit) ;
           INCL (unused, topbit)
        END ;
        topbit := (topbit+1) MOD TBITSIZE (BYTE)
     END ;
     (* Start at the top and work down to byte 0.  *)
!    setb := setb * mask ;  (* Ignore unused bits.  *)
!    next := 0 IN setb ;   (* Next carry.  *)
!    setb := SHIFT (setb, -1) ;   (* Shift right by 1 bit.  *)
     IF carry
     THEN
!       INCL (setb, highbit MOD TBITSIZE (BYTE))
     END ;
!    dest[high] := setb + unused ;  (* First byte is a special case as we
                                      have to preserve the unused bits.  *)
     (* Now we ripple through the remaining bytes, propagating local
        carry between bytes.  *)
*************** BEGIN
*** 818,831 ****
     WHILE i > 0 DO
        prev := next ;
        DEC (i) ;
!       set := dest[i] ;
!       next := 0 IN set ;
!       set := SHIFT (set, -1) ;
        IF prev
        THEN
!          INCL (set, MSB)
        END ;
!       dest[i] := set
     END
  END ArithShiftRightBit ;
  
--- 818,831 ----
     WHILE i > 0 DO
        prev := next ;
        DEC (i) ;
!       setb := dest[i] ;
!       next := 0 IN setb ;
!       setb := SHIFT (setb, -1) ;
        IF prev
        THEN
!          INCL (setb, MSB)
        END ;
!       dest[i] := setb
     END
  END ArithShiftRightBit ;
  
*************** VAR
*** 914,920 ****
     high,
     highplus1,
     highbitplus1,
!    from, to    : CARDINAL ;
  BEGIN
     IF EnableDebugging
     THEN
--- 914,920 ----
     high,
     highplus1,
     highbitplus1,
!    fromIdx, toIdx: CARDINAL ;
  BEGIN
     IF EnableDebugging
     THEN
*************** BEGIN
*** 925,945 ****
     (* Copy the contents rotating on byte granularity, then
        arithmetically shift the remaining number of bits.  *)
     high := HIGH (dest) ;
!    from := 0 ;
     highplus1 := high + 1 ;
     highbitplus1 := highbit + 1 ;
!    to := RotateCount DIV TBITSIZE (BYTE) ;  (* Byte level granularity.  *)
     REPEAT
!       dest[to] := src[from] ;
        IF EnableDebugging
        THEN
           printf ("RotateLeft after partial byte movement: dest[%d] := src[%d]\n",
!                  to, from);
           DumpSet (dest, highbit)
        END ;
!       from := (from + 1) MOD highplus1 ;
!       to := (to + 1) MOD highplus1 ;
!    UNTIL from = 0 ;
  
     IF EnableDebugging
     THEN
--- 925,945 ----
     (* Copy the contents rotating on byte granularity, then
        arithmetically shift the remaining number of bits.  *)
     high := HIGH (dest) ;
!    fromIdx := 0 ;
     highplus1 := high + 1 ;
     highbitplus1 := highbit + 1 ;
!    toIdx := RotateCount DIV TBITSIZE (BYTE) ;  (* Byte level granularity.  *)
     REPEAT
!       dest[toIdx] := src[fromIdx] ;
        IF EnableDebugging
        THEN
           printf ("RotateLeft after partial byte movement: dest[%d] := src[%d]\n",
!                  toIdx, fromIdx);
           DumpSet (dest, highbit)
        END ;
!       fromIdx := (fromIdx + 1) MOD highplus1 ;
!       toIdx := (toIdx + 1) MOD highplus1 ;
!    UNTIL fromIdx = 0 ;
  
     IF EnableDebugging
     THEN
diff -Nrcpad gcc-16-20250928/gcc/m2/pge-boot/Gldtoa.cc gcc-16-20251005/gcc/m2/pge-boot/Gldtoa.cc
*** gcc-16-20250928/gcc/m2/pge-boot/Gldtoa.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/m2/pge-boot/Gldtoa.cc	Sun Oct  5 22:32:16 2025
*************** ldtoa_strtold (void *s, bool *error)
*** 63,69 ****
  }
  
  char *
! ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, int *sign)
  {
    char format[50];
    char *p;
--- 63,69 ----
  }
  
  char *
! ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, bool *sign)
  {
    char format[50];
    char *p;
diff -Nrcpad gcc-16-20250928/gcc/match.pd gcc-16-20251005/gcc/match.pd
*** gcc-16-20250928/gcc/match.pd	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/match.pd	Sun Oct  5 22:32:16 2025
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 3620,3625 ****
--- 3620,3626 ----
  
  /* Saturation mult for unsigned integer.  */
  (if (INTEGRAL_TYPE_P (type) && TYPE_UNSIGNED (type))
+  (for mult_op (mult widen_mult)
    (match (unsigned_integer_sat_mul @0 @1)
     /* SAT_U_MUL (X, Y) = {
  	WT x = (WT)a * (WT)b;
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 3630,3638 ****
  	  return (T)x;
        }
        while WT is uint128_t, T is uint8_t, uint16_t, uint32_t or uint64_t.  */
!    (convert (min (widen_mult:c@3 (convert@4 @0)
! 				 (convert@5 @1))
! 		   INTEGER_CST@2))
     (if (types_match (type, @0, @1))
      (with
       {
--- 3631,3637 ----
  	  return (T)x;
        }
        while WT is uint128_t, T is uint8_t, uint16_t, uint32_t or uint64_t.  */
!    (convert (min (mult_op:c@3 (convert@4 @0) (convert@5 @1)) INTEGER_CST@2))
     (if (types_match (type, @0, @1))
      (with
       {
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 3640,3663 ****
        unsigned widen_prec = TYPE_PRECISION (TREE_TYPE (@3));
        unsigned cvt4_prec = TYPE_PRECISION (TREE_TYPE (@4));
        unsigned cvt5_prec = TYPE_PRECISION (TREE_TYPE (@5));
!       wide_int c2 = wi::to_wide (@2);
!       wide_int max = wi::mask (prec, false, widen_prec);
!       bool c2_is_max_p = wi::eq_p (c2, max);
!       bool widen_mult_p = cvt4_prec == cvt5_prec && widen_prec == cvt5_prec * 2;
!      }
!      (if (widen_prec > prec && c2_is_max_p && widen_mult_p)))))
!   (match (unsigned_integer_sat_mul @0 @1)
!    (convert (min (mult:c@3 (convert @0) (convert @1)) INTEGER_CST@2))
!    (if (types_match (type, @0, @1))
!     (with
!      {
!       unsigned prec = TYPE_PRECISION (type);
!       unsigned widen_prec = TYPE_PRECISION (TREE_TYPE (@3));
!       wide_int c2 = wi::to_wide (@2);
        wide_int max = wi::mask (prec, false, widen_prec);
!       bool c2_is_max_p = wi::eq_p (c2, max);
       }
!      (if (widen_prec > prec && c2_is_max_p)))))
    (match (unsigned_integer_sat_mul @0 @1)
     /* SAT_U_MUL (X, Y) = {
  	T result;
--- 3639,3654 ----
        unsigned widen_prec = TYPE_PRECISION (TREE_TYPE (@3));
        unsigned cvt4_prec = TYPE_PRECISION (TREE_TYPE (@4));
        unsigned cvt5_prec = TYPE_PRECISION (TREE_TYPE (@5));
! 
        wide_int max = wi::mask (prec, false, widen_prec);
!       bool c2_is_max_p = wi::eq_p (wi::to_wide (@2), max);
! 
!       bool widen_mult_p = mult_op == WIDEN_MULT_EXPR && cvt4_prec == cvt5_prec
! 	&& widen_prec == cvt5_prec * 2 && widen_prec > prec;
!       bool mult_p = mult_op == MULT_EXPR && cvt4_prec == cvt5_prec
! 	&& cvt4_prec == widen_prec && widen_prec > prec;
       }
!      (if (c2_is_max_p && (widen_mult_p || mult_p)))))))
    (match (unsigned_integer_sat_mul @0 @1)
     /* SAT_U_MUL (X, Y) = {
  	T result;
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6808,6813 ****
--- 6799,6832 ----
     @2))
  )
  
+ #if GIMPLE
+ /* Given two integers a and b:
+    (a != b) & ((a|b) != 0) -> (a != b)
+    (a != b) | ((a|b) != 0) -> ((a|b) != 0)
+    (a == b) & ((a|b) == 0) -> ((a|b) == 0)
+    (a == b) | ((a|b) == 0) -> (a == b)
+    (a != b) & ((a|b) == 0) -> false
+    (a == b) | ((a|b) != 0) -> true  */
+ (simplify
+  (bit_and:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop))
+  (ne @0 @1))
+ (simplify
+  (bit_ior:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop))
+  (ne (bit_ior @0 @1) { integer_zero_node; }))
+ (simplify
+  (bit_and:c (eq:c @0 @1) (eq (bit_ior @0 @1) integer_zerop))
+  (eq (bit_ior @0 @1) { integer_zero_node; }))
+ (simplify
+  (bit_ior:c (eq:c @0 @1) (eq (bit_ior @0 @1) integer_zerop))
+  (eq @0 @1))
+ (simplify
+  (bit_and:c (ne:c @0 @1) (eq (bit_ior @0 @1) integer_zerop))
+  { build_zero_cst (type); })
+ (simplify
+  (bit_ior:c (eq:c @0 @1) (ne (bit_ior @0 @1) integer_zerop))
+  { build_one_cst (type); })
+ #endif
+ 
  /* These was part of minmax phiopt.  */
  /* Optimize (a CMP b) ? minmax<a, c> : minmax<b, c>
     to minmax<min/max<a, b>, c> */
diff -Nrcpad gcc-16-20250928/gcc/multiple_target.cc gcc-16-20251005/gcc/multiple_target.cc
*** gcc-16-20250928/gcc/multiple_target.cc	Sun Sep 28 22:33:06 2025
--- gcc-16-20251005/gcc/multiple_target.cc	Sun Oct  5 22:32:16 2025
*************** expand_target_clones (struct cgraph_node
*** 423,483 ****
    return true;
  }
  
! /* When NODE is a target clone, consider all callees and redirect
!    to a clone with equal target attributes.  That prevents multiple
!    multi-versioning dispatches and a call-chain can be optimized.
! 
!    This optimisation might pick the wrong version in some cases, since knowing
!    that we meet the target requirements for a matching callee version does not
!    tell us that we won't also meet the target requirements for a higher
!    priority callee version at runtime.  Since this is longstanding behaviour
!    for x86 and powerpc, we preserve it for those targets, but skip the optimisation
!    for targets that use the "target_version" attribute for multi-versioning.  */
  
  static void
  redirect_to_specific_clone (cgraph_node *node)
  {
!   cgraph_function_version_info *fv = node->function_version ();
!   if (fv == NULL)
!     return;
! 
!   gcc_assert (TARGET_HAS_FMV_TARGET_ATTRIBUTE);
!   tree attr_target = lookup_attribute ("target", DECL_ATTRIBUTES (node->decl));
!   if (attr_target == NULL_TREE)
      return;
  
    /* We need to remember NEXT_CALLER as it could be modified in the loop.  */
    for (cgraph_edge *e = node->callees; e ; e = e->next_callee)
      {
!       cgraph_function_version_info *fv2 = e->callee->function_version ();
!       if (!fv2)
  	continue;
  
!       tree attr_target2 = lookup_attribute ("target",
! 					    DECL_ATTRIBUTES (e->callee->decl));
  
!       /* Function is not calling proper target clone.  */
!       if (attr_target2 == NULL_TREE
! 	  || !attribute_value_equal (attr_target, attr_target2))
  	{
! 	  while (fv2->prev != NULL)
! 	    fv2 = fv2->prev;
  
! 	  /* Try to find a clone with equal target attribute.  */
! 	  for (; fv2 != NULL; fv2 = fv2->next)
  	    {
! 	      cgraph_node *callee = fv2->this_node;
! 	      attr_target2 = lookup_attribute ("target",
! 					       DECL_ATTRIBUTES (callee->decl));
! 	      if (attr_target2 != NULL_TREE
! 		  && attribute_value_equal (attr_target, attr_target2))
  		{
! 		  e->redirect_callee (callee);
! 		  cgraph_edge::redirect_call_stmt_to_callee (e);
  		  break;
  		}
  	    }
  	}
      }
  }
  
--- 423,522 ----
    return true;
  }
  
! /* When NODE is part of an FMV function set, consider all callees and check if
!    any can provably always resolve a certain version and then call that version
!    directly.  */
  
  static void
  redirect_to_specific_clone (cgraph_node *node)
  {
!   if (!targetm.compare_version_priority || !optimize)
      return;
  
    /* We need to remember NEXT_CALLER as it could be modified in the loop.  */
    for (cgraph_edge *e = node->callees; e ; e = e->next_callee)
      {
!       /* Only if this is a call to a dispatched symbol.  */
!       if (!e->callee->dispatcher_function)
  	continue;
  
!       cgraph_function_version_info *callee_v
! 	= e->callee->function_version ();
!       cgraph_function_version_info *caller_v
! 	= e->caller->function_version ();
  
!       gcc_assert (callee_v);
! 
!       /* Find the default nodes for both callee and caller (if present).  */
!       cgraph_function_version_info *callee_default_v = callee_v->next;
!       cgraph_function_version_info *caller_default_v = caller_v;
!       if (caller_v)
  	{
! 	  while (caller_default_v->prev)
! 	    caller_default_v = caller_default_v->prev;
! 	  if (!is_function_default_version (caller_default_v->this_node->decl))
! 	    caller_default_v = NULL;
! 	}
  
!       /* If this is not the TU that contains the definition of the default
! 	 version we are not guaranteed to have visibility of all versions
! 	 so cannot reason about them.  */
!       if (!callee_default_v
! 	  || !callee_default_v->this_node->binds_to_current_def_p ())
! 	continue;
! 
!       cgraph_function_version_info *highest_callable_fn = NULL;
!       for (cgraph_function_version_info *ver = callee_v->next;
! 	   ver;
! 	   ver = ver->next)
! 	if (targetm.target_option.functions_b_resolvable_from_a
! 	      (node->decl, ver->this_node->decl, node->decl))
! 	  highest_callable_fn = ver;
! 
!       if (!highest_callable_fn)
! 	continue;
! 
!       bool inlinable = true;
! 
!       /* If there are higher priority versions of callee and caller has no
! 	 more version information, then not callable.  */
!       if (highest_callable_fn->next)
! 	{
! 	  /* If this is not the TU where the callee default is defined then
! 	     cannot reason about the caller versions.  */
! 	  if (!caller_default_v
! 	      || !caller_default_v->this_node->binds_to_current_def_p ())
! 	    continue;
! 
! 	  /* If every higher priority version would imply a higher priority
! 	     version of caller would have been selected, then this is
! 	     callable.  */
! 	  for (cgraph_function_version_info *callee_ver
! 	       = highest_callable_fn->next;
! 	       callee_ver; callee_ver = callee_ver->next)
  	    {
! 	      bool is_possible = true;
! 	      for (cgraph_function_version_info *caller_ver = caller_v->next;
! 		   caller_ver; caller_ver = caller_ver->next)
! 		if (targetm.target_option.functions_b_resolvable_from_a
! 		      (callee_ver->this_node->decl, caller_ver->this_node->decl,
! 		       node->decl))
! 		  {
! 		    is_possible = false;
! 		    break;
! 		  }
! 	      if (is_possible)
  		{
! 		  inlinable = false;
  		  break;
  		}
  	    }
  	}
+       if (inlinable)
+ 	{
+ 	  e->redirect_callee (highest_callable_fn->this_node);
+ 	  cgraph_edge::redirect_call_stmt_to_callee (e);
+ 	}
      }
  }
  
*************** ipa_target_clone (bool early)
*** 566,574 ****
    for (unsigned i = 0; i < to_dispatch.length (); i++)
      create_dispatcher_calls (to_dispatch[i]);
  
!   if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
!     FOR_EACH_FUNCTION (node)
!       redirect_to_specific_clone (node);
  
    return 0;
  }
--- 605,612 ----
    for (unsigned i = 0; i < to_dispatch.length (); i++)
      create_dispatcher_calls (to_dispatch[i]);
  
!   FOR_EACH_FUNCTION (node)
!     redirect_to_specific_clone (node);
  
    return 0;
  }
diff -Nrcpad gcc-16-20250928/gcc/opts-diagnostic.cc gcc-16-20251005/gcc/opts-diagnostic.cc
*** gcc-16-20250928/gcc/opts-diagnostic.cc	Sun Sep 28 22:33:07 2025
--- gcc-16-20251005/gcc/opts-diagnostic.cc	Sun Oct  5 22:32:16 2025
*************** public:
*** 47,58 ****
  		    diagnostics::context &dc,
  		    line_maps *location_mgr,
  		    location_t loc,
! 		    const char *option_name)
!   : dc_spec_context (dc,
  		     location_mgr,
  		     location_mgr,
! 		     loc,
! 		     option_name),
      m_opts (opts)
    {}
  
--- 47,61 ----
  		    diagnostics::context &dc,
  		    line_maps *location_mgr,
  		    location_t loc,
! 		    const char *option_name,
! 		    const char *option_value)
!   : dc_spec_context (option_name,
! 		     option_value,
! 		     nullptr,
  		     location_mgr,
+ 		     dc,
  		     location_mgr,
! 		     loc),
      m_opts (opts)
    {}
  
*************** public:
*** 72,88 ****
  void
  handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts,
  				     diagnostics::context &dc,
! 				     const char *arg,
  				     location_t loc)
  {
!   gcc_assert (arg);
    gcc_assert (line_table);
  
    const char *const option_name = "-fdiagnostics-add-output=";
    DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
! 				 "handling: %s%s", option_name, arg);
!   opt_spec_context ctxt (opts, dc, line_table, loc, option_name);
!   auto sink = ctxt.parse_and_make_sink (arg, dc);
    if (!sink)
      return;
  
--- 75,91 ----
  void
  handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts,
  				     diagnostics::context &dc,
! 				     const char *unparsed_spec,
  				     location_t loc)
  {
!   gcc_assert (unparsed_spec);
    gcc_assert (line_table);
  
    const char *const option_name = "-fdiagnostics-add-output=";
    DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
! 				 "handling: %s%s", option_name, unparsed_spec);
!   opt_spec_context ctxt (opts, dc, line_table, loc, option_name, unparsed_spec);
!   auto sink = ctxt.parse_and_make_sink (dc);
    if (!sink)
      return;
  
*************** handle_OPT_fdiagnostics_add_output_ (con
*** 93,109 ****
  void
  handle_OPT_fdiagnostics_set_output_ (const gcc_options &opts,
  				     diagnostics::context &dc,
! 				     const char *arg,
  				     location_t loc)
  {
!   gcc_assert (arg);
    gcc_assert (line_table);
  
    const char *const option_name = "-fdiagnostics-set-output=";
    DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
! 				 "handling: %s%s", option_name, arg);
!   opt_spec_context ctxt (opts, dc, line_table, loc, option_name);
!   auto sink = ctxt.parse_and_make_sink (arg, dc);
    if (!sink)
      return;
  
--- 96,112 ----
  void
  handle_OPT_fdiagnostics_set_output_ (const gcc_options &opts,
  				     diagnostics::context &dc,
! 				     const char *unparsed_spec,
  				     location_t loc)
  {
!   gcc_assert (unparsed_spec);
    gcc_assert (line_table);
  
    const char *const option_name = "-fdiagnostics-set-output=";
    DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (),
! 				 "handling: %s%s", option_name, unparsed_spec);
!   opt_spec_context ctxt (opts, dc, line_table, loc, option_name, unparsed_spec);
!   auto sink = ctxt.parse_and_make_sink (dc);
    if (!sink)
      return;
  
diff -Nrcpad gcc-16-20250928/gcc/params.opt gcc-16-20251005/gcc/params.opt
*** gcc-16-20250928/gcc/params.opt	Sun Sep 28 22:33:07 2025
--- gcc-16-20251005/gcc/params.opt	Sun Oct  5 22:32:16 2025
*************** Enable asan stack protection.
*** 66,71 ****
--- 66,75 ----
  Common Joined UInteger Var(param_asan_use_after_return) Init(1) IntegerRange(0, 1) Param Optimization
  Enable asan detection of use-after-return bugs.
  
+ -param=auto-profile-bbs=
+ Common Joined UInteger Var(param_auto_profile_bbs) Init(1) IntegerRange(0, 1) Param Optimization
+ Build basic block profile using auto profile
+ 
  -param=cycle-accurate-model=
  Common Joined UInteger Var(param_cycle_accurate_model) Init(1) IntegerRange(0, 1) Param Optimization
  Whether the scheduling description is mostly a cycle-accurate model of the target processor and is likely to be spill aggressively to fill any pipeline bubbles.
diff -Nrcpad gcc-16-20250928/gcc/passes.def gcc-16-20251005/gcc/passes.def
*** gcc-16-20250928/gcc/passes.def	Sun Sep 28 22:33:07 2025
--- gcc-16-20251005/gcc/passes.def	Sun Oct  5 22:32:16 2025
*************** along with GCC; see the file COPYING3.
*** 369,375 ****
        NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true);
        NEXT_PASS (pass_sink_code, true /* unsplit edges */);
        NEXT_PASS (pass_phiopt, false /* early_p */);
-       NEXT_PASS (pass_fold_builtins);
        NEXT_PASS (pass_optimize_widening_mul);
        NEXT_PASS (pass_store_merging);
        /* If DCE is not run before checking for uninitialized uses,
--- 369,374 ----
*************** along with GCC; see the file COPYING3.
*** 405,416 ****
        NEXT_PASS (pass_ccp, true /* nonzero_p */);
        NEXT_PASS (pass_post_ipa_warn);
        NEXT_PASS (pass_object_sizes);
-       /* Fold remaining builtins.  */
-       NEXT_PASS (pass_fold_builtins);
        NEXT_PASS (pass_strlen);
!       /* Copy propagation also copy-propagates constants, this is necessary
!          to forward object-size and builtin folding results properly.  */
!       NEXT_PASS (pass_copy_prop);
        NEXT_PASS (pass_dce);
        /* Profile count may overflow as a result of inlinining very large
           loop nests.  This pass should run before any late pass that makes
--- 404,412 ----
        NEXT_PASS (pass_ccp, true /* nonzero_p */);
        NEXT_PASS (pass_post_ipa_warn);
        NEXT_PASS (pass_object_sizes);
        NEXT_PASS (pass_strlen);
!       /* Fold remaining builtins.  */
!       NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true);
        NEXT_PASS (pass_dce);
        /* Profile count may overflow as a result of inlinining very large
           loop nests.  This pass should run before any late pass that makes
diff -Nrcpad gcc-16-20250928/gcc/predict.cc gcc-16-20251005/gcc/predict.cc
*** gcc-16-20250928/gcc/predict.cc	Sun Sep 28 22:33:07 2025
--- gcc-16-20251005/gcc/predict.cc	Sun Oct  5 22:32:17 2025
*************** unlikely_executed_stmt_p (gimple *stmt)
*** 852,858 ****
       heuristics.  */
    if (gimple_bb (stmt)->count.reliable_p ()
        && gimple_bb (stmt)->count.nonzero_p ())
!     return gimple_bb (stmt)->count == profile_count::zero ();
    /* NORETURN attribute alone is not strong enough: exit() may be quite
       likely executed once during program run.  */
    if (gimple_call_fntype (stmt)
--- 852,858 ----
       heuristics.  */
    if (gimple_bb (stmt)->count.reliable_p ()
        && gimple_bb (stmt)->count.nonzero_p ())
!     return false;
    /* NORETURN attribute alone is not strong enough: exit() may be quite
       likely executed once during program run.  */
    if (gimple_call_fntype (stmt)
*************** rebuild_frequencies (void)
*** 4521,4526 ****
--- 4521,4529 ----
        && (!uninitialized_count_found || uninitialized_probablity_found)
        && !cfun->cfg->count_max.very_large_p ())
      {
+       /* Propagating zero counts should be safe and may
+ 	 help hot/cold splitting.  */
+       determine_unlikely_bbs ();
        if (dump_file)
  	fprintf (dump_file, "Profile is consistent\n");
        return;
*************** rebuild_frequencies (void)
*** 4545,4550 ****
--- 4548,4556 ----
       for a given run, we would only propagate the error further.  */
    if (feedback_found && !uninitialized_count_found)
      {
+       /* Propagating zero counts should be safe and may
+ 	 help hot/cold splitting.  */
+       determine_unlikely_bbs ();
        if (dump_file)
  	fprintf (dump_file,
  	    "Profile is inconsistent but read from profile feedback;"
diff -Nrcpad gcc-16-20250928/gcc/sched-rgn.cc gcc-16-20251005/gcc/sched-rgn.cc
*** gcc-16-20250928/gcc/sched-rgn.cc	Sun Sep 28 22:33:08 2025
--- gcc-16-20251005/gcc/sched-rgn.cc	Sun Oct  5 22:32:17 2025
*************** compute_trg_info (int trg)
*** 1532,1538 ****
  	  int tf = prob[trg], cf = prob[i];
  
  	  /* In CFGs with low probability edges TF can possibly be zero.  */
! 	  sp->src_prob = (tf ? GCOV_COMPUTE_SCALE (cf, tf) : 0);
  	  sp->is_valid = (sp->src_prob >= min_spec_prob);
  	}
  
--- 1532,1543 ----
  	  int tf = prob[trg], cf = prob[i];
  
  	  /* In CFGs with low probability edges TF can possibly be zero.  */
! 	  sp->src_prob = (tf ?
! 			  profile_count::from_gcov_type (cf)
! 			    .probability_in
! 			      (profile_count::from_gcov_type (tf))
! 				.to_reg_br_prob_base ()
! 			  : 0);
  	  sp->is_valid = (sp->src_prob >= min_spec_prob);
  	}
  
diff -Nrcpad gcc-16-20250928/gcc/simplify-rtx.cc gcc-16-20251005/gcc/simplify-rtx.cc
*** gcc-16-20250928/gcc/simplify-rtx.cc	Sun Sep 28 22:33:08 2025
--- gcc-16-20251005/gcc/simplify-rtx.cc	Sun Oct  5 22:32:17 2025
*************** simplify_context::simplify_binary_operat
*** 3465,3471 ****
  	return plus_constant (mode, op0, trunc_int_for_mode (-offset, mode));
  
        /* Don't let a relocatable value get a negative coeff.  */
!       if (poly_int_rtx_p (op1) && GET_MODE (op0) != VOIDmode)
  	return simplify_gen_binary (PLUS, mode,
  				    op0,
  				    neg_poly_int_rtx (mode, op1));
--- 3465,3473 ----
  	return plus_constant (mode, op0, trunc_int_for_mode (-offset, mode));
  
        /* Don't let a relocatable value get a negative coeff.  */
!       if (is_a <scalar_int_mode> (mode)
! 	  && poly_int_rtx_p (op1)
! 	  && GET_MODE (op0) != VOIDmode)
  	return simplify_gen_binary (PLUS, mode,
  				    op0,
  				    neg_poly_int_rtx (mode, op1));
diff -Nrcpad gcc-16-20250928/gcc/target.def gcc-16-20251005/gcc/target.def
*** gcc-16-20250928/gcc/target.def	Sun Sep 28 22:33:08 2025
--- gcc-16-20251005/gcc/target.def	Sun Oct  5 22:32:17 2025
*************** DEFHOOK
*** 6934,6939 ****
--- 6934,6961 ----
   bool, (string_slice fn1, string_slice fn2),
   hook_stringslice_stringslice_unreachable)
  
+ /* Checks if we can be certain that function DECL_A could resolve DECL_B.  */
+ DEFHOOK
+ (functions_b_resolvable_from_a,
+  "@var{decl_b} is a function declaration with a function multi-versioning\n\
+ (FMV) attribute; this attribute is either @code{target} or\n\
+ @code{target_version}, depending on @code{TARGET_HAS_FMV_TARGET_ATTRIBUTE}.\n\
+ @var{decl_a} is a function declaration that may or may not have an FMV\n\
+ attribute.\n\
+ \n\
+ Return true if we have enough information to determine that the\n\
+ requirements of @var{decl_b}'s FMV attribute are met whenever @var{decl_a}\n\
+ is executed, given that the target supports all features required by\n\
+ function declaration @var{base}.\n\
+ \n\
+ The default implementation just checks whether @var{decl_a} has the same\n\
+ FMV attribute as @var{decl_b}.  This is conservatively correct,\n\
+ but ports can do better by taking the relationships between architecture\n\
+ features into account.  For example, on AArch64, @code{sve} is present\n\
+ whenever @code{sve2} is present.",
+  bool, (tree decl_a, tree decl_v, tree base),
+  functions_b_resolvable_from_a)
+ 
  /* Function to determine if one function can inline another function.  */
  #undef HOOK_PREFIX
  #define HOOK_PREFIX "TARGET_"
diff -Nrcpad gcc-16-20250928/gcc/testsuite/ChangeLog gcc-16-20251005/gcc/testsuite/ChangeLog
*** gcc-16-20250928/gcc/testsuite/ChangeLog	Sun Sep 28 22:33:08 2025
--- gcc-16-20251005/gcc/testsuite/ChangeLog	Sun Oct  5 22:32:17 2025
***************
*** 1,3 ****
--- 1,426 ----
+ 2025-10-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c: Add asm check
+ 	for vwaddu.wx.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c: Ditto.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h: Add test helper
+ 	macros.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h: Add test
+ 	helper macros and data.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h: New test.
+ 	* gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c: New test.
+ 
+ 2025-10-05  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/122053
+ 	* g++.dg/modules/pr122053_a.C: New test.
+ 	* g++.dg/modules/pr122053_b.C: New test.
+ 
+ 2025-10-05  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	* g++.dg/modules/namespace-1_c.C: Adjust to expect errors.
+ 	* g++.dg/modules/namespace-2_b.C: Likewise.
+ 	* g++.dg/modules/namespace-3_a.C: Removed.
+ 	* g++.dg/modules/namespace-3_b.C: Removed.
+ 
+ 2025-10-05  Franck Behaghel  <franckbehaghel_gcc@protonmail.com>
+ 
+ 	* gnat.dg/allocator3.adb: New test.
+ 
+ 2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113536
+ 	* gnat.dg/reduce2.adb: New test.
+ 
+ 2025-10-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107968
+ 	* gfortran.dg/implied_do_io_9.f90: New test.
+ 
+ 2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122153
+ 	* gcc.dg/tree-ssa/pr122153-1.c: New test.
+ 
+ 2025-10-04  Matteo Nicoli  <matteo.nicoli001@gmail.com>
+ 
+ 	PR tree-optimization/117760
+ 	* gcc.dg/int-bwise-opt-1.c: New test.
+ 	* gcc.dg/int-bwise-opt-2.c: New test.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122104
+ 	* gcc.target/i386/pr122104.c: New test.
+ 
+ 2025-10-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/122114
+ 	* gcc.target/riscv/pr122114.c: New test.
+ 
+ 2025-10-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122147
+ 	* gcc.target/riscv/pr122147.c: New test.
+ 
+ 2025-10-04  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	PR target/118945
+ 	* gcc.target/riscv/rvv/autovec/pr118945-1.c: New file.
+ 	* gcc.target/riscv/rvv/autovec/pr118945-2.c: New file.
+ 
+ 2025-10-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/use_type1.adb: New test.
+ 	* gnat.dg/use_type2.adb: Likewise.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp2a/constexpr-new28.C: New test.
+ 	* g++.dg/cpp2a/constexpr-new29.C: New test.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114457
+ 	* g++.dg/cpp1y/vla-initlist1.C: Remove dg-skip-if for powerpc.
+ 	Initialize i to 43 for ctor from initializer_list and expect value
+ 	43 instead of 42.
+ 	* g++.dg/cpp26/attr-indeterminate1.C: New test.
+ 	* g++.dg/cpp26/attr-indeterminate2.C: New test.
+ 	* g++.dg/cpp26/attr-indeterminate3.C: New test.
+ 	* g++.dg/cpp26/attr-indeterminate4.C: New test.
+ 	* g++.dg/cpp26/erroneous1.C: New test.
+ 	* g++.dg/cpp26/erroneous2.C: New test.
+ 	* g++.dg/cpp26/erroneous3.C: New test.
+ 	* g++.dg/cpp26/erroneous4.C: New test.
+ 	* g++.dg/opt/store-merging-1.C: Add
+ 	-ftrivial-auto-var-init=uninitialized to dg-options.
+ 	* g++.dg/uninit-pred-loop-1_b.C: Expect a warning for C++26.
+ 	* g++.dg/warn/Wuninitialized-13.C: Expect warning on a different
+ 	line.
+ 	* c-c++-common/ubsan/vla-1.c: Add
+ 	-ftrivial-auto-var-init=uninitialized to dg-options.
+ 	* c-c++-common/uninit-17.c: For c++26 expect warning on a different
+ 	line.
+ 	* g++.dg/warn/Warray-bounds-20.C: Expect warning on a different line.
+ 	* c-c++-common/analyzer/invalid-shift-1.c: Xfail for c++26 until
+ 	PR122044 is fixed.
+ 	* g++.dg/analyzer/exception-value-2.C: Skip for c++26 until PR122044
+ 	is fixed.
+ 	* c-c++-common/goacc-gomp/nesting-1.c: Skip for c++26 until PR121975
+ 	is fixed.
+ 	* c-c++-common/goacc/kernels-decompose-2.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr100400-1-1.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr100400-1-3.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104061-1-1.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104061-1-3.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104061-1-4.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104132-1.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104133-1.c: Likewise.
+ 	* c-c++-common/goacc/kernels-decompose-pr104774-1.c: Likewise.
+ 	* c-c++-common/goacc/mdc-1.c: Likewise.
+ 
+ 2025-10-04  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/122127
+ 	PR c++/112632
+ 	* g++.dg/cpp0x/lambda/lambda-template18.C: New test.
+ 
+ 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/117658
+ 	* g++.dg/modules/adl-6_c.C: Adjust diagnostics.
+ 	* g++.dg/modules/internal-14_c.C: Likewise.
+ 	* g++.dg/modules/internal-15_a.C: New test.
+ 	* g++.dg/modules/internal-15_b.C: New test.
+ 
+ 2025-10-03  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
+ 
+ 	PR c++/122112
+ 	* g++.dg/parse/auto-struct-param.C: New test.
+ 
+ 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	Revert:
+ 	2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc.dg/plugin/diagnostic_plugin_test_graphs.cc
+ 	(report_diag_with_graphs): Port from set_attr to set_property.
+ 
+ 2025-10-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/121937
+ 	* gcc.target/riscv/pr121937.c: New test.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gcc.dg/tree-ssa/builtin-fprintf-1.c: Update to scan optimized.
+ 	* gcc.dg/tree-ssa/builtin-fprintf-chk-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-printf-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-printf-chk-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-vfprintf-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-vprintf-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/builtin-vprintf-chk-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-10.c: Likewise.
+ 	* gcc.dg/builtin-unreachable-5.c: Likewise.
+ 	* gcc.dg/builtin-unreachable-6.c: Likewise.
+ 	* gcc.dg/builtin-unreachable-6a.c: Likewise.
+ 	* gcc.dg/builtin-unreachable-7.c: Likewise.
+ 	* gcc.dg/pr78408-2.c: Change fab1 to forwprop1 as that
+ 	optimization was moved there a while back.
+ 	* gcc.dg/tree-ssa/pr79691.c: Udpate scanning for 9
+ 	constant to return.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122033
+ 	* gcc.dg/tree-ssa/pr122033-1.c: New test.
+ 	* gcc.dg/tree-ssa/pr122033-2.c: New test.
+ 
+ 2025-10-03  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* gcc.target/aarch64/asm-flag-1.c: Scan for lt.
+ 	* gcc.target/aarch64/vector-compare-5.c: Use scan-tree-dump-times.
+ 	* gcc.target/aarch64/simd/fold_to_highpart_5.c: Scan for sabal2
+ 	and uabal2.
+ 	* gcc.target/aarch64/sve/mixed_size_6.c: Scan for absence of
+ 	index with 2.
+ 	* gcc.target/aarch64/declare-simd-2.c: Scan for _ZGVnM4ul2v_f05
+ 	and_ZGVnN8ul2v_f05
+ 	* gcc.target/aarch64/sve/arith_1.c: Remove duplicate
+ 	scan-assembler patterns.
+ 	* gcc.target/aarch64/sve/cond_fmaxnm_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fmaxnm_5.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fminnm_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fminnm_5.c: Likewise
+ 	* gcc.target/aarch64/sve/pcs/annotate_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/uzp1_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/uzp2_1.c: Likewise.
+ 	* gcc.target/aarch64/scalar_intrinsics.c: Scan for ursra.
+ 	* gcc.target/aarch64/singleton_intrinsics_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fmaxnm_3.c: Fix register modifiers in
+ 	scan patterns.
+ 	* gcc.target/aarch64/sve/cond_fmaxnm_7.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fminnm_3.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fminnm_7.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fmul_3.c: Likewise.
+ 	* gcc.target/aarch64/sve/cond_fsubr_3.c: Likewise.
+ 	* gcc.target/aarch64/ldp_stp_18.c: Fix typos in scan patterns.
+ 	* gcc.target/aarch64/sve/pcs/return_6.c: Likewise.
+ 	* gcc.target/aarch64/ror_2.c: Adjust constants to ensure
+ 	scan-assembler patterns are unique.
+ 	* gcc.target/aarch64/sve/struct_move_3.c: Likewise.
+ 	* gcc.target/aarch64/sve/struct_move_6.c: Likewise.
+ 	* gcc.target/aarch64/builtin_pld_pli.c: Use check-function-bodies
+ 	* gcc.target/aarch64/csinc-1.c: Likewise.
+ 	* gcc.target/aarch64/csneg-1.c: Likewise.
+ 	* gcc.target/aarch64/flt_mov_immediate_1.c: Likewise.
+ 	* gcc.target/aarch64/scalar_shift_1.c: Likewise.
+ 
+ 2025-10-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/122089
+ 	* gfortran.dg/pdt_52.f03: New test.
+ 	* gfortran.dg/pdt_53.f03: New test.
+ 	* gfortran.dg/pdt_54.f03: New test.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc.dg/plugin/diagnostic_plugin_test_graphs.cc
+ 	(report_diag_with_graphs): Port from set_attr to set_property.
+ 
+ 2025-10-02  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* gcc.dg/c2y-init-2.c, gcc.dg/c2y-init-3.c: New tests.
+ 
+ 2025-10-02  Aurelien Jarno  <aurelien@aurel32.net>
+ 
+ 	PR target/121652
+ 	* gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c: Adjust
+ 	scan pattern for fewer instances of frflags/fsrflags.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc.dg/plugin/start_unit_plugin.cc: Fix typo in comment.
+ 
+ 2025-10-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122051
+ 	* gcc.target/riscv/pr122051.c: New test.
+ 
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* gcc.target/aarch64/mv-error11.c: New test.
+ 	* gcc.target/aarch64/mv-error12.c: New test.
+ 
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* gcc.target/aarch64/mv-and-mvc-error1.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc-error2.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc-error3.c: New test.
+ 	* gcc.target/aarch64/mv-error1.c: New test.
+ 	* gcc.target/aarch64/mv-error2.c: New test.
+ 	* gcc.target/aarch64/mv-error3.c: New test.
+ 	* gcc.target/aarch64/mv-error4.c: New test.
+ 	* gcc.target/aarch64/mv-error5.c: New test.
+ 	* gcc.target/aarch64/mv-error6.c: New test.
+ 	* gcc.target/aarch64/mv-error7.c: New test.
+ 	* gcc.target/aarch64/mv-error8.c: New test.
+ 	* gcc.target/aarch64/mv-error9.c: New test.
+ 	* gcc.target/aarch64/mv-error10.c: New test.
+ 	* gcc.target/aarch64/mvc-error1.c: New test.
+ 	* gcc.target/aarch64/mvc-error2.c: New test.
+ 	* gcc.target/aarch64/mvc-warning1.c: New test.
+ 
+ 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* gcc.target/aarch64/mv-1.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc1.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc2.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc3.c: New test.
+ 	* gcc.target/aarch64/mv-and-mvc4.c: New test.
+ 	* gcc.target/aarch64/mv-symbols1.c: New test.
+ 	* gcc.target/aarch64/mv-symbols10.c: New test.
+ 	* gcc.target/aarch64/mv-symbols11.c: New test.
+ 	* gcc.target/aarch64/mv-symbols12.c: New test.
+ 	* gcc.target/aarch64/mv-symbols13.c: New test.
+ 	* gcc.target/aarch64/mv-symbols14.c: New test.
+ 	* gcc.target/aarch64/mv-symbols2.c: New test.
+ 	* gcc.target/aarch64/mv-symbols3.c: New test.
+ 	* gcc.target/aarch64/mv-symbols4.c: New test.
+ 	* gcc.target/aarch64/mv-symbols5.c: New test.
+ 	* gcc.target/aarch64/mv-symbols6.c: New test.
+ 	* gcc.target/aarch64/mv-symbols7.c: New test.
+ 	* gcc.target/aarch64/mv-symbols8.c: New test.
+ 	* gcc.target/aarch64/mv-symbols9.c: New test.
+ 	* gcc.target/aarch64/mvc-symbols1.c: New test.
+ 	* gcc.target/aarch64/mvc-symbols2.c: New test.
+ 	* gcc.target/aarch64/mvc-symbols3.c: New test.
+ 	* gcc.target/aarch64/mvc-symbols4.c: New test.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* gcc.dg/torture/pr122079-2.c: New testcase.
+ 	* gcc.dg/torture/pr122079-3.c: Likewise.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* gcc.dg/torture/pr122079-1.c: New testcase.
+ 
+ 2025-10-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122106
+ 	* gcc.target/riscv/pr122106.c: New test.
+ 
+ 2025-10-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122080
+ 	* gfortran.dg/ubsan/missing_optional_dummy_9.f90: New test.
+ 
+ 2025-10-01  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/122066
+ 	* gcc.c-torture/compile/pr122066.c: New test.
+ 
+ 2025-10-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120560
+ 	* gcc.dg/pr120560.c: New.
+ 
+ 2025-10-01  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/122089
+ 	* gfortran.dg/pdt_51.f03: New test.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* lib/sarif.py: Remove import of ET.
+ 
+ 2025-09-30  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* g++.target/aarch64/fmv-selection1.C: New test.
+ 	* g++.target/aarch64/fmv-selection2.C: New test.
+ 	* g++.target/aarch64/fmv-selection3.C: New test.
+ 	* g++.target/aarch64/fmv-selection4.C: New test.
+ 	* g++.target/aarch64/fmv-selection5.C: New test.
+ 	* g++.target/aarch64/fmv-selection6.C: New test.
+ 	* g++.target/aarch64/fmv-selection7.C: New test.
+ 
+ 2025-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gcc.dg/vect/tsvc/vect-tsvc-s1244.c (s1244): Fix comment typo,
+ 	ture -> true.
+ 	* gcc.dg/vect/tsvc/vect-tsvc-s2244.c (s2244): Likewise.
+ 
+ 2025-09-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/reduce1.adb: New test.
+ 
+ 2025-09-30  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/105380
+ 	PR fortran/102241
+ 	* gfortran.dg/pdt_49.f03: New test.
+ 	* gfortran.dg/pdt_11.f03: Deallocate 'o_fdef'.
+ 	* gfortran.dg/pdt_15.f03: Reinstate final 'pop_8' and update
+ 	the tree dump counts.
+ 	* gfortran.dg/pdt_20.f03: Deallocate 'x'.
+ 	* gfortran.dg/pdt_23.f03: Deallocate 'x'.
+ 	* gfortran.dg/pdt_3.f03: Eliminate the temporary 'matrix' and
+ 	use w%d directly in the allocation. Change the TODO comment and
+ 	comment on memory leak in allocation.
+ 	* gfortran.dg/pdt_39.f03: Comments on memory leaks.
+ 	* gfortran.dg/pdt_40.f03: Deallocate 'foo' and bar%x.
+ 	* gfortran.dg/pdt_50.f03: New test.
+ 
+ 2025-09-29  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
+ 
+ 	* gcc.target/mips/pr99217-2.c: New test.
+ 
+ 2025-09-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* gcc.target/i386/pieces-memcmp-2.c: Remove mstore-max.
+ 	* gcc.target/i386/pieces-memcpy-19.c: Ditto.
+ 	* gcc.target/i386/pieces-memcpy-20.c: Ditto.
+ 	* gcc.target/i386/pr104610.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-47.c: Scan warning for
+ 	mstore-max deprecation.
+ 	* gcc.target/i386/pieces-memset-48.c: Change mstore-max to mmove-max.
+ 	* gcc.target/i386/pr121410.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-11.c: Change
+ 	avx256_store_by_pieces to avx256_move_by_pieces.
+ 	* gcc.target/i386/pieces-memset-14.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-2.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-20.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-23.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-29.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-30.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-33.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-34.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-37.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-44.c: Ditto.
+ 	* gcc.target/i386/pieces-memset-5.c: Ditto.
+ 	* gcc.target/i386/pr100865-10a.c: Ditto.
+ 	* gcc.target/i386/pr100865-4a.c: Ditto.
+ 	* gcc.target/i386/pr90773-20.c: Ditto.
+ 	* gcc.target/i386/pr90773-21.c: Ditto.
+ 	* gcc.target/i386/pr90773-22.c: Ditto.
+ 	* gcc.target/i386/pr90773-23.c: Ditto.
+ 	* g++.target/i386/pr80566-1.C: Ditto.
+ 	* gcc.target/i386/pieces-memset-45.c: Change
+ 	avx512_store_by_pieces to avx512_move_by_pieces.
+ 
  2025-09-27  YunQiang Su  <syq@gcc.gnu.org>
  
  	* gcc.target/mips/mips16e2.c: Use isa_rev=2 instead of >=2.
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c	Sun Oct  5 22:32:29 2025
*************** _dl_hwcaps_subdirs_build_bitmask (int su
*** 12,21 ****
  
    uint32_t mask;
    if (subdirs != 32)
!     mask = (1 << subdirs) - 1; /* { dg-message "shift by count \\('33'\\) >= precision of type \\('\[0-9\]+'\\)" } */
    else
      mask = -1;
!   return mask ^ ((1U << inactive) - 1); /* { dg-message "shift by negative count \\('-1'\\)" } */
  }
  
  void f1 (int);
--- 12,21 ----
  
    uint32_t mask;
    if (subdirs != 32)
!     mask = (1 << subdirs) - 1; /* { dg-message "shift by count \\('33'\\) >= precision of type \\('\[0-9\]+'\\)" "" { xfail c++26 } } */
    else
      mask = -1;
!   return mask ^ ((1U << inactive) - 1); /* { dg-message "shift by negative count \\('-1'\\)" "" { xfail c++26 } } */
  }
  
  void f1 (int);
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c	Sun Oct  5 22:32:29 2025
***************
*** 1,10 ****
--- 1,13 ----
  /* Test OpenACC 'kernels' construct decomposition.  */
  
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "-fopt-info-omp-all" } */
  
  /* { dg-additional-options "--param=openacc-kernels=decompose" }
  /* { dg-additional-options "-O2" } for 'parloops'.  */
  
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
+ 
  /* { dg-additional-options "--param=openacc-privatization=noisy" }
     Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types):
     { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-g0" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-fchecking" }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-g0" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-fcompare-debug" } -- w/o debug compiled first.
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-g -fcompare-debug" } -- w/ debug compiled first.
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-fopt-info-all-omp" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-fopt-info-all-omp" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "--param openacc-kernels=decompose" } */
  
  /* { dg-additional-options "-fopt-info-all-omp" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/mdc-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/mdc-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc/mdc-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc/mdc-1.c	Sun Oct  5 22:32:29 2025
***************
*** 3,8 ****
--- 3,9 ----
  
  /* TODO The tree dump scanning has certain expectations.
     { dg-do compile { target { lp64 || llp64 } } } */
+ /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
  /* { dg-additional-options "-fdump-tree-omplower" } */
  
  /* { dg-additional-options -Wuninitialized } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c	Sun Sep 28 22:33:12 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c	Sun Oct  5 22:32:29 2025
***************
*** 1,10 ****
! /* { dg-additional-options "--param=openacc-kernels=decompose" }
! 
  /* { dg-additional-options "-fopt-info-omp-note" } */
! 
! /* { dg-additional-options "--param=openacc-privatization=noisy" }
!    Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types):
!    { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */
  
  
  void
--- 1,9 ----
! /* { dg-additional-options "--param=openacc-kernels=decompose" } */
  /* { dg-additional-options "-fopt-info-omp-note" } */
! /* { dg-additional-options "--param=openacc-privatization=noisy" } */
! /* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */
! /* Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types): */
! /* { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */
  
  
  void
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/torture/asm-inline.c gcc-16-20251005/gcc/testsuite/c-c++-common/torture/asm-inline.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/torture/asm-inline.c	Sun Sep 28 22:33:14 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/torture/asm-inline.c	Sun Oct  5 22:32:29 2025
***************
*** 1,6 ****
  /* { dg-do compile } */
! /* -O0 does no inlining, and -O3 does it too aggressively for this test:  */
! /* { dg-skip-if "" { *-*-* } { "-O0" "-O3" } { "" } }
  /* The normal asm is not inlined:  */
  /* { dg-final { scan-assembler-times "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w" 2 } } */
  /* But the asm inline is inlined:  */
--- 1,7 ----
  /* { dg-do compile } */
! /* -O0 does no inlining, and -O3 does it too aggressively for this test: 
!    -Og does not inline either.  */
! /* { dg-skip-if "" { *-*-* } { "-O0" "-O3" "-Og" } { "" } }
  /* The normal asm is not inlined:  */
  /* { dg-final { scan-assembler-times "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w" 2 } } */
  /* But the asm inline is inlined:  */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/ubsan/vla-1.c gcc-16-20251005/gcc/testsuite/c-c++-common/ubsan/vla-1.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/ubsan/vla-1.c	Sun Sep 28 22:33:14 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/ubsan/vla-1.c	Sun Oct  5 22:32:30 2025
***************
*** 1,5 ****
  /* { dg-do run } */
! /* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -fno-stack-clash-protection" } */
  
  typedef long int V;
  int x = -1;
--- 1,5 ----
  /* { dg-do run } */
! /* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -fno-stack-clash-protection -ftrivial-auto-var-init=uninitialized" } */
  
  typedef long int V;
  int x = -1;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/c-c++-common/uninit-17.c gcc-16-20251005/gcc/testsuite/c-c++-common/uninit-17.c
*** gcc-16-20250928/gcc/testsuite/c-c++-common/uninit-17.c	Sun Sep 28 22:33:14 2025
--- gcc-16-20251005/gcc/testsuite/c-c++-common/uninit-17.c	Sun Oct  5 22:32:30 2025
*************** static void bar(int a, int *ptr)
*** 10,19 ****
    do
    {
      int b;
!     if (b < 40) {
        ptr[0] = b;
      }
!     b += 1; /* { dg-warning "is used uninitialized" } */
      ptr++;
    }
    while (--a != 0);
--- 10,19 ----
    do
    {
      int b;
!     if (b < 40) { /* { dg-warning "is used uninitialized" "" { target c++26 } } */
        ptr[0] = b;
      }
!     b += 1; /* { dg-warning "is used uninitialized" "" { target { c || c++23_down } } } */
      ptr++;
    }
    while (--a != 0);
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/analyzer/exception-value-2.C gcc-16-20251005/gcc/testsuite/g++.dg/analyzer/exception-value-2.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/analyzer/exception-value-2.C	Sun Sep 28 22:33:15 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/analyzer/exception-value-2.C	Sun Oct  5 22:32:30 2025
***************
*** 1,3 ****
--- 1,5 ----
+ // { dg-skip-if "PR122044" { c++26 } { "*" } { "" } }
+ 
  #include "../../gcc.dg/analyzer/analyzer-decls.h"
  
  struct foo {};
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C	Sun Oct  5 22:32:31 2025
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/122127
+ // { dg-do compile { target c++11 } }
+ 
+ template <int> struct resize;
+ template <int _Np> using resize_t = resize<_Np>;
+ template <class _Ap> struct basic_mask {
+   void _M_chunk() {
+     constexpr int __rem = 1;
+     [&] { resize_t<__rem>(); }();
+   }
+ };
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C	Sun Sep 28 22:33:16 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C	Sun Oct  5 22:32:33 2025
***************
*** 1,5 ****
  // { dg-do run { target c++11 } }
- // { dg-skip-if "power overwrites two slots of array i" { "power*-*-*" } }
  // { dg-options "-Wno-vla" }
  
  #include <initializer_list>
--- 1,4 ----
***************
*** 7,13 ****
  struct A
  {
    int i;
!   A(std::initializer_list<int>) { }
    A(int i): i{i} { }
    ~A() {}
  };
--- 6,12 ----
  struct A
  {
    int i;
!   A(std::initializer_list<int>) : i{43} { }
    A(int i): i{i} { }
    ~A() {}
  };
*************** int main(int argc, char **argv)
*** 18,24 ****
    { int i[x] = { 42, 42, 42, 42 }; }
    {
      A a[x] = { argc };
!     if (a[1].i != 42)
        __builtin_abort ();
    }
  }
--- 17,23 ----
    { int i[x] = { 42, 42, 42, 42 }; }
    {
      A a[x] = { argc };
!     if (a[1].i != 43)
        __builtin_abort ();
    }
  }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,154 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++11 } }
+ 
+ int arr[2];
+ struct S { int a, b; };
+ S arr2[2];
+ 
+ void
+ foo ([[indeterminate]] int n, int n2 [[indeterminate]], int n3 [[indeterminate]] [2])
+ {
+   [[indeterminate]] int x1, x11, x12, x13;
+   int x14, x15 [[indeterminate]];
+   [[indeterminate ("foobar")]] int x2;		// { dg-error "'indeterminate' attribute does not take any arguments" }
+ 						// { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 }
+   [[indeterminate (0)]] int x3;			// { dg-error "'indeterminate' attribute does not take any arguments" }
+ 						// { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 }
+   [[indeterminate ("foo", "bar", "baz")]] int x4;// { dg-error "'indeterminate' attribute does not take any arguments" }
+ 						// { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 }
+   [[indeterminate (0, 1, 2)]] int x5;		// { dg-error "'indeterminate' attribute does not take any arguments" }
+ 						// { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 }
+ 
+   auto a = [] [[indeterminate]] () {};		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   auto b = [] constexpr [[indeterminate]] {};	// { dg-warning "'indeterminate' attribute does not apply to types" }
+ 						// { dg-error "parameter declaration before lambda declaration specifiers only optional with" "" { target c++20_down } .-1 }
+ 						// { dg-error "'constexpr' lambda only available with" "" { target c++14_down } .-2 }
+   auto c = [] noexcept [[indeterminate]] {};	// { dg-warning "'indeterminate' attribute does not apply to types" }
+ 						// { dg-error "parameter declaration before lambda exception specification only optional with" "" { target c++20_down } .-1 }
+   auto d = [] () [[indeterminate]] {};		// { dg-warning "'indeterminate' attribute does not apply to types" }
+   auto e = new int [n] [[indeterminate]];	// { dg-warning "attributes ignored on outermost array type in new expression" }
+   auto e2 = new int [n] [[indeterminate]] [42];	// { dg-warning "attributes ignored on outermost array type in new expression" }
+   auto f = new int [n][42] [[indeterminate]];	// { dg-warning "'indeterminate' attribute does not apply to types" }
+   [[indeterminate]];				// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[indeterminate]] {}				// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[indeterminate]] if (true) {}		// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[indeterminate]] while (false) {}		// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[indeterminate]] goto lab;			// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[indeterminate]] lab:;			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] try {} catch (int) {}	// { dg-warning "attributes at the beginning of statement are ignored" }
+   if ([[indeterminate]] int x = 0) {}
+   switch (n)
+     {
+     [[indeterminate]] case 1:			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+     [[indeterminate]] break;			// { dg-warning "attributes at the beginning of statement are ignored" }
+     [[indeterminate]] default:			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ 	 break;
+     }
+   for ([[indeterminate]] auto a : arr) {}
+   for ([[indeterminate]] auto [a, b] : arr2) {}	// { dg-error "structured bindings only available with" "" { target c++14_down } }
+   [[indeterminate]] asm ("");			// { dg-warning "attributes ignored on 'asm' declaration" }
+   try {} catch ([[indeterminate]] int x) {}
+   try {} catch ([[indeterminate]] int) {}
+   try {} catch (int [[indeterminate]] x) {}	// { dg-warning "attribute ignored" }
+   try {} catch (int [[indeterminate]]) {}	// { dg-warning "attribute ignored" }
+   try {} catch (int x [[indeterminate]]) {}
+ }
+ 
+ [[indeterminate]] int bar ();			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ using foobar [[indeterminate]] = int;		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ [[indeterminate]] int a;			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ [[indeterminate]] auto [b, c] = arr;		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ 						// { dg-error "structured bindings only available with" "" { target c++14_down } .-1 }
+ [[indeterminate]];				// { dg-warning "attribute ignored" }
+ inline [[indeterminate]] void baz () {}		// { dg-warning "attribute ignored" }
+ 						// { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 }
+ constexpr [[indeterminate]] int qux () { return 0; }	// { dg-warning "attribute ignored" }
+ 						// { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 }
+ int [[indeterminate]] d;			// { dg-warning "attribute ignored" }
+ int const [[indeterminate]] e = 1;		// { dg-warning "attribute ignored" }
+ struct A {} [[indeterminate]];			// { dg-warning "attribute ignored in declaration of 'struct A'" }
+ struct A [[indeterminate]];			// { dg-warning "attribute ignored" }
+ struct A [[indeterminate]] a1;			// { dg-warning "attribute ignored" }
+ A [[indeterminate]] a2;				// { dg-warning "attribute ignored" }
+ enum B { B0 } [[indeterminate]];		// { dg-warning "attribute ignored in declaration of 'enum B'" }
+ enum B [[indeterminate]];			// { dg-warning "attribute ignored" }
+ enum B [[indeterminate]] b1;			// { dg-warning "attribute ignored" }
+ B [[indeterminate]] b2;				// { dg-warning "attribute ignored" }
+ struct [[indeterminate]] C {};			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int f [[indeterminate]];			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ int g[2] [[indeterminate]];			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int g2 [[indeterminate]] [2];			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ int corge () [[indeterminate]];			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int *[[indeterminate]] h;			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int & [[indeterminate]] i = f;			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int && [[indeterminate]] j = 0;			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int S::* [[indeterminate]] k;			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ auto l = sizeof (int [2] [[indeterminate]]);	// { dg-warning "'indeterminate' attribute does not apply to types" }
+ int freddy ([[indeterminate]] int a,
+ 	    [[indeterminate]] int,
+ 	    [[indeterminate]] int c = 0,
+ 	    [[indeterminate]] int = 0);
+ void
+ corge ([[indeterminate]] int a,
+        [[indeterminate]] int,
+        [[indeterminate]] int c = 0,
+        [[indeterminate]] int = 0)
+ {
+ }
+ [[indeterminate]] void
+ garply ()					// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ {
+ }
+ int grault (int [[indeterminate]] a,		// { dg-warning "attribute ignored" }
+ 	    int [[indeterminate]],		// { dg-warning "attribute ignored" }
+ 	    int [[indeterminate]] c = 0,	// { dg-warning "attribute ignored" }
+ 	    int [[indeterminate]] = 0);		// { dg-warning "attribute ignored" }
+ void
+ waldo (int [[indeterminate]] a,			// { dg-warning "attribute ignored" }
+        int [[indeterminate]],			// { dg-warning "attribute ignored" }
+        int [[indeterminate]] c = 0,		// { dg-warning "attribute ignored" }
+        int [[indeterminate]] = 0)		// { dg-warning "attribute ignored" }
+ {
+ }
+ int plugh (int a [[indeterminate]],
+ 	    int b [[indeterminate]] = 0);
+ void
+ thud (int a [[indeterminate]],
+       int b [[indeterminate]] = 0)
+ {
+ }
+ enum [[indeterminate]] D { D0 };		// { dg-warning "'indeterminate' attribute does not apply to types" }
+ enum class [[indeterminate]] E { E0 };		// { dg-warning "'indeterminate' attribute does not apply to types" }
+ enum F {};
+ enum [[indeterminate]] F;			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ enum G {
+   G0 [[indeterminate]],				// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   G1 [[indeterminate]] = 2			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ };
+ namespace [[indeterminate]] H { using H0 = int; }// { dg-warning "'indeterminate' attribute directive ignored" }
+ namespace [[indeterminate]] {}			// { dg-warning "'indeterminate' attribute directive ignored" }
+ [[indeterminate]] using namespace H;		// { dg-warning "'indeterminate' attribute directive ignored" }
+ struct [[indeterminate]] I			// { dg-warning "'indeterminate' attribute does not apply to types" }
+ {
+   [[indeterminate]];				// { dg-error "declaration does not declare anything" }
+   [[indeterminate]] int i;			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] int foo ();			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] int bar () { return 1; }	// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] int : 0;			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] int i2 : 5;			// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   [[indeterminate]] static int i3;		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+   static int i4;
+ };
+ [[indeterminate]] int I::i4 = 0;		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ struct J : [[indeterminate]] C {};		// { dg-warning "attributes on base specifiers are ignored" }
+ #if __cpp_concepts >= 201907L
+ template <typename T>
+ concept K [[indeterminate]] = requires { true; };// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" "" { target c++20 } }
+ #endif
+ typedef int L [[indeterminate]];		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
+ template <typename T>
+ struct M {};
+ template <>
+ struct [[indeterminate]] M<int> { int m; };	// { dg-warning "'indeterminate' attribute does not apply to types" }
+ typedef int N[2] [[indeterminate]];		// { dg-warning "'indeterminate' attribute does not apply to types" }
+ typedef int O [[indeterminate]] [2];		// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,39 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options "-fdump-tree-gimple" }
+ // { dg-skip-if "" { c++26 } { "-ftrivial-auto-var-init=*" } { "" } }
+ // Expect .DEFERRED_INIT calls for the h, r and s variables (3) and
+ // temporaries for the second arguments to foo and baz calls (4).
+ // { dg-final { scan-tree-dump-times " = \\.DEFERRED_INIT \\\(" 7 "gimple" { target c++26 } } }
+ 
+ struct S { S (); S (const S &); ~S (); int s; };
+ void foo (S a [[indeterminate]], S b, S c [[indeterminate]] = S ());
+ void foo (S d, S e, S f [[indeterminate]]);
+ 
+ void
+ bar ()
+ {
+   S g [[indeterminate]], h;
+   foo (g, h, S ());
+   foo (g, h);
+ }
+ 
+ void
+ foo (S i [[indeterminate]], S j, S k)
+ {
+ }
+ 
+ void
+ baz ([[indeterminate]] S l, S m, [[indeterminate]] S n = S ())
+ {
+ }
+ 
+ void baz (S o, S p, S q);
+ 
+ void
+ qux ()
+ {
+   S r, s;
+   baz (r, s, s);
+   baz (r, s);
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,21 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++11 } }
+ // { dg-skip-if "" { c++26 } { "-ftrivial-auto-var-init=*" } { "" } }
+ 
+ struct S { S (); S (const S &); ~S (); int s; };
+ void foo (S u, S v [[indeterminate]], int);
+ void foo (S a, S b, S c = S ());				// { dg-message "earlier declaration" }
+ void foo (S d, S e, S f [[indeterminate]]);			// { dg-error "'indeterminate' attribute not specified for parameter 'f' on the first declaration of its function" }
+ 
+ void
+ foo (S i [[indeterminate]], S j, S k)				// { dg-error "'indeterminate' attribute not specified for parameter 'i' on the first declaration of its function" }
+ {
+ }
+ 
+ void
+ bar (S l, S m, S n = S ())					// { dg-message "earlier declaration" }
+ {
+ }
+ 
+ void bar (S o [[indeterminate]], S p, [[indeterminate]]S q);	// { dg-error "'indeterminate' attribute not specified for parameter 'o' on the first declaration of its function" }
+ 								// { dg-error "'indeterminate' attribute not specified for parameter 'q' on the first declaration of its function" "" { target *-*-* } .-1 }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,36 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options "-ftrivial-auto-var-init=uninitialized -fdump-tree-gimple" }
+ // { dg-final { scan-tree-dump-not " = \\.DEFERRED_INIT \\\(" "gimple" } }
+ 
+ struct S { S (); S (const S &); ~S (); int s; };
+ void foo (S a [[indeterminate]], S b, S c [[indeterminate]] = S ());
+ void foo (S d, S e, S f [[indeterminate]]);
+ 
+ void
+ bar ()
+ {
+   S g [[indeterminate]], h;
+   foo (g, h, S ());
+   foo (g, h);
+ }
+ 
+ void
+ foo (S i [[indeterminate]], S j, S k)
+ {
+ }
+ 
+ void
+ baz ([[indeterminate]] S l, S m, [[indeterminate]] S n = S ())
+ {
+ }
+ 
+ void baz (S o, S p, S q);
+ 
+ void
+ qux ()
+ {
+   S r, s;
+   baz (r, s, s);
+   baz (r, s);
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous1.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous1.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous1.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,61 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do run { target c++26 } }
+ // { dg-skip-if "" { *-*-* } { "-ftrivial-auto-var-init=*" } { "" } }
+ // { dg-options "-O2 -Wuninitialized" }
+ 
+ #define assert(x) if (!(x)) __builtin_abort ()
+ 
+ template <typename T>
+ [[gnu::noipa]] T
+ baz (T &x)
+ {
+   return x;
+ }
+ 
+ [[gnu::noipa]] int
+ foo (bool b)
+ {
+   unsigned char c;
+   unsigned char d = c;	// no erroneous behavior, but d has an erroneous value
+ 			// { dg-warning "'c' is used uninitialized" "" { target *-*-* } .-1 }
+ 
+   assert (c == d);	// holds, both integral promotions have erroneous behavior
+ 
+   unsigned char f = c;
+   unsigned char g = baz (f);
+ 
+   assert (g == c);
+ 
+   int e = d;		// erroneous behavior
+   baz (e);
+   return b ? d : 0;	// erroneous behavior if b is true
+ }
+ 
+ [[gnu::noipa]] void
+ bar ()
+ {
+   int d1, d2;
+ 
+   int e1 = d1;		// erroneous behavior
+   int e2 = d1;		// erroneous behavior
+ 
+   assert (e1 == e2);	// holds
+   assert (e1 == d1);	// holds, erroneous behavior
+   assert (e2 == d1);	// holds, erroneous behavior
+ 
+   int f = d1;		// { dg-warning "'d1' is used uninitialized" }
+   int g = baz (f);
+   assert (g == d1);
+ 
+   __builtin_memcpy (&d2, &d1, sizeof (int));	// no erroneous behavior, but d2 has an erroneous value
+   assert (e1 == d2);	// holds, erroneous behavior
+   assert (e2 == d2);	// holds, erroneous behavior
+ }
+ 
+ int
+ main ()
+ {
+   foo (false);
+   foo (true);
+   bar ();
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous2.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous2.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous2.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,234 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile }
+ // { dg-skip-if "" { *-*-* } { "-ftrivial-auto-var-init=*" } { "" } }
+ // { dg-options "-O2 -fdump-tree-gimple" }
+ // All the s1..s24 variables and i1 need .DEFERRED_INIT call on their
+ // declarations.
+ // Plus, forward gotos to l1 & l2 labels need up to s1-s4 and s6-s9 vars to
+ // be .DEFERRED_INITed (and backward gotos up to that minus the first two).
+ // switch to case 15 skips over s12, switch to case 16/17 skip
+ // over s12 and s13 but the adjacent l3 label needs to also skip over s3-s4
+ // and s6-s9 and s11.  switch to case 18 skips over s12-s14 and switch to
+ // default in the same switch skips over s12-s15.
+ // goto l4; skips over s19 initialization.
+ // goto l5; skips over s20-s22 initialization.
+ // switch to case 32/33 skips over s23 but goto to adjacent l6 skips also
+ // over s20-s22.  switch to default in that switch skips over s23-s24.
+ // { dg-final { scan-tree-dump-times "  s1 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s2 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s3 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s4 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s5 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s6 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s7 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s8 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s9 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s10 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s11 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s12 = \.DEFERRED_INIT \\\(" 5 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s13 = \.DEFERRED_INIT \\\(" 4 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s14 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s15 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s16 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s17 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s18 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s19 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s20 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s21 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s22 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s23 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  s24 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } }
+ // { dg-final { scan-tree-dump-times "  i1 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } }
+ 
+ struct S { int a, b, c; };
+ 
+ int
+ foo (int x)
+ {
+   int r = 0;
+   if (x == 1)
+     goto l1;
+   S s1;
+   if (x == 2)
+     goto l1;
+   S s2;
+   {
+     S s10;
+     if (x == 12)
+       goto l1;
+     s10.a = 1;
+     r += s10.a;
+     int i1;
+     if (x == 13)
+       goto l1;
+     i1 = 2;
+     r += i1;
+   }
+   if (x == 3)
+     goto l2;
+   if (x == 4)
+     goto l1;
+   {
+     S s3;
+     if (x == 5)
+       goto l2;
+     S s4;
+     if (x == 6)
+       goto l1;
+     {
+       S s5;
+       if (x == 7)
+ 	goto l1;
+       s5.a = 5;
+       r += s5.a;
+     }
+     S s6;
+     {
+       S s7;
+       S s8;
+       if (x == 8)
+ 	goto l1;
+       S s9;
+       if (x == 9)
+ 	goto l2;
+       if (x == 10)
+ 	goto l2;
+       if (x == 11)
+ 	goto l2;
+       l1:
+       l2:
+       s1.a = 1;
+       s2.b = 2;
+       s3.c = 3;
+       s4.a = 4;
+       s6.b = 6;
+       s7.c = 7;
+       s8.a = 8;
+       s9.b = 9;
+       r += s1.a + s2.b + s3.c;
+       r += s4.a + s6.b + s7.c;
+       r += s8.a + s9.b;
+       if (x == 14)
+ 	goto l3;
+       S s11;
+       switch (x)
+ 	{
+ 	  S s12;
+ 	case 15:
+ 	  S s13;
+ 	  // FALLTHRU
+ 	l3:
+ 	case 16:
+ 	case 17:
+ 	  S s14;
+ 	  s11.a = 1;
+ 	  s12.b = 2;
+ 	  s13.c = 3;
+ 	  s14.a = 4;
+ 	  r += s11.a + s12.b + s13.c;
+ 	  r += s14.a;
+ 	  return r;
+ 	case 18:
+ 	  S s15;
+ 	  s11.a = 1;
+ 	  s12.b = 2;
+ 	  s13.c = 3;
+ 	  s14.a = 4;
+ 	  s15.b = 5;
+ 	  r += s11.a + s12.b + s13.c;
+ 	  r += s14.a + s15.b;
+ 	  return r;
+ 	default:
+ 	  if (x != 19 && x != 20)
+ 	    break;
+ 	  S s16;
+ 	  s11.a = 1;
+ 	  s12.b = 2;
+ 	  s13.c = 3;
+ 	  s14.a = 4;
+ 	  s15.b = 5;
+ 	  s16.c = 6;
+ 	  r += s11.a + s12.b + s13.c;
+ 	  r += s14.a + s15.b + s16.c;
+ 	  return r;
+ 	}
+       if (x == 21)
+ 	goto l3;
+     }
+     S s17;
+     if (x == 22)
+       goto l3;
+     if (x == 23)
+       goto l1;
+     if (x == 24)
+       goto l2;
+     s17.a = 1;
+     r += s17.a;
+   }
+   S s18;
+   if (x == 25)
+     {
+       S s19;
+       s19.c = 2;
+       r += s19.c;
+       if (x == 29)
+ 	l4:;
+       goto l3;
+     }
+   if (x == 26)
+     goto l1;
+   if (x == 27)
+     goto l2;
+   s18.b = 1;
+   r += s18.b;
+   if (x == 28)
+     goto l4;
+   {
+     S s20;
+     {
+       S s21;
+       if (x == 29)
+ 	goto l1;
+       S s22;
+       if (x == 30)
+ 	goto l2;
+       l5:
+       s20.a = 1;
+       s21.b = 2;
+       s22.c = 3;
+       r += s20.a + s21.b + s22.c;
+       switch (x)
+ 	{
+ 	case 31:
+ 	  S s23;
+ 	  // FALLTHRU
+ 	l6:
+ 	case 32:
+ 	case 33:
+ 	  S s24;
+ 	  s23.a = 1;
+ 	  s24.b = 2;
+ 	  r += s23.a + s24.b;
+ 	  return r;
+ 	default:
+ 	  if (x >= 34 && x <= 35)
+ 	    return r;
+ 	  break;
+ 	}
+       if (x == 34)
+ 	goto l5;
+       if (x == 35)
+ 	goto l6;
+       return r;
+     }
+     if (x == 36)
+       goto l5;
+     if (x == 37)
+       goto l6;
+   }
+   if (x == 38)
+     goto l5;
+   if (x == 39)
+     goto l6;
+   return r;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous3.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous3.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous3.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,158 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Wimplicit-fallthrough -Wswitch-unreachable" }
+ // Make sure -Wimplicit-fallthrough and -Wswitch-unreachable
+ // are consistent between -std=c++23 and -std=c++26 even when
+ // the latter instruments jumps across vacuous initializations.
+ 
+ int i;
+ 
+ void
+ foo (int x)
+ {
+   switch (x)
+     {
+     case 1:
+       int j;
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 2:			// { dg-message "here" }
+       int k;
+       ++i;
+       // FALLTHRU
+     case 3:
+       int l;
+       ++i;
+       [[fallthrough]];
+     default:
+       int m;
+       ++i;
+       j = 42;
+       k = 42;
+       l = 42;
+       m = 42;
+       i += (j - k) + (l - m);
+       break;
+     }
+ }
+ 
+ void
+ bar (int x)
+ {
+   if (x == 6)
+     goto l1;
+   if (x == 7)
+     goto l2;
+   if (x == 8)
+     goto l3;
+   if (x == 9)
+     goto l4;
+   if (x == 10)
+     goto l5;
+   if (x == 11)
+     goto l6;
+   int j;
+   j = 5;
+   i += j;
+   switch (x)
+     {
+     case 1:
+     l1:
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 2:			// { dg-message "here" }
+     l2:
+       ++i;
+       // FALLTHRU
+     case 3:
+     l3:
+       ++i;
+       [[fallthrough]];
+     default:
+     l4:
+       ++i;
+       break;
+     case 4:
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 5:			// { dg-message "here" }
+     l5:;
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 6:			// { dg-message "here" }
+       ++i;
+     case 7:
+     l6:;
+     }
+ }
+ 
+ void
+ baz (int x)
+ {
+   switch (x)
+     {
+     case 1:
+       int j [[indeterminate]];
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 2:			// { dg-message "here" }
+       int k [[indeterminate]];
+       ++i;
+       // FALLTHRU
+     case 3:
+       int l [[indeterminate]];
+       ++i;
+       [[fallthrough]];
+     default:
+       int m [[indeterminate]];
+       ++i;
+       j = 42;
+       k = 42;
+       l = 42;
+       m = 42;
+       i += (j - k) + (l - m);
+       break;
+     }
+ }
+ 
+ void
+ qux (int x)
+ {
+   if (x == 6)
+     goto l1;
+   if (x == 7)
+     goto l2;
+   if (x == 8)
+     goto l3;
+   if (x == 9)
+     goto l4;
+   if (x == 10)
+     goto l5;
+   if (x == 11)
+     goto l6;
+   int j [[indeterminate]];
+   j = 5;
+   i += j;
+   switch (x)
+     {
+     case 1:
+     l1:
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 2:			// { dg-message "here" }
+     l2:
+       ++i;
+       // FALLTHRU
+     case 3:
+     l3:
+       ++i;
+       [[fallthrough]];
+     default:
+     l4:
+       ++i;
+       break;
+     case 4:
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 5:			// { dg-message "here" }
+     l5:;
+       ++i;			// { dg-warning "this statement may fall through" }
+     case 6:			// { dg-message "here" }
+       ++i;
+     case 7:
+     l6:;
+     }
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous4.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous4.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp26/erroneous4.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp26/erroneous4.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,37 ----
+ // C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads
+ // { dg-do compile { target c++23 } }
+ // Make sure we don't reject this in C++26 because of
+ // .DEFERRED_INIT calls.
+ 
+ constexpr int
+ foo (int x)
+ {
+   if (x == 6)
+     goto l1;
+   if (x == 7)
+     goto l2;
+   int i;
+   switch (x)
+     {
+       int j;
+     case 1:
+       i = 6;
+       return i;
+     case 2:
+       i = 4;
+     l1:
+       i = 5;
+       return i;
+     case 3:
+     l2:
+       i = 7;
+       return i;
+     default:
+       return 42;
+     }
+ }
+ 
+ static_assert (foo (1) == 6);
+ static_assert (foo (2) == 5);
+ static_assert (foo (3) == 7);
+ static_assert (foo (4) == 42);
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,45 ----
+ // PR c++/115645
+ // { dg-do compile { target c++20 } }
+ 
+ using size_t = decltype(sizeof(0));
+ 
+ void* operator new(size_t, void* p) { return p; }
+ void* operator new[](size_t, void* p) { return p; }
+ 
+ #define VERIFY(C) if (!(C)) throw
+ 
+ namespace std {
+   template<typename T>
+     constexpr T* construct_at(T* p)
+     {
+       if constexpr (__is_array(T))
+         return ::new((void*)p) T[1]();
+       else
+         return ::new((void*)p) T();
+     }
+ }
+ 
+ struct S {
+   constexpr S () : s (0) {}
+   constexpr S (int x) : s (x) {}
+   constexpr bool operator== (int x) const { return s == x; }
+   int s;
+ };
+ 
+ constexpr void
+ test_array()
+ {
+   S arr[1] { 99 };
+   std::construct_at(&arr);
+   VERIFY( arr[0] == 0 );
+ 
+   union U {
+     long long x = -1;
+     S arr[4];
+   } u;
+ 
+   auto p = std::construct_at(&u.arr);
+   VERIFY( (*p)[0] == 0 );
+ }
+ 
+ static_assert( [] { test_array(); return true; }() );
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C gcc-16-20251005/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C	Sun Oct  5 22:32:33 2025
***************
*** 0 ****
--- 1,30 ----
+ // P0784R7
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fdelete-null-pointer-checks" }
+ 
+ struct S
+ {
+   constexpr S () : s (0) { s++; }
+   constexpr S (int x) : s (x) { s += 2; }
+   constexpr ~S () { if (s != 35) asm (""); s = 5; }
+   int s;
+ };
+ 
+ constexpr bool
+ foo (int n)
+ {
+   S *p = new S (7);
+   if (p->s != 9) return false;
+   p->s = 35;
+   delete p;
+   p = new S[n] { 11, 13, 15 };
+   if (p[0].s != 13 || p[1].s != 15 || p[2].s != 17) return false;
+   p[0].s = 35;
+   p[2].s = 35;
+   p[1].s = 35;
+   delete[] p;
+   return true;
+ }
+ 
+ constexpr bool a = foo (3);
+ static_assert (a);
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/adl-6_c.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/adl-6_c.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/adl-6_c.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/adl-6_c.C	Sun Oct  5 22:32:36 2025
***************
*** 1,5 ****
  // PR c++/117658
! // { dg-additional-options "-fmodules" }
  
  import N;
  
--- 1,5 ----
  // PR c++/117658
! // { dg-additional-options "-fmodules -Wno-error=external-tu-local" }
  
  import N;
  
*************** void test() {
*** 22,28 ****
  
    apply_err(x);  // error: R::g has internal linkage and cannot be used outside N
    // { dg-message "here" "" { target *-*-* } .-1 }
!   // { dg-error "'g'" "" { target *-*-* } 0 }
  
    auto y = make_Y();
    f(y);  // OK, I::B::f and I::A::Y have matching innermost non-inline namespace
--- 22,29 ----
  
    apply_err(x);  // error: R::g has internal linkage and cannot be used outside N
    // { dg-message "here" "" { target *-*-* } .-1 }
!   // { dg-warning "lookup of 'R::g'" "" { target *-*-* } 0 }
!   // { dg-error "'g' was not declared" "" { target *-*-* } 0 }
  
    auto y = make_Y();
    f(y);  // OK, I::B::f and I::A::Y have matching innermost non-inline namespace
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-14_c.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-14_c.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-14_c.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-14_c.C	Sun Oct  5 22:32:36 2025
***************
*** 4,9 ****
  import m;
  
  int main() {
!   // { dg-error "instantiation exposes TU-local entity '(fun1|Dodgy)'" "" { target *-*-* } 0 }
    fun2(123);  // { dg-message "required from here" }
  }
--- 4,9 ----
  import m;
  
  int main() {
!   // { dg-error "instantiation exposes TU-local entity '\[^']*(fun1|Dodgy)\[^']*'" "" { target *-*-* } 0 }
    fun2(123);  // { dg-message "required from here" }
  }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-15_a.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-15_a.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-15_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-15_a.C	Sun Oct  5 22:32:36 2025
***************
*** 0 ****
--- 1,28 ----
+ // { dg-additional-options "-fmodules -fdump-lang-module-graph -Wno-global-module" }
+ // { dg-module-cmi A }
+ 
+ export module A;
+ 
+ namespace N {
+   struct A {};
+   void adl(A);
+   inline namespace inner {
+     static void adl(int);
+   }
+ }
+ namespace G {
+   struct B {};
+   void adl(B);
+   namespace {
+     extern "C++" void adl(int);
+   }
+ }
+ void adl(double);
+ 
+ template <typename T>
+ inline void h(T t) {
+   adl(t);
+ }
+ 
+ // { dg-final { scan-lang-dump {Binding on tu-local function_decl:'::N::inner::adl' found} module } }
+ // { dg-final { scan-lang-dump-not {'G::_GLOBAL__N_1::adl'} module } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-15_b.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-15_b.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/internal-15_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/internal-15_b.C	Sun Oct  5 22:32:36 2025
***************
*** 0 ****
--- 1,13 ----
+ // { dg-additional-options "-fmodules -pedantic-errors" }
+ 
+ module A;
+ 
+ void other() {
+   adl(N::A{});  // OK, lookup occurs from here
+   h(0);  // OK, doesn't consider N::inner::adl
+ 
+   h(N::A{});  // { dg-message "required from here" }
+   // { dg-error "TU-local" "" { target *-*-* } 0 }
+ 
+   h(G::B{});  // OK, G::adl is not attached to A
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-1_c.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-1_c.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-1_c.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-1_c.C	Sun Oct  5 22:32:36 2025
***************
*** 1,13 ****
  // { dg-additional-options "-fmodules-ts" }
- // The indirect import of frob, with namespaces impl and ompl doesn't
- // affect us.
- static int impl;
- import Frink;
  
! static int ompl;
  
! void corge (int x)
! {
!   impl = x;
!   ompl = frab (x);
! }
--- 1,7 ----
  // { dg-additional-options "-fmodules-ts" }
  
! static int impl;  // IF but no diagnostic required: impl@Frob not reachable from here
  
! import Frink;
! 
! static int ompl;  // { dg-error "different kind" }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-2_b.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-2_b.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-2_b.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-2_b.C	Sun Oct  5 22:32:36 2025
***************
*** 2,17 ****
  
  import foo;
  
! static int also_not_exported; // ok
! 
! void X ()
! {
!   implicit_export::bob ();
! }
! 
  static int implicit_export; // { dg-error "different kind" }
- 
- void Y ()
- {
-   also_not_exported = 1;
- }
--- 2,6 ----
  
  import foo;
  
! static int also_not_exported; // { dg-error "different kind" }
  static int implicit_export; // { dg-error "different kind" }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-3_a.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-3_a.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-3_a.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-3_a.C	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- // Check namespace needed only by internal reference is not made visible
- // { dg-additional-options "-fmodules-ts" }
- 
- export module frob;
- // { dg-module-cmi frob }
- 
- namespace silent 
- {
-   namespace inner 
-   {
-     static int X () 
-     {
-       return 1;
-     }
-   }
- }
- 
- export int f (int y)
- {
-   return y + silent::inner::X ();
- }
--- 0 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-3_b.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-3_b.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/namespace-3_b.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/namespace-3_b.C	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- // { dg-additional-options "-fmodules-ts" }
- 
- import frob;
- 
- int x = silent; // { dg-error "not declared" }
- 
- static int silent;
- 
- int user ()
- {
-   return f (silent);
- }
--- 0 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/pr122053_a.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/pr122053_a.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/pr122053_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/pr122053_a.C	Sun Oct  5 22:32:36 2025
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/122053
+ // { dg-additional-options "-fmodules -Wno-global-module" }
+ // { dg-module-cmi M }
+ 
+ module;
+ struct mytime {
+   long a, b;
+ };
+ export module M;
+ export mytime foo();
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/modules/pr122053_b.C gcc-16-20251005/gcc/testsuite/g++.dg/modules/pr122053_b.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/modules/pr122053_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/modules/pr122053_b.C	Sun Oct  5 22:32:36 2025
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/122053
+ // { dg-additional-options "-fmodules" }
+ // Test we don't ICE when redefining a type coming from an import.
+ 
+ import M;
+ struct mytime {  // { dg-bogus "conflicting" "PR99000" { xfail *-*-* } }
+   long a, b;
+ };
+ mytime m = foo();  // { dg-bogus "" "PR99000" { xfail *-*-* } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/opt/store-merging-1.C gcc-16-20251005/gcc/testsuite/g++.dg/opt/store-merging-1.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/opt/store-merging-1.C	Sun Sep 28 22:33:19 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/opt/store-merging-1.C	Sun Oct  5 22:32:36 2025
***************
*** 1,7 ****
  // PR target/92038
  // { dg-do compile { target int32 } }
  // { dg-require-effective-target store_merge }
! // { dg-options "-O2 -flifetime-dse=2 -fdump-tree-store-merging-details" }
  // { dg-final { scan-tree-dump "New sequence of \[12] stores to replace old one of 2 stores" "store-merging" } }
  
  struct S { S () : a (0), b (0) {} int a; char b; char c[3]; };
--- 1,7 ----
  // PR target/92038
  // { dg-do compile { target int32 } }
  // { dg-require-effective-target store_merge }
! // { dg-options "-O2 -flifetime-dse=2 -fdump-tree-store-merging-details -ftrivial-auto-var-init=uninitialized" }
  // { dg-final { scan-tree-dump "New sequence of \[12] stores to replace old one of 2 stores" "store-merging" } }
  
  struct S { S () : a (0), b (0) {} int a; char b; char c[3]; };
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/parse/auto-struct-param.C gcc-16-20251005/gcc/testsuite/g++.dg/parse/auto-struct-param.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/parse/auto-struct-param.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.dg/parse/auto-struct-param.C	Sun Oct  5 22:32:36 2025
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/122112
+ // { dg-do compile { target c++20 } }
+ 
+ void func(struct { auto x; });  // { dg-error "" }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C gcc-16-20251005/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C	Sun Sep 28 22:33:20 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C	Sun Oct  5 22:32:40 2025
*************** int foo(int n)
*** 13,19 ****
       _err; 
     });
  
!    if (err == 0) return 17; 
   }
  
   return 18;
--- 13,19 ----
       _err; 
     });
  
!    if (err == 0) return 17;		/* { dg-warning "'_err' may be used uninitialized" "" { target c++26 } } */
   }
  
   return 18;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C gcc-16-20251005/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C	Sun Sep 28 22:33:20 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C	Sun Oct  5 22:32:41 2025
*************** struct D1: virtual B, virtual C
*** 26,32 ****
    /* The warning would ideally point to the assignment but instead points
       to the opening brace.  */
    D1 ()
!   {                           // { dg-warning "\\\[-Warray-bounds" "brace" }
      ci = 0;                   // { dg-warning "\\\[-Warray-bounds" "assign" { xfail lp64 } }
    }
  };
--- 26,32 ----
    /* The warning would ideally point to the assignment but instead points
       to the opening brace.  */
    D1 ()
!   {
      ci = 0;                   // { dg-warning "\\\[-Warray-bounds" "assign" { xfail lp64 } }
    }
  };
*************** void sink (void*);
*** 35,45 ****
  
  void warn_derived_ctor_access_new_decl ()
  {
!   char a[sizeof (D1)];        // { dg-message "at offset 1 into object 'a' of size 40" "LP64 note" { target lp64} }
!                               // { dg-message "at offset 1 into object 'a' of size 20" "LP64 note" { target ilp32} .-1 }
    char *p = a;
    ++p;
!   D1 *q = new (p) D1;		// { dg-warning "-Warray-bounds" }
    sink (q);
  }
  
--- 35,45 ----
  
  void warn_derived_ctor_access_new_decl ()
  {
!   char a[sizeof (D1)];        // { dg-message "at offset 1 into object 'a' of size 40" "LP64 note" { target lp64 } }
!                               // { dg-message "at offset 1 into object 'a' of size 20" "LP32 note" { target ilp32 } .-1 }
    char *p = a;
    ++p;
!   D1 *q = new (p) D1;		// { dg-warning "\\\[-Warray-bounds" }
    sink (q);
  }
  
*************** void warn_derived_ctor_access_new_alloc
*** 47,60 ****
  {
    char *p = (char*)operator new (sizeof (D1));    // { dg-message "at offset 1 into object of size \\d+ allocated by '\[^\n\r]*operator new\[^\n\r]*'" "note" }
    ++p;
!   D1 *q = new (p) D1;		// { dg-warning "-Warray-bounds" }
    sink (q);
  }
  
  void warn_derived_ctor_access_new_array_decl ()
  {
    char b[sizeof (D1) * 2];    // { dg-message "at offset \\d+ into object 'b' of size 80" "LP64 note" { target { lp64 } xfail { lp64 } } }
!                               // { dg-message "at offset \\d+ into object 'b' of size 40" "LP64 note" { target { ilp32 } xfail { ilp32 } } .-1 }
    char *p = b;
    ++p;
    D1 *q = new (p) D1[2];
--- 47,60 ----
  {
    char *p = (char*)operator new (sizeof (D1));    // { dg-message "at offset 1 into object of size \\d+ allocated by '\[^\n\r]*operator new\[^\n\r]*'" "note" }
    ++p;
!   D1 *q = new (p) D1;		// { dg-warning "\\\[-Warray-bounds" }
    sink (q);
  }
  
  void warn_derived_ctor_access_new_array_decl ()
  {
    char b[sizeof (D1) * 2];    // { dg-message "at offset \\d+ into object 'b' of size 80" "LP64 note" { target { lp64 } xfail { lp64 } } }
!                               // { dg-message "at offset \\d+ into object 'b' of size 40" "LP32 note" { target { ilp32 } xfail { ilp32 } } .-1 }
    char *p = b;
    ++p;
    D1 *q = new (p) D1[2];
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C gcc-16-20251005/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
*** gcc-16-20250928/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C	Sun Sep 28 22:33:22 2025
--- gcc-16-20251005/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C	Sun Oct  5 22:32:41 2025
***************
*** 8,19 ****
  struct shared_count {
    shared_count () { }
    shared_count (shared_count &r)
!     : pi (r.pi) { }     // { dg-warning "\\\[-Wuninitialized" }
    int pi;
  };
  
  // There's another (redundant) -Wuninitialized on the line below.
! struct shared_ptr {
    int ptr;
    shared_count refcount;
  };
--- 8,19 ----
  struct shared_count {
    shared_count () { }
    shared_count (shared_count &r)
!     : pi (r.pi) { }
    int pi;
  };
  
  // There's another (redundant) -Wuninitialized on the line below.
! struct shared_ptr {		// { dg-warning "\\\[-Wuninitialized" }
    int ptr;
    shared_count refcount;
  };
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection1.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection1.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection1.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__((target_version("rng")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ __attribute__((target_version("flagm")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 3;
+ }
+ 
+ __attribute__((target_version("rng+flagm")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 4;
+ }
+ 
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ /* Cannot optimize */
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection2.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection2.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection2.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a+rng+flagm" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__((target_version("rng")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ __attribute__((target_version("flagm")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 3;
+ }
+ 
+ __attribute__((target_version("rng+flagm")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ {
+   return 4;
+ }
+ 
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ /* Can optimize to highest priority function */
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection3.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection3.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection3.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ { return 1; }
+ 
+ __attribute__((target_version("rng")))
+ int foo ();
+ __attribute__((target_version("flagm")))
+ int foo ();
+ __attribute__((target_version("rng+flagm")))
+ int foo ();
+ 
+ __attribute__((target_version("rng+flagm")))
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ /* Cannot optimize */
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection4.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection4.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection4.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection4.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ { return 1; }
+ 
+ __attribute__((target_version("rng")))
+ int foo ();
+ __attribute__((target_version("flagm")))
+ int foo ();
+ __attribute__((target_version("rng+flagm")))
+ int foo ();
+ 
+ __attribute__((target_version("default")))
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ __attribute__((target_version("rng")))
+ int bar();
+ 
+ __attribute__((target_version("flagm")))
+ int bar();
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection5.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection5.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection5.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ { return 1; }
+ 
+ __attribute__((target_version("rng")))
+ int foo ();
+ __attribute__((target_version("flagm")))
+ int foo ();
+ __attribute__((target_version("rng+flagm")))
+ int foo ();
+ 
+ __attribute__((target_version("default")))
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ __attribute__((target_version("flagm")))
+ int bar();
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection6.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection6.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection6.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a+rng" } */
+ 
+ __attribute__((target_version("default")))
+ __attribute__((optimize("O0")))
+ int foo ()
+ { return 1; }
+ 
+ __attribute__((target_version("rng")))
+ int foo ();
+ __attribute__((target_version("flagm")))
+ int foo ();
+ __attribute__((target_version("rng+flagm")))
+ int foo ();
+ 
+ __attribute__((target_version("default")))
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ __attribute__((target_version("flagm")))
+ int bar();
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._Mrng\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection7.C gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection7.C
*** gcc-16-20250928/gcc/testsuite/g++.target/aarch64/fmv-selection7.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/g++.target/aarch64/fmv-selection7.C	Sun Oct  5 22:32:43 2025
***************
*** 0 ****
--- 1,65 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O2 -march=armv8-a" } */
+ 
+ [[gnu::optimize("O0")]]
+ [[gnu::target_version ("default")]]
+ int bar () {
+   return 1;
+ }
+ 
+ [[gnu::optimize("O0")]]
+ [[gnu::target ("+sve2")]]
+ [[gnu::target_version ("sve")]]
+ int bar ();
+ 
+ [[gnu::target ("+sve")]]
+ int foo () {
+   return bar();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z3barv\._Msve\n" 1 } } */
+ 
+ [[gnu::target_version ("default")]]
+ int bar2 () {
+   return 1;
+ }
+ 
+ [[gnu::target_version ("sve2")]]
+ int bar2 ();
+ 
+ [[gnu::target_version ("default")]]
+ int foo2 ();
+ 
+ [[gnu::target_version ("sve")]]
+ [[gnu::target ("+sve2")]]
+ int foo2 () {
+   return bar2();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z4bar2v\._Msve2\n" 1 } } */
+ 
+ [[gnu::target_version ("default")]]
+ int bar3 () {
+   return 1;
+ }
+ 
+ [[gnu::target_version ("sve")]]
+ int bar3 ();
+ 
+ [[gnu::target ("+rng")]]
+ [[gnu::target_version ("sve2")]]
+ int bar3 ();
+ 
+ [[gnu::target_version ("default")]]
+ int foo3 ();
+ 
+ [[gnu::target_version ("sve")]]
+ int foo3 () {
+   return bar3 ();
+ }
+ 
+ [[gnu::target_version ("sve2+rng")]]
+ int foo3 ();
+ 
+ /* { dg-final { scan-assembler-times "\n\tb\t_Z4bar3v\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.c-torture/compile/pr122066.c gcc-16-20251005/gcc/testsuite/gcc.c-torture/compile/pr122066.c
*** gcc-16-20250928/gcc/testsuite/gcc.c-torture/compile/pr122066.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.c-torture/compile/pr122066.c	Sun Oct  5 22:32:45 2025
***************
*** 0 ****
--- 1,18 ----
+ /* PR target/122066 -- adddi3/subdi3 mishandle POST_INC/PRE_DEC dest on m68k */
+ 
+ struct {
+   long long wp_ssd[3];
+   long long wp_sum[3];
+ } m_lowres;
+ void calcAdaptiveQuantFrame() {
+   for (int i = 0; i < 3; i++) {
+     long sum = m_lowres.wp_sum[i];
+     long long ssd = m_lowres.wp_ssd[i];
+     m_lowres.wp_ssd[i] = ssd - sum;
+   }
+   for (int i = 0; i < 3; i++) {
+     long sum = m_lowres.wp_sum[i];
+     long long ssd = m_lowres.wp_ssd[i];
+     m_lowres.wp_ssd[i] = ssd + sum;
+   }
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-5.c gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-5.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-5.c	Sun Sep 28 22:33:27 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-5.c	Sun Oct  5 22:32:47 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  int
  foo (int a)
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  int
  foo (int a)
*************** foo (int a)
*** 16,22 ****
    return a > 0;
  }
  
! /* { dg-final { scan-tree-dump-times "if \\(" 0 "fab1" } } */
! /* { dg-final { scan-tree-dump-times "goto" 0 "fab1" } } */
! /* { dg-final { scan-tree-dump-times "L1:" 0 "fab1" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "fab1" } } */
--- 16,22 ----
    return a > 0;
  }
  
! /* { dg-final { scan-tree-dump-times "if \\(" 0 "optimized" } } */
! /* { dg-final { scan-tree-dump-times "goto" 0 "optimized" } } */
! /* { dg-final { scan-tree-dump-times "L1:" 0 "optimized" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-6.c gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-6.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-6.c	Sun Sep 28 22:33:27 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-6.c	Sun Oct  5 22:32:47 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp" } */
  /* { dg-require-effective-target label_values } */
  
  void
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp" } */
  /* { dg-require-effective-target label_values } */
  
  void
*************** lab2:
*** 17,21 ****
    goto *x;
  }
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */
--- 17,21 ----
    goto *x;
  }
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c	Sun Sep 28 22:33:27 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c	Sun Oct  5 22:32:47 2025
***************
*** 1,7 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  #include "builtin-unreachable-6.c"
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */
! /* { dg-final { scan-tree-dump-not "__builtin_unreachable" "fab1" } } */
--- 1,7 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  #include "builtin-unreachable-6.c"
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */
! /* { dg-final { scan-tree-dump-not "__builtin_unreachable" "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-7.c gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-7.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/builtin-unreachable-7.c	Sun Sep 28 22:33:27 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/builtin-unreachable-7.c	Sun Oct  5 22:32:47 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp" } */
  /* { dg-require-effective-target label_values } */
  
  void foo (int b, int c)
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp" } */
  /* { dg-require-effective-target label_values } */
  
  void foo (int b, int c)
*************** lab2:
*** 18,24 ****
  
  /* Fab should still able to remove the conditional but leave the bb there. */
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */
! /* { dg-final { scan-tree-dump-not "if " "fab1" } } */
  
--- 18,24 ----
  
  /* Fab should still able to remove the conditional but leave the bb there. */
  
! /* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */
! /* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "optimized" } } */
! /* { dg-final { scan-tree-dump-not "if " "optimized" } } */
  
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/c2y-init-2.c gcc-16-20251005/gcc/testsuite/gcc.dg/c2y-init-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/c2y-init-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/c2y-init-2.c	Sun Oct  5 22:32:47 2025
***************
*** 0 ****
--- 1,33 ----
+ /* Test invalid initializers that are consistent with the syntax: undefined
+    behavior ("shall" in Semantics not Constraints) before C2y, constraint
+    violation in C2y.  Structure and union cases.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c2y -pedantic-errors" } */
+ 
+ struct s1 { int a, b; };
+ struct s2 { struct s1 x; };
+ struct s3 { struct s2 x; };
+ union u1 { int a; };
+ union u2 { union u1 x; };
+ union u3 { union u2 x; };
+ 
+ struct s1 s1v;
+ volatile struct s2 s2v;
+ union u1 u1v;
+ const union u2 u2v;
+ 
+ void
+ f ()
+ {
+   struct s1 ts1a = {}, ts1b = s1v, ts1c = { 1, 2 };
+   const struct s2 ts2a = {}, ts2b = s2v, ts2c = { s1v }, ts2d = { 1 };
+   volatile struct s3 ts3a = { s2v }, ts3b = { s1v };
+   union u1 tu1a = {}, tu1b = u1v, tu1c = { 1 };
+   const union u2 tu2a = {}, tu2b = u2v, tu2c = { u1v }, tu2d = { 1 };
+   volatile union u3 tu3a = { u2v }, tu3b = { u1v };
+   struct s2 es2a = 1; /* { dg-error "invalid initializer" } */
+   struct s2 es2b = s1v; /* { dg-error "invalid initializer" } */
+   struct s1 es1a = s2v; /* { dg-error "invalid initializer" } */
+   union u2 eu2a = u1v; /* { dg-error "invalid initializer" } */
+   union u1 eu1a = 1; /* { dg-error "invalid initializer" } */
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/c2y-init-3.c gcc-16-20251005/gcc/testsuite/gcc.dg/c2y-init-3.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/c2y-init-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/c2y-init-3.c	Sun Oct  5 22:32:47 2025
***************
*** 0 ****
--- 1,106 ----
+ /* Test invalid initializers that are consistent with the syntax: undefined
+    behavior ("shall" in Semantics not Constraints) before C2y, constraint
+    violation in C2y.  Array cases.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c2y -pedantic-errors" } */
+ 
+ typedef __WCHAR_TYPE__ wchar_t;
+ typedef __CHAR8_TYPE__ char8_t;
+ typedef __CHAR16_TYPE__ char16_t;
+ typedef __CHAR32_TYPE__ char32_t;
+ 
+ const char c1[] = "", c2[] = { "" }, c3[] = { "", };
+ char c4[] = u8"", c5[] = { u8"" }, c6[] = { u8"", };
+ 
+ signed char sc1[] = "", sc2[] = { "" }, sc3[] = { "", };
+ volatile signed char sc4[] = u8"", sc5[] = { u8"" }, sc6[] = { u8"", };
+ 
+ unsigned char uc1[] = "", uc2[] = { "" }, uc3[] = { "", };
+ unsigned char uc4[] = u8"", uc5[] = { u8"" }, uc6[] = { u8"", };
+ 
+ char8_t c8_1[] = "", c8_2[] = { "" }, c8_3[] = { "", };
+ char8_t c8_4[] = u8"", c8_5[] = { u8"" }, c8_6[] = { u8"", };
+ 
+ wchar_t w1[] = L"", w2[] = { L"" }, w3[] = { L"", };
+ char16_t c16_1[] = u"", c16_2[] = { u"" }, c16_3[] = { u"", };
+ char32_t c32_1[] = U"", c32_2[] = { U"" }, c32_3[] = { U"", };
+ 
+ int ia[] = { 1, 2, 3 };
+ 
+ _Atomic char ac[] = ""; /* { dg-error "inappropriate type" } */
+ _Atomic wchar_t aw[] = L""; /* { dg-error "inappropriate type" } */
+ _Atomic char8_t ac8[] = u8""; /* { dg-error "inappropriate type" } */
+ _Atomic char16_t ac16[] = u""; /* { dg-error "inappropriate type" } */
+ _Atomic char32_t ac32[] = U""; /* { dg-error "inappropriate type" } */
+ 
+ #if __WCHAR_WIDTH__ > __SCHAR_WIDTH__
+ typedef char char_not_wchar;
+ typedef wchar_t wchar_not_char;
+ #else
+ typedef long long int char_not_wchar;
+ typedef long long int wchar_not_char;
+ #endif
+ char_not_wchar cnw[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char_not_wchar cnwb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char wnc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char wncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char wnc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char wnc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ 
+ #if __INT_LEAST16_WIDTH__ > __SCHAR_WIDTH__
+ typedef char char_not_char16;
+ typedef char16_t char16_not_char;
+ #else
+ typedef long long int char_not_char16;
+ typedef long long int char16_not_char;
+ #endif
+ char_not_char16 cn16[] = u""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char_not_char16 cn16b[] = { u"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_char c16nc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_char c16ncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_char c16nc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_char c16nc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ 
+ #if __INT_LEAST32_WIDTH__ > __SCHAR_WIDTH__
+ typedef char char_not_char32;
+ typedef char32_t char32_not_char;
+ #else
+ typedef long long int char_not_char32;
+ typedef long long int char32_not_char;
+ #endif
+ char_not_char32 cn32[] = U""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char_not_char32 cn32b[] = { U"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_char c32nc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_char c32ncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_char c32nc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_char c32nc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ 
+ #if __WCHAR_WIDTH__ == __INT_LEAST16_WIDTH__
+ typedef long long int wchar_not_char16;
+ typedef long long int char16_not_wchar;
+ #else
+ typedef wchar_t wchar_not_char16;
+ typedef char16_t char16_not_wchar;
+ #endif
+ wchar_not_char16 wcn16[] = u""; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char16 wcn16b[] = { u"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_wchar c16nwc[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char16_not_wchar c16nwcb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ 
+ #if __WCHAR_WIDTH__ == __INT_LEAST32_WIDTH__
+ typedef long long int wchar_not_char32;
+ typedef long long int char32_not_wchar;
+ #else
+ typedef wchar_t wchar_not_char32;
+ typedef char32_t char32_not_wchar;
+ #endif
+ wchar_not_char32 wcn32[] = U""; /* { dg-error "cannot initialize|inappropriate type" } */
+ wchar_not_char32 wcn32b[] = { U"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_wchar c32nwc[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */
+ char32_not_wchar c32nwcb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */
+ 
+ void
+ f ()
+ {
+   int ic[] = ia; /* { dg-error "invalid initializer" } */
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/int-bwise-opt-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/int-bwise-opt-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/int-bwise-opt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/int-bwise-opt-1.c	Sun Oct  5 22:32:48 2025
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ int f1(int a, int b)
+ {
+   return (a != b) & ((a | b) != 0);
+ }
+ 
+ int f2(int a, int b)
+ {
+   return (a == b) | ((a | b) == 0);
+ }
+ 
+ int f3(int a, int b)
+ {
+   return (a != b) & ((a | b) == 0);
+ }
+ 
+ int f4(int a, int b)
+ {
+   return (a == b) | ((a | b) != 0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "\\\|" 0 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "\&" 0 "optimized" } } */
+ 
+ /* f3 should fold to `1` (true).  */
+ /* { dg-final { scan-tree-dump-times "return 1;" 1 "optimized" } } */
+ 
+ /* f4 should fold to `0` (false).  */
+ /* { dg-final { scan-tree-dump-times "return 0;" 1 "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/int-bwise-opt-2.c gcc-16-20251005/gcc/testsuite/gcc.dg/int-bwise-opt-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/int-bwise-opt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/int-bwise-opt-2.c	Sun Oct  5 22:32:48 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ int f1(int a, int b)
+ {
+   return (a != b) | ((a | b) != 0);
+ }
+ 
+ int f2(int a, int b)
+ {
+   return (a == b) & ((a | b) == 0);
+ }
+ 
+  /* { dg-final { scan-tree-dump-times "a == b" 0 "optimized" } } */
+  /* { dg-final { scan-tree-dump-times "a != b" 0 "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc gcc-16-20251005/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc
*** gcc-16-20250928/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc	Sun Sep 28 22:33:28 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc	Sun Oct  5 22:32:49 2025
***************
*** 2,8 ****
   * By the time a PLUGIN_START_UNIT callback is invoked, the frontend 
   * initialization should have completed. At least the different *_type_nodes
   * should have been created. This plugin creates an artificial global 
!  * interger variable.
   * 
  */
  #include "gcc-plugin.h"
--- 2,8 ----
   * By the time a PLUGIN_START_UNIT callback is invoked, the frontend 
   * initialization should have completed. At least the different *_type_nodes
   * should have been created. This plugin creates an artificial global 
!  * integer variable.
   * 
  */
  #include "gcc-plugin.h"
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/pr120560.c gcc-16-20251005/gcc/testsuite/gcc.dg/pr120560.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/pr120560.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/pr120560.c	Sun Oct  5 22:32:49 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fno-tree-ccp -fdump-tree-evrp" } */
+ int main() {
+   int a = -1, b = 2, c = 1;
+   if (a >= 0)
+     c = 0;
+   while (1) {
+     if (-b + c - 7 >= 0)
+       return 0;
+     b = b - 1000 - 2147482648;
+   }
+ }
+ /* { dg-final { scan-tree-dump "return 0"  "evrp" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/pr78408-2.c gcc-16-20251005/gcc/testsuite/gcc.dg/pr78408-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/pr78408-2.c	Sun Sep 28 22:33:28 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/pr78408-2.c	Sun Oct  5 22:32:49 2025
***************
*** 1,7 ****
  /* PR c/78408 */
  /* { dg-do compile { target size32plus } } */
! /* { dg-options "-O2 -fdump-tree-fab1-details" } */
! /* { dg-final { scan-tree-dump-not "after previous" "fab1" } } */
  
  struct S { char a[32]; };
  struct T { char a[65536]; };
--- 1,7 ----
  /* PR c/78408 */
  /* { dg-do compile { target size32plus } } */
! /* { dg-options "-O2 -fdump-tree-forwprop1-details" } */
! /* { dg-final { scan-tree-dump-not "after previous" "forwprop1" } } */
  
  struct S { char a[32]; };
  struct T { char a[65536]; };
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-1.c	Sun Oct  5 22:32:50 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fcode-hoisting" } */
+ 
+ int a, b, c;
+ void e(int *f) {
+   int d = 0;
+   if (f)
+     goto g;
+   goto h;
+ i:
+   d = 1 + f[0];
+ j:
+   if (c)
+     goto h;
+ k:
+   if (b)
+     goto i;
+   if (a)
+     goto j;
+ g:
+   if (d + f[0])
+     goto k;
+ h:
+   int l[] = {f[0]};
+   if (a)
+     e(l);
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-2.c gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-2.c	Sun Oct  5 22:32:50 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ 
+ int a, b, *c = &a, d, e, f;
+ void g(int *p) { a = p[0]; }
+ int main() {
+   int h = 0;
+ i:
+   d = c[0];
+   c[0] = h;
+   if (a)
+     goto j;
+ k:
+   h = c[0] - 1;
+   while (1) {
+     if (b)
+       goto i;
+     if (f)
+       goto k;
+   j:
+     if (!e) {
+       int m[] = {c[0]};
+       g(m);
+       break;
+     }
+   }
+   return 0;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-3.c gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-3.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/torture/pr122079-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/torture/pr122079-3.c	Sun Oct  5 22:32:50 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fno-tree-loop-im" } */
+ 
+ int a, b, c;
+ void d(int[]);
+ void e(int f[][2]) {
+ g:
+   b = f[0][1];
+   if (c)
+     goto h;
+ i:
+   if (a)
+     goto g;
+   if (f[1][1])
+     goto j;
+ h:
+   if (f[1][1])
+     goto i;
+   goto k;
+ j:
+   b--;
+   if (b + f[0][1])
+     goto i;
+ k:
+   int l[] = {f[0][1]};
+   d(l);
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/torture/restrict-8.c gcc-16-20251005/gcc/testsuite/gcc.dg/torture/restrict-8.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/torture/restrict-8.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/torture/restrict-8.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
  /* { dg-options "-fdump-tree-fre1" } */
  
  struct S { int i; void *p; int j; };
--- 1,6 ----
  /* { dg-do compile } */
! /* -Og does not build the points-to aliasing info.  */
! /* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } { "" } } */
  /* { dg-options "-fdump-tree-fre1" } */
  
  struct S { int i; void *p; int j; };
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  typedef struct { int i; } FILE;
  FILE *fp;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  typedef struct { int i; } FILE;
  FILE *fp;
*************** void test (void)
*** 29,40 ****
    vi9 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "fab1"} } */
--- 29,40 ----
    vi9 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  typedef struct { int i; } FILE;
  FILE *fp;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  typedef struct { int i; } FILE;
  FILE *fp;
*************** void test (void)
*** 29,40 ****
    vi9 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "fab1"} } */
--- 29,40 ----
    vi9 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  extern int printf (const char *, ...);
  volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  extern int printf (const char *, ...);
  volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
*************** void test (void)
*** 29,41 ****
    via = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */
--- 29,41 ----
    via = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  extern int __printf_chk (int, const char *, ...);
  volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  extern int __printf_chk (int, const char *, ...);
  volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
*************** void test (void)
*** 29,41 ****
    via = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */
--- 29,41 ----
    via = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  #include <stdarg.h>
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  #include <stdarg.h>
  
*************** test (va_list ap1, va_list ap2, va_list
*** 29,38 ****
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "fab1"} } */
--- 29,38 ----
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  #include <stdarg.h>
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  #include <stdarg.h>
  
*************** test (va_list ap1, va_list ap2, va_list
*** 29,38 ****
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "fab1"} } */
--- 29,38 ----
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  #include <stdarg.h>
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  #include <stdarg.h>
  
*************** test (va_list ap1, va_list ap2, va_list
*** 27,36 ****
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "fab1"} } */
--- 27,36 ----
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c	Sun Oct  5 22:32:56 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-fab1" } */
  
  #include <stdarg.h>
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  #include <stdarg.h>
  
*************** test (va_list ap1, va_list ap2, va_list
*** 27,36 ****
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "fab1"} } */
! /* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "fab1"} } */
--- 27,36 ----
    vi7 = 0;
  }
  
! /* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "optimized"} } */
! /* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c	Sun Oct  5 22:32:57 2025
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/122033 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ void bar1 (char *, int);
+ void bar3(void) __attribute__((noreturn));
+ void foo1 (int size)
+ {
+   {
+     char temp[size];
+     temp[size-1] = '\0';
+     bar1 (temp, size);
+   }
+   bar3 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "__builtin_stack_save" "optimized"} } */
+ /* { dg-final { scan-tree-dump-not "__builtin_stack_restore" "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c	Sun Oct  5 22:32:57 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR middle-end/122033 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ void g(int*);
+ void h();
+ double t;
+ void f(int a, int b)
+ {
+   {
+     int array0[a];
+     {
+       int array1[b];
+       g(array0);
+       g(array1);
+     }
+     t = __builtin_sin(t);
+   }
+   h ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "__builtin_stack_save" 2 "optimized"} } */
+ /* { dg-final { scan-tree-dump-times "__builtin_stack_restore" 2 "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c	Sun Oct  5 22:32:57 2025
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-phiopt1" } */
+ /* PR tree-optimization/122153 */
+ struct s1
+ {
+   int t;
+ };
+ void g(struct s1*);
+ struct s1 f(int *a, int c, int d)
+ {
+   struct s1 r;
+   int t1;
+   if (c < d)
+   {
+     r = (struct s1){};
+     t1 = c;
+   }
+   else
+   {
+     r = (struct s1){};
+     t1 = d;
+   }
+   g(&r);
+   r.t = t1;
+   return r;
+ }
+ /* the `r = {};` store should be commonialized out of the conditional
+    and produce a MIN_EXPR in phiopt1. */
+ 
+ /* { dg-final { scan-tree-dump "MIN_EXPR" "phiopt1" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c	Sun Oct  5 22:32:58 2025
*************** int f4 (int i)
*** 34,37 ****
  
  /* { dg-final { scan-tree-dump-times "sprintf" 1 "optimized" } }
     { dg-final { scan-tree-dump-times "snprintf" 1 "optimized" } }
!    { dg-final { scan-tree-dump " = 9;" "optimized" } } */
--- 34,37 ----
  
  /* { dg-final { scan-tree-dump-times "sprintf" 1 "optimized" } }
     { dg-final { scan-tree-dump-times "snprintf" 1 "optimized" } }
!    { dg-final { scan-tree-dump "return 9;" "optimized" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c	Sun Sep 28 22:33:29 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c	Sun Oct  5 22:32:58 2025
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-fab1" } */
  
  /* Check that we fold strlen of equally long strings, and that we do not
     fail to terminate when there is a nontrivial cycle in the corresponding
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  /* Check that we fold strlen of equally long strings, and that we do not
     fail to terminate when there is a nontrivial cycle in the corresponding
*************** middle:
*** 32,35 ****
  }
  
  /* There should be no calls to strlen.  */
! /* { dg-final { scan-tree-dump-times "strlen" 0 "fab1"} } */
--- 32,35 ----
  }
  
  /* There should be no calls to strlen.  */
! /* { dg-final { scan-tree-dump-times "strlen" 0 "optimized"} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c gcc-16-20251005/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c	Sun Sep 28 22:33:31 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c	Sun Oct  5 22:32:59 2025
***************
*** 9,15 ****
  real_t s1244(struct args_t * func_args)
  {
  //    node splitting
! //    cycle with ture and anti dependency
  
      initialise_arrays(__func__);
  
--- 9,15 ----
  real_t s1244(struct args_t * func_args)
  {
  //    node splitting
! //    cycle with true and anti dependency
  
      initialise_arrays(__func__);
  
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c gcc-16-20251005/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c
*** gcc-16-20250928/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c	Sun Sep 28 22:33:31 2025
--- gcc-16-20251005/gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c	Sun Oct  5 22:32:59 2025
***************
*** 9,15 ****
  real_t s2244(struct args_t * func_args)
  {
  //    node splitting
! //    cycle with ture and anti dependency
  
      initialise_arrays(__func__);
  
--- 9,15 ----
  real_t s2244(struct args_t * func_args)
  {
  //    node splitting
! //    cycle with true and anti dependency
  
      initialise_arrays(__func__);
  
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c	Sun Sep 28 22:33:38 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c	Sun Oct  5 22:33:01 2025
*************** void f(char *out)
*** 30,35 ****
  /* { dg-final { scan-assembler "cset.*, hi" } } */
  /* { dg-final { scan-assembler "cset.*, ls" } } */
  /* { dg-final { scan-assembler "cset.*, ge" } } */
! /* { dg-final { scan-assembler "cset.*, ls" } } */
  /* { dg-final { scan-assembler "cset.*, gt" } } */
  /* { dg-final { scan-assembler "cset.*, le" } } */
--- 30,35 ----
  /* { dg-final { scan-assembler "cset.*, hi" } } */
  /* { dg-final { scan-assembler "cset.*, ls" } } */
  /* { dg-final { scan-assembler "cset.*, ge" } } */
! /* { dg-final { scan-assembler "cset.*, lt" } } */
  /* { dg-final { scan-assembler "cset.*, gt" } } */
  /* { dg-final { scan-assembler "cset.*, le" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c	Sun Sep 28 22:33:38 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c	Sun Oct  5 22:33:01 2025
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-march=armv8-a -O2" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
  
  #include <arm_acle.h>
  
*************** prefetch_for_read_write (void *a)
*** 38,60 ****
    __pldx (PST, SLC, KEEP, a);
    __pldx (PST, SLC, STRM, a);
  }
! 
! /* { dg-final { scan-assembler "prfm\tPLDL1KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDL1STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDL2KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDL2STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDL3KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDL3STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDSLCKEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLDSLCSTRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL1KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL1STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL2KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL2STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL3KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTL3STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTSLCKEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPSTSLCSTRM, \\\[x\[0-9\]+\\\]" } } */
  
  void
  prefetch_simple (void *a)
--- 39,65 ----
    __pldx (PST, SLC, KEEP, a);
    __pldx (PST, SLC, STRM, a);
  }
! /*
! ** prefetch_for_read_write:
! ** ...
! **	prfm\tPLDL1KEEP, \[x[0-9]+\]
! **	prfm\tPLDL1STRM, \[x[0-9]+\]
! **	prfm\tPLDL2KEEP, \[x[0-9]+\]
! **	prfm\tPLDL2STRM, \[x[0-9]+\]
! **	prfm\tPLDL3KEEP, \[x[0-9]+\]
! **	prfm\tPLDL3STRM, \[x[0-9]+\]
! **	prfm\tPLDSLCKEEP, \[x[0-9]+\]
! **	prfm\tPLDSLCSTRM, \[x[0-9]+\]
! **	prfm\tPSTL1KEEP, \[x[0-9]+\]
! **	prfm\tPSTL1STRM, \[x[0-9]+\]
! **	prfm\tPSTL2KEEP, \[x[0-9]+\]
! **	prfm\tPSTL2STRM, \[x[0-9]+\]
! **	prfm\tPSTL3KEEP, \[x[0-9]+\]
! **	prfm\tPSTL3STRM, \[x[0-9]+\]
! **	prfm\tPSTSLCKEEP, \[x[0-9]+\]
! **	prfm\tPSTSLCSTRM, \[x[0-9]+\]
! ** ...
! */
  
  void
  prefetch_simple (void *a)
*************** prefetch_simple (void *a)
*** 62,70 ****
    __pld (a);
    __pli (a);
  }
! 
! /* { dg-final { scan-assembler "prfm\tPLDL1KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL1KEEP, \\\[x\[0-9\]+\\\]" } } */
  
  void
  prefetch_instructions (void *a)
--- 67,79 ----
    __pld (a);
    __pli (a);
  }
! /*
! ** prefetch_simple:
! ** ...
! **	prfm\tPLDL1KEEP, \[x[0-9]+\]
! **	prfm\tPLIL1KEEP, \[x[0-9]+\]
! ** ...
! */
  
  void
  prefetch_instructions (void *a)
*************** prefetch_instructions (void *a)
*** 78,90 ****
    __plix (SLC, KEEP, a);
    __plix (SLC, STRM, a);
  }
! 
! /* { dg-final { scan-assembler "prfm\tPLIL1KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL1STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL2KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL2STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL3KEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLIL3STRM, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLISLCKEEP, \\\[x\[0-9\]+\\\]" } } */
! /* { dg-final { scan-assembler "prfm\tPLISLCSTRM, \\\[x\[0-9\]+\\\]" } } */
! 
--- 87,102 ----
    __plix (SLC, KEEP, a);
    __plix (SLC, STRM, a);
  }
! /*
! ** prefetch_instructions:
! ** ...
! **	prfm\tPLIL1KEEP, \[x[0-9]+\]
! **	prfm\tPLIL1STRM, \[x[0-9]+\]
! **	prfm\tPLIL2KEEP, \[x[0-9]+\]
! **	prfm\tPLIL2STRM, \[x[0-9]+\]
! **	prfm\tPLIL3KEEP, \[x[0-9]+\]
! **	prfm\tPLIL3STRM, \[x[0-9]+\]
! **	prfm\tPLISLCKEEP, \[x[0-9]+\]
! **	prfm\tPLISLCSTRM, \[x[0-9]+\]
! ** ...
! */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/csinc-1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/csinc-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/csinc-1.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/csinc-1.c	Sun Oct  5 22:33:01 2025
***************
*** 1,16 ****
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
  
  unsigned int
  test_csinc32_ifcvt(unsigned int w0,
  		   unsigned int w1,
  		   unsigned int w2) {
-   /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */
    if (w0 == w1)
      ++ w2;
  
    return w2;
  }
  
  unsigned int
  test_csinc32_condasn1(unsigned int w0,
--- 1,22 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
  
  unsigned int
  test_csinc32_ifcvt(unsigned int w0,
  		   unsigned int w1,
  		   unsigned int w2) {
    if (w0 == w1)
      ++ w2;
  
    return w2;
  }
+ /*
+ ** test_csinc32_ifcvt:
+ **	cmp\tw0, w1
+ **	cinc\tw0, w2, eq
+ **	ret
+ */
  
  unsigned int
  test_csinc32_condasn1(unsigned int w0,
*************** test_csinc32_condasn1(unsigned int w0,
*** 19,28 ****
  		      unsigned int w3) {
    unsigned int w4;
  
-   /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */
    w4 = (w0 == w1) ? (w3 + 1) : w2;
    return w4;
  }
  
  unsigned int
  test_csinc32_condasn2(unsigned int w0,
--- 25,39 ----
  		      unsigned int w3) {
    unsigned int w4;
  
    w4 = (w0 == w1) ? (w3 + 1) : w2;
    return w4;
  }
+ /*
+ ** test_csinc32_condasn1:
+ **	cmp\tw0, w1
+ **	csinc\tw0, w2, w3, ne
+ **	ret
+ */
  
  unsigned int
  test_csinc32_condasn2(unsigned int w0,
*************** test_csinc32_condasn2(unsigned int w0,
*** 31,51 ****
  		      unsigned int w3) {
    unsigned int w4;
  
-   /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*eq" } } */
    w4 = (w0 == w1) ? w2 : (w3 + 1);
    return w4;
  }
  
  unsigned long long
  test_csinc64_ifcvt(unsigned long long x0,
  		   unsigned long long x1,
  		   unsigned long long x2) {
-   /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */
    if (x0 == x1)
      ++ x2;
  
    return x2;
  }
  
  unsigned long long
  test_csinc64_condasn1(unsigned long long x0,
--- 42,72 ----
  		      unsigned int w3) {
    unsigned int w4;
  
    w4 = (w0 == w1) ? w2 : (w3 + 1);
    return w4;
  }
+ /*
+ ** test_csinc32_condasn2:
+ **	cmp\tw0, w1
+ **	csinc\tw0, w2, w3, eq
+ **	ret
+ */
  
  unsigned long long
  test_csinc64_ifcvt(unsigned long long x0,
  		   unsigned long long x1,
  		   unsigned long long x2) {
    if (x0 == x1)
      ++ x2;
  
    return x2;
  }
+ /*
+ ** test_csinc64_ifcvt:
+ **	cmp\tx0, x1
+ **	cinc\tx0, x2, eq
+ **	ret
+ */
  
  unsigned long long
  test_csinc64_condasn1(unsigned long long x0,
*************** test_csinc64_condasn1(unsigned long long
*** 54,63 ****
  		      unsigned long long x3) {
    unsigned long long x4;
  
-   /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */
    x4 = (x0 == x1) ? (x3 + 1) : x2;
    return x4;
  }
  
  unsigned long long
  test_csinc64_condasn2(unsigned long long x0,
--- 75,89 ----
  		      unsigned long long x3) {
    unsigned long long x4;
  
    x4 = (x0 == x1) ? (x3 + 1) : x2;
    return x4;
  }
+ /*
+ ** test_csinc64_condasn1:
+ **	cmp\tx0, x1
+ **	csinc\tx0, x2, x3, ne
+ **	ret
+ */
  
  unsigned long long
  test_csinc64_condasn2(unsigned long long x0,
*************** test_csinc64_condasn2(unsigned long long
*** 66,72 ****
  		      unsigned long long x3) {
    unsigned long long x4;
  
-   /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*eq" } } */
    x4 = (x0 == x1) ? x2 : (x3 + 1);
    return x4;
  }
--- 92,103 ----
  		      unsigned long long x3) {
    unsigned long long x4;
  
    x4 = (x0 == x1) ? x2 : (x3 + 1);
    return x4;
  }
+ /*
+ ** test_csinc64_condasn2:
+ **	cmp\tx0, x1
+ **	csinc\tx0, x2, x3, eq
+ **	ret
+ */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/csneg-1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/csneg-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/csneg-1.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/csneg-1.c	Sun Oct  5 22:33:01 2025
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
  
  int
  test_csneg32_condasn1(int w0,
*************** test_csneg32_condasn1(int w0,
*** 8,17 ****
  		      int w3) {
    int w4;
  
-   /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*ne" } } */
    w4 = (w0 == w1) ? -w3 : w2;
    return w4;
  }
  
  int
  test_csneg32_condasn2(int w0,
--- 9,23 ----
  		      int w3) {
    int w4;
  
    w4 = (w0 == w1) ? -w3 : w2;
    return w4;
  }
+ /*
+ ** test_csneg32_condasn1:
+ **	cmp\tw0, w1
+ **	csneg\tw0, w2, w3, ne
+ **	ret
+ */
  
  int
  test_csneg32_condasn2(int w0,
*************** test_csneg32_condasn2(int w0,
*** 20,29 ****
  		      int w3) {
    int w4;
  
-   /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*eq" } } */
    w4 = (w0 == w1) ? w3 : -w2;
    return w4;
  }
  
  long long
  test_csneg64_condasn1(long long x0,
--- 26,40 ----
  		      int w3) {
    int w4;
  
    w4 = (w0 == w1) ? w3 : -w2;
    return w4;
  }
+ /*
+ ** test_csneg32_condasn2:
+ **	cmp\tw0, w1
+ **	csneg\tw0, w3, w2, eq
+ **	ret
+ */
  
  long long
  test_csneg64_condasn1(long long x0,
*************** test_csneg64_condasn1(long long x0,
*** 32,41 ****
  		      long long x3) {
    long long x4;
  
-   /* { dg-final { scan-assembler "csneg\tx\[0-9\]*.*ne" } } */
    x4 = (x0 == x1) ? -x3 : x2;
    return x4;
  }
  
  long long
  test_csneg64_condasn2(long long x0,
--- 43,57 ----
  		      long long x3) {
    long long x4;
  
    x4 = (x0 == x1) ? -x3 : x2;
    return x4;
  }
+ /*
+ ** test_csneg64_condasn1:
+ **	cmp\tx0, x1
+ **	csneg\tx0, x2, x3, ne
+ **	ret
+ */
  
  long long
  test_csneg64_condasn2(long long x0,
*************** test_csneg64_condasn2(long long x0,
*** 44,70 ****
  		      long long x3) {
    long long x4;
  
-   /* { dg-final { scan-assembler "csneg\tx\[0-9\]*.*eq" } } */
    x4 = (x0 == x1) ? x3 : -x2;
    return x4;
  }
  
  int test_csneg_cmp(int x)
  {
-   /* { dg-final { scan-assembler "csneg\tw\[0-9\]" } } */
    if (x > 3)
      x = -x;
    return x;
  }
  
  unsigned long long
  test_csneg_uxtw (unsigned int a,
  		 unsigned int b,
  		 unsigned int c)
  {
-   /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*ne" } } */
-   /* { dg-final { scan-assembler-not "uxtw\tw\[0-9\]*.*" } } */
    unsigned int val;
    val = a ? b: -c;
    return val;
  }
--- 60,100 ----
  		      long long x3) {
    long long x4;
  
    x4 = (x0 == x1) ? x3 : -x2;
    return x4;
  }
+ /*
+ ** test_csneg64_condasn2:
+ **	cmp\tx0, x1
+ **	csneg\tx0, x3, x2, eq
+ **	ret
+ */
  
  int test_csneg_cmp(int x)
  {
    if (x > 3)
      x = -x;
    return x;
  }
+ /*
+ ** test_csneg_cmp:
+ **	cmp\tw0, 3
+ **	csneg\tw0, w0, w0, le
+ **	ret
+ */
  
  unsigned long long
  test_csneg_uxtw (unsigned int a,
  		 unsigned int b,
  		 unsigned int c)
  {
    unsigned int val;
    val = a ? b: -c;
    return val;
  }
+ /*
+ ** test_csneg_uxtw:
+ **	cmp\tw0, 0
+ **	csneg\tw0, w1, w2, ne
+ **	ret
+ */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c	Sun Oct  5 22:33:01 2025
*************** void f05 (short a, short *b, short c)
*** 51,61 ****
    *b += a + c;
  }
  
! /* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */
! /* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */
! /* { dg-final { scan-assembler {_ZGVnM8ul2v_f05:} } } */
  /* { dg-final { scan-assembler {_ZGVnM8ul2v_f05:} } } */
  #ifdef __cplusplus
  }
  #endif
- 
--- 51,60 ----
    *b += a + c;
  }
  
! /* { dg-final { scan-assembler {_ZGVnM4ul2v_f05:} } } */
  /* { dg-final { scan-assembler {_ZGVnM8ul2v_f05:} } } */
+ /* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */
+ /* { dg-final { scan-assembler {_ZGVnN8ul2v_f05:} } } */
  #ifdef __cplusplus
  }
  #endif
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c	Sun Oct  5 22:33:01 2025
***************
*** 1,52 ****
  /* { dg-do compile } */
  /* { dg-options "-O3" } */
  
  float f0(void)
  {
    float x = 0.0f;
    return x;
  }
  
  float fn1(void)
  {
    float x = -0.0f;
    return x;
  }
  
  float f1(void)
  {
    float x = 256.0f;
    return x;
  }
  
  float f2(void)
  {
    float x = 123256.0f;
    return x;
  }
  
  float f3(void)
  {
    float x = 2.0f;
    return x;
  }
  
  float f4(void)
  {
    float x = -20000.1;
    return x;
  }
! 
! 
! /* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, ?#0"           1 } } */
! /* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24"  1 } } */
! /* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24"  1 } } */
! 
! /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 48128"                1 } } */
! /* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0x47f0, lsl 16"      1 } } */
! 
! /* { dg-final { scan-assembler-times "fmov\ts\[0-9\]+, 2\\\.0e\\\+0"  1 } } */
! 
! /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 16435"                1 } } */
! /* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0xc69c, lsl 16"      1 } } */
! 
--- 1,74 ----
  /* { dg-do compile } */
  /* { dg-options "-O3" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
  
  float f0(void)
  {
    float x = 0.0f;
    return x;
  }
+ /*
+ ** f0:
+ **	movi\tv0.2s, #?0
+ **	ret
+ */
  
  float fn1(void)
  {
    float x = -0.0f;
    return x;
  }
+ /*
+ ** fn1:
+ **	movi\tv0.2s, 0x80, lsl 24
+ **	ret
+ */
  
  float f1(void)
  {
    float x = 256.0f;
    return x;
  }
+ /*
+ ** f1:
+ **	mov\t(w[0-9]+), 1132462080
+ **	fmov\ts0, \1
+ **	ret
+ */
  
  float f2(void)
  {
    float x = 123256.0f;
    return x;
  }
+ /*
+ ** f2:
+ **	mov\t(w[0-9]+), 48128
+ **	movk\t\1, 0x47f0, lsl 16
+ **	fmov\ts0, \1
+ **	ret
+ */
  
  float f3(void)
  {
    float x = 2.0f;
    return x;
  }
+ /*
+ ** f3:
+ **	fmov\ts0, 2\.0e\+0
+ **	ret
+ */
  
  float f4(void)
  {
    float x = -20000.1;
    return x;
  }
! /*
! ** f4:
! **	mov\t(w[0-9]+), 16435
! **	movk\t\1, 0xc69c, lsl 16
! **	fmov\ts0, \1
! **	ret
! */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c	Sun Oct  5 22:33:01 2025
*************** CONS4_FN (1, double);
*** 107,113 ****
  CONS4_FN (2, double);
  
  /*
! ** cons2_8_double:
  **	...
  **	stp	q[0-9]+, .*
  **	ret
--- 107,113 ----
  CONS4_FN (2, double);
  
  /*
! ** cons4_4_double:
  **	...
  **	stp	q[0-9]+, .*
  **	ret
*************** CONS4_FN (2, double);
*** 115,121 ****
  CONS4_FN (4, double);
  
  /*
! ** cons2_8_double:
  **	...
  **	stp	q[0-9]+, .*
  **	ret
--- 115,121 ----
  CONS4_FN (4, double);
  
  /*
! ** cons4_8_double:
  **	...
  **	stp	q[0-9]+, .*
  **	ret
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("rng"))) int
+ foo ()
+ {
+   return 2;
+ }
+ 
+ __attribute__ ((target_version ("flagm"))) int
+ foo ()
+ {
+   return 3;
+ }
+ 
+ __attribute__ ((target_version ("rng+flagm"))) int
+ foo ()
+ {
+   return 4;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* Check usage of the first two FMV features, in case of off-by-one errors.  */
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mrng:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MrngMflagm:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mflagm:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ __attribute__ ((target_clones ("dotprod", "sve"))) int
+ foo () { return 1; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ __attribute__ ((target_clones ("dotprod", "sve"))) float
+ foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\].; have .float\\(void\\)." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ float foo () { return 1; } /* { dg-message "previous definition of .foo." } */
+ 
+ __attribute__ ((target_clones ("default", "dotprod", "sve"))) float
+ foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.default., .dotprod., .sve.\\)\\\]\\\]." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((target_version("default")))
+ int foo ()
+ {
+   return 0;
+ }
+ 
+ __attribute__((target_clones("dotprod", "sve+sve2")))
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__((target_clones("sve", "sve2")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((target_version("default")))
+ int foo ();
+ 
+ __attribute__((target_clones("dotprod", "sve+sve2")))
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__((target_clones("sve", "sve2")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((target_clones("dotprod", "sve+sve2")))
+ int foo ();
+ 
+ __attribute__((target_version("default")))
+ int foo ()
+ {
+   return 0;
+ }
+ 
+ __attribute__((target_clones("sve", "sve2")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
+ // { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\.default\n" 1 } }
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._MsveMsve2\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Msve\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Msve2\n" 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((target_version("dotprod")))
+ int foo ()
+ {
+   return 0;
+ }
+ 
+ __attribute__((target_clones("default", "sve+sve2")))
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__((target_clones("sve", "sve2")))
+ int foo ()
+ {
+   return 2;
+ }
+ 
+ int bar()
+ {
+   return foo ();
+ }
+ 
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("dotprod"))) float
+ foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("sve"))) int
+ foo2 () { return 1; } /* { dg-message "previous definition of .foo2 \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("dotprod"))) float
+ foo2 () { return 3; } /* { dg-error "conflicting types for .foo2 \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error10.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error10.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error10.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error10.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ void
+ bar ()
+ {
+   __attribute__ ((target_version ("dotprod"))) int
+   foo1 (); /* { dg-message "versioned declarations are only allowed at file scope" } */
+ 
+   __attribute__ ((target_version ("simd"))) int
+   foo2 () { return 1; } /* { dg-message "versioned definitions are only allowed at file scope" } */
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error11.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error11.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error11.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error11.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ int fn () asm("name");
+ int fn () { return 1; } /* { dg-error "cannot use function multiversioning on a renamed function" } */
+ int fn [[gnu::target_version("sve")]] () { return 1; }
+ 
+ int fn2 [[gnu::target_version("sve")]] () asm("name"); /* { dg-warning ".asm. declaration ignored due to conflict with previous rename" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error12.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error12.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error12.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error12.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp" } */
+ /* { dg-require-ifunc "" } */
+ 
+ #pragma omp declare simd
+ int fn [[gnu::target_version("sve")]] () { return 1; } /* { dg-error ".#pragma omp declare simd. cannot be used with function multi-versioning" } */
+ 
+ #pragma omp declare simd
+ int fn2 () { return 1; }
+ 
+ int fn2 [[gnu::target_version("sve")]] (); /* { dg-warning "ignoring attribute .target_version. because it conflicts with attribute .omp declare simd." } */
+ 
+ int fn3 [[gnu::target_version("sve")]] [[gnu::simd]] () { return 1; } /* { dg-warning "ignoring attribute .simd. because it conflicts with attribute .target_version." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) float
+ foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .float\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("dotprod"))) float
+ foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error3.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) float
+ foo () { return 3; }
+ 
+ __attribute__ ((target_version ("default"))) float
+ foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .float\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("default"))) float
+ foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error4.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error4.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error4.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("test"))) float
+ foo () { return 3; } /* { dg-error "invalid feature modifier .test. of value .test. in .target_version. attribute" } */
+ 
+ __attribute__ ((target_version ("sve+test"))) float
+ foo2 () { return 3; } /* { dg-error "invalid feature modifier .test. of value .sve.test. in .target_version. attribute" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error5.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo(); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error6.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error6.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error6.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo () {
+ 	return 1;
+ }
+ 
+ __attribute__ ((target_version ("sve"))) int
+ foo () { /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 	return 1;
+ }
+ 
+ int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo2(); /* { dg-message "previous declaration of .foo2 \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ int bar2 () { return foo2 (); } /* { dg-error "implicit declaration of function .foo2." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error7.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error7.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error7.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error8.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error8.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error8.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo (int a, int (*b)[4]) { return 1; }
+ 
+ int bar(void) {
+   __attribute__ ((target_version ("dotprod"))) int
+   foo (int a, int (*b)[5]) { return 3; } /* { dg-error "versioned definitions are only allowed at file scope" } */
+ 
+   return 1;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error9.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error9.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-error9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-error9.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */
+ 
+ int
+ bar ()
+ {
+   return foo (); /* { dg-error "implicit declaration of function .foo." } */
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // Basic case of fmv correctness with all functions and use in one TU.
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* When updating any of the symbol names in these tests, make sure to also
+    update any tests for their absence in mv-symbolsN.C */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ int
+ foo ();
+ 
+ int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // Check that types can be combined
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo (int a, int (*b)[4]) { return 1; }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo (int a, int (*b)[]) { return 3; }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo () { return 1; }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo () { return 3; }
+ 
+ int bar ()
+ {
+   int (*test)() = foo;
+ 
+   test();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ int bar ()
+ {
+   int (*test)() = foo;
+ 
+   test();
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo () { return 3; }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\._Mdotprod\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\.default\n" 0 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ int foo ();
+ 
+ __attribute__ ((target_version ("default")))  int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // FMV correctness with definitions but no call
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // FMV correctness with declarations but no implementation
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // FMV correctness with a default implementation and declarations of other
+ // versions
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ // FMV correctness with default declaration, and implementations of other
+ // versions.
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* When updating any of the symbol names in these tests, make sure to also
+    update any tests for their absence in mvc-symbolsN.C */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ int bar()
+ {
+   return foo();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "bl\tfoo.default\n" 1 } } */
+ /* { dg-final { scan-assembler-times ".global\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times ".set\tfoo,foo.default\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,47 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,47 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("default"))) int
+ foo ();
+ 
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("default"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,44 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ();
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ();
+ 
+ int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ __attribute__ ((target_version ("dotprod"))) int
+ foo ()
+ {
+   return 3;
+ }
+ __attribute__ ((target_version ("sve+sve2"))) int
+ foo ()
+ {
+   return 5;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ 
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-error1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-error1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-error1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-error1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default, dotprod"))) float
+ foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */
+ 
+ __attribute__ ((target_clones ("dotprod", "sve"))) float
+ foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-error2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-error2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-error2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-error2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default, dotprod"))) float
+ foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */
+ 
+ __attribute__ ((target_clones ("dotprod", "sve"))) float
+ foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* When updating any of the symbol names in these tests, make sure to also
+    update any tests for their absence in mvc-symbolsN.C */
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int
+ foo ()
+ {
+   return 1;
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int
+ foo ();
+ 
+ int
+ bar ()
+ {
+   return foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int
+ foo ();
+ 
+ /* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */
+ /* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c	Sun Oct  5 22:33:01 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-require-ifunc "" } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((target_clones("default", "dotprod", "sve+sve2")))
+ int foo () {
+   return 1;
+ }
+ 
+ __attribute__((target_clones("invalid1")))
+ int foo () { /* { dg-warning "invalid feature modifier .invalid1. in version .invalid1. for .target_clones. attribute" } */
+   return 2;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/ror_2.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/ror_2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/ror_2.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/ror_2.c	Sun Oct  5 22:33:01 2025
*************** tst2 (unsigned x, unsigned y)
*** 175,182 ****
  int
  tst3 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "tst\tw\[0-9\]+, w\[0-9\]+, ror 20\n" } } */
!   return ((unsigned long)x & ROR (y, 20)) == 0;
  }
  
  int
--- 175,182 ----
  int
  tst3 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "tst\tw\[0-9\]+, w\[0-9\]+, ror 21\n" } } */
!   return ((unsigned long)x & ROR (y, 21)) == 0;
  }
  
  int
*************** bics1 (unsigned x, unsigned y)
*** 189,203 ****
  int
  bics2 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 21\n" } } */
!   return (x & ~ROR (y, 21)) == 0;
  }
  
  int
  bics3 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 21\n" } } */
!   return (x & (unsigned long)~ROR (y, 21)) == 0;
  }
  
  /* { dg-final { scan-assembler-not "cmp" } } */
--- 189,203 ----
  int
  bics2 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 22\n" } } */
!   return (x & ~ROR (y, 22)) == 0;
  }
  
  int
  bics3 (unsigned x, unsigned y)
  {
!   /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 23\n" } } */
!   return (x & (unsigned long)~ROR (y, 23)) == 0;
  }
  
  /* { dg-final { scan-assembler-not "cmp" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c	Sun Oct  5 22:33:01 2025
*************** test_vrsrad_n_s64 (int64_t a, int64_t b)
*** 913,919 ****
    return vrsrad_n_s64 (a, b, 3);
  }
  
! /* { dg-final { scan-assembler-times "\\tsrsra\\td\[0-9\]+" 1 } } */
  
  uint64_t
  test_vrsrad_n_u64 (uint64_t a, uint64_t b)
--- 913,919 ----
    return vrsrad_n_s64 (a, b, 3);
  }
  
! /* { dg-final { scan-assembler-times "\\tursra\\td\[0-9\]+" 1 } } */
  
  uint64_t
  test_vrsrad_n_u64 (uint64_t a, uint64_t b)
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c	Sun Oct  5 22:33:01 2025
***************
*** 1,6 ****
  /* { dg-do run } */
  /* { dg-options "-O2 -fno-inline -save-temps" } */
! 
  extern void abort ();
  
  #define force_simd_di(v) asm volatile ("mov %d0, %1.d[0]" :"=w" (v) :"w" (v) :)
--- 1,6 ----
  /* { dg-do run } */
  /* { dg-options "-O2 -fno-inline -save-temps" } */
! /* { dg-final { check-function-bodies "**" "" "" } } */
  extern void abort ();
  
  #define force_simd_di(v) asm volatile ("mov %d0, %1.d[0]" :"=w" (v) :"w" (v) :)
*************** test_lshift_left_sisd_di (UInt64x1 b, UI
*** 23,30 ****
    force_simd_di (a);
    return a;
  }
! /* { dg-final { scan-assembler "shl\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */
! /* { dg-final { scan-assembler "ushl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */
  
  UInt32x1
  test_lshift_left_sisd_si (UInt32x1 b, UInt32x1 c)
--- 23,35 ----
    force_simd_di (a);
    return a;
  }
! /*
! ** test_lshift_left_sisd_di:
! ** ...
! **	shl\t(d[0-9]+), d[0-9]+, 8
! **	ushl\td[0-9]+, \1, d[0-9]+
! ** ...
! */
  
  UInt32x1
  test_lshift_left_sisd_si (UInt32x1 b, UInt32x1 c)
*************** test_lshift_left_sisd_si (UInt32x1 b, UI
*** 38,45 ****
    force_simd_si (a);
    return a;
  }
! /* { dg-final { scan-assembler "shl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */
! /* "ushl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" (counted later) */
  
  UInt64x1
  test_lshift_right_sisd_di (UInt64x1 b, UInt64x1 c)
--- 43,55 ----
    force_simd_si (a);
    return a;
  }
! /*
! ** test_lshift_left_sisd_si:
! ** ...
! **	shl\t(v[0-9]+\.2s), v[0-9]+\.2s, 4
! **	ushl\tv[0-9]+\.2s, \1, v[0-9]+\.2s
! ** ...
! */
  
  UInt64x1
  test_lshift_right_sisd_di (UInt64x1 b, UInt64x1 c)
*************** test_lshift_right_sisd_di (UInt64x1 b, U
*** 53,61 ****
    force_simd_di (a);
    return a;
  }
! /* { dg-final { scan-assembler "ushr\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */
! /* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */
! /* { dg-final { scan-assembler "ushl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */
  
  UInt64x1
  test_lshift_right_sisd_si (UInt32x1 b, UInt32x1 c)
--- 63,76 ----
    force_simd_di (a);
    return a;
  }
! /*
! ** test_lshift_right_sisd_di:
! ** ...
! **	ushr\t(d[0-9]+), d[0-9]+, 8
! **	neg\t(d[0-9]+), d[0-9]+
! **	ushl\td[0-9]+, \1, \2
! ** ...
! */
  
  UInt64x1
  test_lshift_right_sisd_si (UInt32x1 b, UInt32x1 c)
*************** test_lshift_right_sisd_si (UInt32x1 b, U
*** 69,77 ****
    force_simd_si (a);
    return a;
  }
! /* { dg-final { scan-assembler "ushr\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */
! /* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */
! /* { dg-final { scan-assembler-times "ushl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" 2 } } */
  
  Int64x1
  test_ashift_right_sisd_di (Int64x1 b, Int64x1 c)
--- 84,97 ----
    force_simd_si (a);
    return a;
  }
! /*
! ** test_lshift_right_sisd_si:
! ** ...
! **	ushr\t(v[0-9]+\.2s), v[0-9]+\.2s, 4
! **	neg\td([0-9]+), d[0-9]+
! **	ushl\tv[0-9]+\.2s, \1, v\2\.2s
! ** ...
! */
  
  Int64x1
  test_ashift_right_sisd_di (Int64x1 b, Int64x1 c)
*************** test_ashift_right_sisd_di (Int64x1 b, In
*** 85,93 ****
    force_simd_di (a);
    return a;
  }
! /* { dg-final { scan-assembler "sshr\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */
! /* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */
! /* { dg-final { scan-assembler "sshl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */
  
  Int32x1
  test_ashift_right_sisd_si (Int32x1 b, Int32x1 c)
--- 105,118 ----
    force_simd_di (a);
    return a;
  }
! /*
! ** test_ashift_right_sisd_di:
! ** ...
! **	sshr\t(d[0-9]+), d[0-9]+, 8
! **	neg\t(d[0-9]+), d[0-9]+
! **	sshl\td[0-9]+, \1, \2
! ** ...
! */
  
  Int32x1
  test_ashift_right_sisd_si (Int32x1 b, Int32x1 c)
*************** test_ashift_right_sisd_si (Int32x1 b, In
*** 101,110 ****
    force_simd_si (a);
    return a;
  }
! /* { dg-final { scan-assembler "sshr\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */
! /* { dg-final { scan-assembler-times "neg\td\[0-9\]+,\ d\[0-9\]+" 4 } } */
! /* { dg-final { scan-assembler "sshl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" } } */
! 
  
  /* The following are to make sure if the integer instructions lsl/lsr/asr are
     generated in non-vector scenarios */
--- 126,139 ----
    force_simd_si (a);
    return a;
  }
! /*
! ** test_ashift_right_sisd_si:
! ** ...
! **	sshr\t(v[0-9]+\.2s), v[0-9]+\.2s, 4
! **	neg\td([0-9]+), d[0-9]+
! **	sshl\tv[0-9]+\.2s, \1, v\2\.2s
! ** ...
! */
  
  /* The following are to make sure if the integer instructions lsl/lsr/asr are
     generated in non-vector scenarios */
*************** test_lshift_left_int_di (UInt64x1 b, UIn
*** 118,125 ****
    a = a << c;
    return a;
  }
! /* { dg-final { scan-assembler "lsl\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */
! /* { dg-final { scan-assembler "lsl\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */
  
  UInt32x1
  test_lshift_left_int_si (UInt32x1 b, UInt32x1 c)
--- 147,158 ----
    a = a << c;
    return a;
  }
! /*
! ** test_lshift_left_int_di:
! **	lsl\t(x[0-9]+), x0, 8
! **	lsl\tx0, \1, x1
! **	ret
! */
  
  UInt32x1
  test_lshift_left_int_si (UInt32x1 b, UInt32x1 c)
*************** test_lshift_left_int_si (UInt32x1 b, UIn
*** 130,137 ****
    a = a << c;
    return a;
  }
! /* { dg-final { scan-assembler "lsl\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */
! /* { dg-final { scan-assembler "lsl\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */
  
  UInt64x1
  test_lshift_right_int_di (UInt64x1 b, UInt64x1 c)
--- 163,174 ----
    a = a << c;
    return a;
  }
! /*
! ** test_lshift_left_int_si:
! **	lsl\t(w[0-9]+), w0, 4
! **	lsl\tw0, \1, w1
! **	ret
! */
  
  UInt64x1
  test_lshift_right_int_di (UInt64x1 b, UInt64x1 c)
*************** test_lshift_right_int_di (UInt64x1 b, UI
*** 142,149 ****
    a = a >> c;
    return a;
  }
! /* { dg-final { scan-assembler "lsr\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */
! /* { dg-final { scan-assembler "lsr\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */
  
  UInt32x1
  test_lshift_right_int_si (UInt32x1 b, UInt32x1 c)
--- 179,190 ----
    a = a >> c;
    return a;
  }
! /*
! ** test_lshift_right_int_di:
! **	lsr\t(x[0-9]+), x0, 8
! **	lsr\tx0, \1, x1
! **	ret
! */
  
  UInt32x1
  test_lshift_right_int_si (UInt32x1 b, UInt32x1 c)
*************** test_lshift_right_int_si (UInt32x1 b, UI
*** 154,161 ****
    a = a >> c;
    return a;
  }
! /* { dg-final { scan-assembler "lsr\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */
! /* { dg-final { scan-assembler "lsr\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */
  
  Int64x1
  test_ashift_right_int_di (Int64x1 b, Int64x1 c)
--- 195,206 ----
    a = a >> c;
    return a;
  }
! /*
! ** test_lshift_right_int_si:
! **	lsr\t(w[0-9]+), w0, 4
! **	lsr\tw0, \1, w1
! **	ret
! */
  
  Int64x1
  test_ashift_right_int_di (Int64x1 b, Int64x1 c)
*************** test_ashift_right_int_di (Int64x1 b, Int
*** 166,173 ****
    a = a >> c;
    return a;
  }
! /* { dg-final { scan-assembler "asr\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */
! /* { dg-final { scan-assembler "asr\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */
  
  Int32x1
  test_ashift_right_int_si (Int32x1 b, Int32x1 c)
--- 211,222 ----
    a = a >> c;
    return a;
  }
! /*
! ** test_ashift_right_int_di:
! **	asr\t(x[0-9]+), x0, 8
! **	asr\tx0, \1, x1
! **	ret
! */
  
  Int32x1
  test_ashift_right_int_si (Int32x1 b, Int32x1 c)
*************** test_ashift_right_int_si (Int32x1 b, Int
*** 178,185 ****
    a = a >> c;
    return a;
  }
! /* { dg-final { scan-assembler "asr\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */
! /* { dg-final { scan-assembler "asr\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */
  
  #define CHECK(var,val) \
  do                     \
--- 227,238 ----
    a = a >> c;
    return a;
  }
! /*
! ** test_ashift_right_int_si:
! **	asr\t(w[0-9]+), w0, 4
! **	asr\tw0, \1, w1
! **	ret
! */
  
  #define CHECK(var,val) \
  do                     \
*************** main ()
*** 225,228 ****
  
    return 0;
  }
- 
--- 278,280 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c	Sun Sep 28 22:33:39 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c	Sun Oct  5 22:33:01 2025
***************
*** 68,75 ****
  /* { dg-final { scan-assembler-times {ssubl2\t} 3} } */
  /* { dg-final { scan-assembler-times {usubl2\t} 3} } */
  
! /* { dg-final { scan-assembler-times {sabdl2\t} 3} } */
! /* { dg-final { scan-assembler-times {uabdl2\t} 3} } */
  
  /* { dg-final { scan-assembler-times {saddw2\t} 3} } */
  /* { dg-final { scan-assembler-times {uaddw2\t} 3} } */
--- 68,75 ----
  /* { dg-final { scan-assembler-times {ssubl2\t} 3} } */
  /* { dg-final { scan-assembler-times {usubl2\t} 3} } */
  
! /* { dg-final { scan-assembler-times {sabal2\t} 3} } */
! /* { dg-final { scan-assembler-times {uabal2\t} 3} } */
  
  /* { dg-final { scan-assembler-times {saddw2\t} 3} } */
  /* { dg-final { scan-assembler-times {uaddw2\t} 3} } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c	Sun Sep 28 22:33:40 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c	Sun Oct  5 22:33:01 2025
*************** test_vrsra_n_s64 (int64x1_t a, int64x1_t
*** 298,304 ****
    return vrsra_n_s64 (a, b, 3);
  }
  
! /* { dg-final { scan-assembler-times "\\tsrsra\\td\[0-9\]+" 1 } } */
  
  uint64x1_t
  test_vrsra_n_u64 (uint64x1_t a, uint64x1_t b)
--- 298,304 ----
    return vrsra_n_s64 (a, b, 3);
  }
  
! /* { dg-final { scan-assembler-times "\\tursra\\td\[0-9\]+" 1 } } */
  
  uint64x1_t
  test_vrsra_n_u64 (uint64x1_t a, uint64x1_t b)
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c	Sun Oct  5 22:33:02 2025
*************** DO_ARITH_OPS (int64_t, -, minus)
*** 85,91 ****
  /* { dg-final { scan-assembler-not {\tadd\tz[0-9]+\.d, z[0-9]+\.d, #-1\n} } } */
  /* { dg-final { scan-assembler-times {\tsub\tz[0-9]+\.d, z[0-9]+\.d, #1\n} 1 } } */
  
! /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #1\n} } } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #5\n} } } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #255\n} } } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #256\n} } } */
--- 85,91 ----
  /* { dg-final { scan-assembler-not {\tadd\tz[0-9]+\.d, z[0-9]+\.d, #-1\n} } } */
  /* { dg-final { scan-assembler-times {\tsub\tz[0-9]+\.d, z[0-9]+\.d, #1\n} 1 } } */
  
! /* Asserted above { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #1\n} } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #5\n} } } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #255\n} } } */
  /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #256\n} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c	Sun Oct  5 22:33:02 2025
*************** TEST_ALL (DEF_LOOP)
*** 38,47 ****
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
  
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
- 
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */
--- 38,43 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c	Sun Oct  5 22:33:02 2025
*************** TEST_ALL (DEF_LOOP)
*** 47,54 ****
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 47,54 ----
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c	Sun Oct  5 22:33:03 2025
***************
*** 11,20 ****
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
  
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
- 
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */
--- 11,16 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c	Sun Oct  5 22:33:03 2025
***************
*** 20,27 ****
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 20,27 ----
  /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c	Sun Oct  5 22:33:03 2025
***************
*** 12,21 ****
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
  
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
- 
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */
--- 12,17 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c	Sun Oct  5 22:33:03 2025
***************
*** 21,28 ****
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 21,28 ----
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c	Sun Oct  5 22:33:03 2025
***************
*** 12,21 ****
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
  
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */
- /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */
- 
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */
  /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */
--- 12,17 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c	Sun Oct  5 22:33:03 2025
***************
*** 21,28 ****
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 21,28 ----
  /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c	Sun Oct  5 22:33:03 2025
*************** TEST_ALL (DEF_LOOP)
*** 43,50 ****
  /* { dg-final { scan-assembler-times {\tfmul\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 43,50 ----
  /* { dg-final { scan-assembler-times {\tfmul\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c	Sun Oct  5 22:33:03 2025
*************** TEST_ALL (DEF_LOOP)
*** 43,50 ****
  /* { dg-final { scan-assembler-times {\tfsub\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
--- 43,50 ----
  /* { dg-final { scan-assembler-times {\tfsub\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */
  
  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */
! /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */
  
  /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */
  /* { dg-final { scan-assembler-not {\tmov\tz} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c	Sun Oct  5 22:33:03 2025
*************** f3 (uint64_t *restrict ptr1, uint32_t *r
*** 39,47 ****
  }
  
  /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */
! /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */
  /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #4\n} } } */
  
  /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */
! /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */
  /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #4\n} } } */
--- 39,47 ----
  }
  
  /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */
! /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #2\n} } } */
  /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #4\n} } } */
  
  /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */
! /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #2\n} } } */
  /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #4\n} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c	Sun Oct  5 22:33:03 2025
*************** svfloat64x4_t ret_f64x4 (void) { return
*** 96,102 ****
  
  /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s8x3\n} } } */
  /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s16x3\n} } } */
- /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s16x3\n} } } */
  /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s32x3\n} } } */
  /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s64x3\n} } } */
  /* { dg-final { scan-assembler {\t\.variant_pcs\tret_u8x3\n} } } */
--- 96,101 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c	Sun Oct  5 22:33:03 2025
*************** CALLEE (s8, svint8_t)
*** 55,61 ****
  CALLEE (u8, svuint8_t)
  
  /*
! ** callee_u8:
  ** (
  **	ld1	({v.*}), \[x0\]
  **	st1	\1, \[x8\]
--- 55,61 ----
  CALLEE (u8, svuint8_t)
  
  /*
! ** callee_mf8:
  ** (
  **	ld1	({v.*}), \[x0\]
  **	st1	\1, \[x8\]
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c	Sun Oct  5 22:33:03 2025
*************** typedef struct { vnx2df a[4]; } vnx8df;
*** 37,43 ****
  TEST_TYPE (vnx64qi, z0, z4)
  TEST_TYPE (vnx32hi, z6, z2)
  TEST_TYPE (vnx16si, z12, z16)
! TEST_TYPE (vnx8di, z17, z13)
  TEST_TYPE (vnx32hf, z18, z1)
  TEST_TYPE (vnx16sf, z20, z16)
  TEST_TYPE (vnx8df, z24, z28)
--- 37,43 ----
  TEST_TYPE (vnx64qi, z0, z4)
  TEST_TYPE (vnx32hi, z6, z2)
  TEST_TYPE (vnx16si, z12, z16)
! TEST_TYPE (vnx8di, z17, z12)
  TEST_TYPE (vnx32hf, z18, z1)
  TEST_TYPE (vnx16sf, z20, z16)
  TEST_TYPE (vnx8df, z24, z28)
*************** TEST_TYPE (vnx8df, z24, z28)
*** 92,102 ****
  /* { dg-final { scan-assembler {\tld1d\tz19.d, p[0-7]/z, \[x0, #2, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tld1d\tz20.d, p[0-7]/z, \[x0, #3, mul vl\]\n} } } */
  /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz13.d, z17.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz14.d, z18.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz15.d, z19.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz16.d, z20.d\n} } } */
! /* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z13\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz17.d, p[0-7], \[x0, #4, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz18.d, p[0-7], \[x0, #5, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz19.d, p[0-7], \[x0, #6, mul vl\]\n} } } */
--- 92,102 ----
  /* { dg-final { scan-assembler {\tld1d\tz19.d, p[0-7]/z, \[x0, #2, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tld1d\tz20.d, p[0-7]/z, \[x0, #3, mul vl\]\n} } } */
  /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz12.d, z17.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz13.d, z18.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz14.d, z19.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz15.d, z20.d\n} } } */
! /* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z12\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz17.d, p[0-7], \[x0, #4, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz18.d, p[0-7], \[x0, #5, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tst1d\tz19.d, p[0-7], \[x0, #6, mul vl\]\n} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c	Sun Oct  5 22:33:03 2025
*************** typedef struct { vnx2df a[4]; } vnx8df;
*** 34,40 ****
  TEST_TYPE (vnx64qi, z0, z4)
  TEST_TYPE (vnx32hi, z6, z2)
  TEST_TYPE (vnx16si, z12, z16)
! TEST_TYPE (vnx8di, z17, z13)
  TEST_TYPE (vnx16sf, z20, z16)
  TEST_TYPE (vnx8df, z24, z28)
  
--- 34,40 ----
  TEST_TYPE (vnx64qi, z0, z4)
  TEST_TYPE (vnx32hi, z6, z2)
  TEST_TYPE (vnx16si, z12, z16)
! TEST_TYPE (vnx8di, z17, z12)
  TEST_TYPE (vnx16sf, z20, z16)
  TEST_TYPE (vnx8df, z24, z28)
  
*************** TEST_TYPE (vnx8df, z24, z28)
*** 88,98 ****
  /* { dg-final { scan-assembler {\tldr\tz19, \[x0, #2, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tldr\tz20, \[x0, #3, mul vl\]\n} } } */
  /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz13.d, z17.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz14.d, z18.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz15.d, z19.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz16.d, z20.d\n} } } */
! /* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z13\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz17, \[x0, #4, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz18, \[x0, #5, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz19, \[x0, #6, mul vl\]\n} } } */
--- 88,98 ----
  /* { dg-final { scan-assembler {\tldr\tz19, \[x0, #2, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tldr\tz20, \[x0, #3, mul vl\]\n} } } */
  /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz12.d, z17.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz13.d, z18.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz14.d, z19.d\n} } } */
! /* { dg-final { scan-assembler {\tmov\tz15.d, z20.d\n} } } */
! /* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z12\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz17, \[x0, #4, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz18, \[x0, #5, mul vl\]\n} } } */
  /* { dg-final { scan-assembler {\tstr\tz19, \[x0, #6, mul vl\]\n} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c	Sun Oct  5 22:33:03 2025
*************** UZP1 (vnx8hf,  ((vnx8hi) { 0, 2, 4, 6, 8
*** 32,40 ****
  			   16, 18, 20, 22, 24, 26, 28, 30 }));
  
  /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
  
  /* { dg-final { scan-assembler-times {\tuzp1\tz[0-9]+\.d, z[0-9]+\.d, z[0-9]+\.d\n} 2 } } */
  /* { dg-final { scan-assembler-times {\tuzp1\tz[0-9]+\.s, z[0-9]+\.s, z[0-9]+\.s\n} 2 } } */
--- 32,37 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c	Sun Oct  5 22:33:03 2025
*************** UZP2 (vnx8hf,  ((vnx8hi) { 1, 3, 5, 7, 9
*** 31,39 ****
  			   17, 19, 21, 23, 25, 27, 29, 31 }));
  
  /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
- /* { dg-final { scan-assembler-not {\ttbl\t} } } */
  
  /* { dg-final { scan-assembler-times {\tuzp2\tz[0-9]+\.d, z[0-9]+\.d, z[0-9]+\.d\n} 2 } } */
  /* { dg-final { scan-assembler-times {\tuzp2\tz[0-9]+\.s, z[0-9]+\.s, z[0-9]+\.s\n} 2 } } */
--- 31,36 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c	Sun Sep 28 22:33:42 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c	Sun Oct  5 22:33:04 2025
*************** n (v4i *x, v4i const *y, v4i *z, v4i *t)
*** 53,67 ****
  }
  
  
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*==\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*!=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */
- /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */
--- 53,65 ----
  }
  
  
+ /* { dg-final { scan-tree-dump-times "\\s*\\*tD\\.\\d+\\s*=\\s*\\{\\s*-1(?:,\\s*-1){3}\\s*\\}\\s*;" 1 "original" } } */
+ /* { dg-final { scan-tree-dump-times "\\s*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(?:,\\s*0){3}\\s*\\}\\s*;" 3 "original" } } */
+ /* { dg-final { scan-tree-dump-times "\\s*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(?:,\\s*-1){3}\\s*\\}\\s*;" 2 "original" } } */
+ 
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*==\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*!=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
  /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR<v4iD\\.\\d+>\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/i386/pr122104.c gcc-16-20251005/gcc/testsuite/gcc.target/i386/pr122104.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/i386/pr122104.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/i386/pr122104.c	Sun Oct  5 22:33:08 2025
***************
*** 0 ****
--- 1,12 ----
+ /* PR tree-optimization/122104 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-widening_mul-alias" } */
+ /* { dg-final { scan-tree-dump "\\.MUL_OVERFLOW" "widening_mul" } } */
+ /* { dg-final { scan-tree-dump-not "# RANGE \\\[irange\\\] unsigned int \\\[1, " "widening_mul" } } */
+ 
+ int
+ foo (int x)
+ {
+   int r = (unsigned) x * 35;
+   return x && ((unsigned) r / x) != 35U;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/i386/pr122150.c gcc-16-20251005/gcc/testsuite/gcc.target/i386/pr122150.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/i386/pr122150.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/i386/pr122150.c	Sun Oct  5 22:33:08 2025
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-options "-mstringop-strategy=unrolled_loop" } */
+ 
+ char c[2841];
+ 
+ __attribute__((noipa))
+ void
+ foo (void)
+ {
+   __builtin_memset (&c, 1, 2841);
+ }
+ 
+ int
+ main (void)
+ {
+   foo ();
+   for (unsigned i = 0; i < sizeof (c); i++)
+     if (c[i] != 1)
+       __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/mips/pr99217-2.c gcc-16-20251005/gcc/testsuite/gcc.target/mips/pr99217-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/mips/pr99217-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/mips/pr99217-2.c	Sun Oct  5 22:33:09 2025
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fpatchable-function-entry=2,1" } */
+ /* { dg-final { scan-assembler "foo:\n\t.set\tnoreorder\n\tnop\n\t.set\treorder" } } */
+ /* { dg-final { scan-assembler ".*.LPFE0:\n\t.set\tnoreorder\n\tnop\n\t.set\treorder\n\t.ent\tfoo\n" } } */
+ 
+ /* Test the placement of the .LPFE0 label.  */
+ 
+ void
+ foo (void)
+ {
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr121937.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr121937.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr121937.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr121937.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-w -march=rv64gcv -mabi=lp64d" { target rv64 } } */
+ /* { dg-additional-options "-w -march=rv32gcv -mabi=ilp32" { target rv32 } } */
+ 
+ #include <stdint-gcc.h>
+ #define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type))))
+ typedef int16_t int16;
+ typedef uint16_t uint16;
+ typedef int32_t int32;
+ typedef uint64_t uint64;
+ int32_t g_69, g_539;
+ int32_t *g_68;
+ void func_59(int32_t p_60) {
+   BS_VEC(uint64, 2) BS_VAR_4;
+   BS_VEC(int16, 8) BS_VAR_6;
+   uint64 *LOCAL_CHECKSUM;
+   int32_t *l_108 = &g_69;
+   int64_t l_829 = 10;
+   int32_t l_844 = -1;
+   for (; g_69;) {
+     int32_t l_924;
+     if (p_60 * 2u) {
+     BS_LABEL_0:
+       *LOCAL_CHECKSUM ^= BS_VAR_4[3];
+       for (l_924 = 3; l_924; l_924 -= 1) {
+         BS_VEC(uint64, 8)
+         BS_TEMP_600 = -__builtin_convertvector(BS_VAR_6, BS_VEC(uint64, 8));
+         BS_VEC(uint64, 8)
+         BS_TEMP_601 = __builtin_convertvector((BS_VEC(int32, 8)){p_60},
+                                               BS_VEC(uint64, 8));
+         BS_VAR_4[356358257141730375] =
+             __builtin_convertvector(
+                 __builtin_shufflevector((BS_VEC(uint16, 2))0,
+                                         (BS_VEC(uint16, 2))0, 1, 3, 0, 1, 2, 0,
+                                         0, 2, 0, 0, 1, 2, 3, 3, 3, 2),
+                 BS_VEC(uint64, 16))[BS_VAR_6[4]] >
+             (BS_VEC(uint64, 8)){0, BS_TEMP_600[1] ? BS_TEMP_601[1]
+                                                   : 0}[l_829 != 0];
+       }
+     }
+     if (*l_108)
+       *g_68 |= g_539;
+     __asm goto("" : : : : BS_LABEL_0);
+     BS_VEC(int16, 4)
+     BS_TEMP_681 = __builtin_shufflevector(
+         (BS_VEC(int16, 2))__builtin_shufflevector(
+             __builtin_convertvector(
+                 __builtin_shufflevector(BS_VAR_6, BS_VAR_6, 8, 6, 5, 8, 1, 3, 6,
+                                         2, 0, 1, 2, 5, 8, 6, 5, 1, 5, 0, 3, 5,
+                                         8, 2, 2, 4, 6, 0, 6, 4, 3, 3, 1, 2),
+                 BS_VEC(uint16, 32)),
+             __builtin_convertvector((BS_VEC(int32, 32)){}, BS_VEC(uint16, 32)),
+             42, 52) -
+             __builtin_convertvector((BS_VEC(int32, 2)){l_844},
+                                     BS_VEC(uint16, 2)) *
+                 ~0,
+         ~(0 < __builtin_shufflevector(
+                   __builtin_convertvector((BS_VEC(int32, 16)){p_60},
+                                           BS_VEC(uint16, 16)),
+                   (BS_VEC(uint16, 16)){20489, 3, 2, 4}, 19, 6)),
+         1, 2, 0, 3);
+     BS_VAR_6[0] =
+         BS_TEMP_681[0] ^ BS_TEMP_681[1] ^ BS_TEMP_681[2] ^ BS_TEMP_681[3];
+   }
+ }
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122051.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122051.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122051.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122051.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target int128 } } */
+ /* { dg-additional-options "-mrvv-vector-bits=zvl -mcpu=xt-c920 -w" } */
+ 
+ typedef __attribute__((__vector_size__(4))) char B;
+ typedef __attribute__((__vector_size__(16))) long V;
+ typedef __attribute__((__vector_size__(32))) double W;
+ typedef __attribute__((__vector_size__(32))) char U;
+ unsigned u;
+ B o;
+ char *p;
+ int q;
+ V v;
+ W w;
+ 
+ void
+ foo(__int128, __int128, __int128, __int128, B a, B b, B c, B d, B e, B f, B g, B h) {
+   do {
+     w -= q;
+     v ^= u;
+   } while (__builtin_memcmp(p, 1 + p, 7));
+   o = ((U)w)[0] + c + d + e + f + g + h + a + b;
+ }
+ 
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122106.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122106.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122106.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122106.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,3 ----
+ /* { dg-do compile } */
+ 
+ short foo() { return __builtin_rev_crc16_data16(0, 0, 0); }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122114.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122114.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122114.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122114.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-options "-O2 -fstack-clash-protection -march=rv64gcv_zvl256b -mabi=lp64d" } */
+ 
+ int pk_gen_i, pk_gen_j;
+ long pk_gen_buf[4];
+ long pk_gen_t;
+ 
+ void vec_mul(long *, long *, long *);
+ void uint64_is_zero_declassify(long);
+ 
+ void pk_gen() {
+   long consts[128][13], prod[128][13];
+ 
+   vec_mul(prod[pk_gen_j], prod[pk_gen_j], consts[pk_gen_j]);
+ 
+   for (; pk_gen_i;) {
+     for (; pk_gen_j; pk_gen_j++)
+       pk_gen_t |= pk_gen_buf[pk_gen_j];
+ 
+     uint64_is_zero_declassify(pk_gen_t);
+   }
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122147.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122147.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/pr122147.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/pr122147.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-w -march=rv64gcv -mabi=lp64d" { target rv64 } } */
+ /* { dg-additional-options "-w -march=rv32gcv -mabi=ilp32" { target rv32 } } */
+ 
+ typedef __attribute__((__vector_size__ (4))) _Float16 F;
+ _Complex char cc;
+ F f;
+ 
+ void
+ foo ()
+ {
+   __builtin_memmove (&f, &cc, 2);
+   f *= f;
+ }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mtune=generic-ooo -O3 -march=rv64gcv_zvl256b_zba -mabi=lp64d -mrvv-max-lmul=m2 -mrvv-vector-bits=scalable" } */
+ 
+ int test(int* in, int n)
+ {
+   int accum = 0;
+   for (int i = 0; i < n; i++)
+         accum += in[i];
+ 
+   return accum;
+ }
+ 
+ /* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*ta,\s*ma} 3 } } */
+ /* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*tu,\s*ma} 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rva23u64 -mtune=generic-ooo -Ofast -S" } */
+ 
+ void vmult(
+     double* dst,
+     const double* src,
+     const unsigned int* rowstart,
+     const unsigned int* colnums,
+     const double* val,
+     const unsigned int n_rows
+ ) {
+     const double* val_ptr = &val[rowstart[0]];
+     const unsigned int* colnum_ptr = &colnums[rowstart[0]];
+     double* dst_ptr = dst;
+ 
+     for (unsigned int row = 0; row < n_rows; ++row) {
+         double s = 0.;
+         const double* const val_end_of_row = &val[rowstart[row + 1]];
+         while (val_ptr != val_end_of_row) {
+             s += *val_ptr++ * src[*colnum_ptr++];
+         }
+         *dst_ptr++ = s;
+     }
+ }
+ 
+ /* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*ta,\s*ma} 4 } } */
+ /* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*tu,\s*ma} 1 } } */
+ 
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c	Sun Sep 28 22:33:59 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c	Sun Oct  5 22:33:42 2025
*************** DEF_OP_V (nearbyint, 512, double, __buil
*** 54,58 ****
  /* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
  /* { dg-final { scan-assembler-times {vfcvt\.x\.f\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */
  /* { dg-final { scan-assembler-times {vfcvt\.f\.x\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */
! /* { dg-final { scan-assembler-times {frflags\s+[atx][0-9]+} 32 } } */
! /* { dg-final { scan-assembler-times {fsflags\s+[atx][0-9]+} 32 } } */
--- 54,58 ----
  /* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
  /* { dg-final { scan-assembler-times {vfcvt\.x\.f\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */
  /* { dg-final { scan-assembler-times {vfcvt\.f\.x\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */
! /* { dg-final { scan-assembler-times {frflags\s+[atx][0-9]+} 30 } } */
! /* { dg-final { scan-assembler-times {fsflags\s+[atx][0-9]+} 30 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c	Sun Oct  5 22:33:42 2025
*************** TEST_BINARY_VX_UNSIGNED_0(T)
*** 12,18 ****
  TEST_TERNARY_VX_UNSIGNED_0(T)
  TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
  
! /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
--- 12,18 ----
  TEST_TERNARY_VX_UNSIGNED_0(T)
  TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
  
! /* { dg-final { scan-assembler-times {vadd.vx} 2 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c	Sun Oct  5 22:33:42 2025
*************** TEST_BINARY_VX_UNSIGNED_0(T)
*** 12,18 ****
  TEST_TERNARY_VX_UNSIGNED_0(T)
  TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
  
! /* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
--- 12,18 ----
  TEST_TERNARY_VX_UNSIGNED_0(T)
  TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
  
! /* { dg-final { scan-assembler-times {vadd.vx} 2 } } */
  /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vand.vx} 1 } } */
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 35,37 ****
--- 35,38 ----
  /* { dg-final { scan-assembler-times {vwaddu.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vwsubu.vx} 1 } } */
  /* { dg-final { scan-assembler-times {vwmulu.vx} 1 } } */
+ /* { dg-final { scan-assembler-times {vwaddu.wx} 1 } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c	Sun Oct  5 22:33:42 2025
*************** TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT)
*** 32,34 ****
--- 32,35 ----
  /* { dg-final { scan-assembler-not {vwaddu.vx} } } */
  /* { dg-final { scan-assembler-not {vwsubu.vx} } } */
  /* { dg-final { scan-assembler-not {vwmulu.vx} } } */
+ /* { dg-final { scan-assembler-not {vwaddu.wx} } } */
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h	Sun Oct  5 22:33:42 2025
*************** test_vx_widen_binary_##NAME##_##WT##_##N
*** 28,36 ****
--- 28,54 ----
  #define RUN_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, NAME, vd, vs2, rs1, n) \
    RUN_VX_WIDEN_BINARY_CASE_0(WT, NT, NAME, vd, vs2, rs1, n)
  
+ #define DEF_VX_WIDEN_BINARY_CASE_1(WT, NT, OP, NAME)                    \
+ void                                                                    \
+ test_vx_widen_binary_##NAME##_##WT##_##NT##_case_1 (WT * restrict vd,   \
+ 						    WT * restrict vs2,  \
+ 						    NT rs1, unsigned n) \
+ {                                                                       \
+   for (unsigned i = 0; i < n; i++)                                      \
+     vd[i] = vs2[i] OP (WT)rs1;                                          \
+ }
+ 
+ #define DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, OP, NAME) \
+   DEF_VX_WIDEN_BINARY_CASE_1(WT, NT, OP, NAME)
+ #define RUN_VX_WIDEN_BINARY_CASE_1(WT, NT, NAME, vd, vs2, rs1, n) \
+   test_vx_widen_binary_##NAME##_##WT##_##NT##_case_1(vd, vs2, rs1, n)
+ #define RUN_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, NAME, vd, vs2, rs1, n) \
+   RUN_VX_WIDEN_BINARY_CASE_1(WT, NT, NAME, vd, vs2, rs1, n)
+ 
  #define TEST_WIDEN_BINARY_VX_UNSIGNED(WT, NT)     \
    DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, +, add) \
    DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, -, sub) \
    DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, *, mul) \
+   DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, +, add) \
  
  #endif
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h	Sun Sep 28 22:34:00 2025
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h	Sun Oct  5 22:33:42 2025
***************
*** 4,10 ****
  #define N 16
  
  #define DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME) \
!   binary_widen_##WT##_##NT##_##NAME##_s
  #define DEF_BINARY_WIDEN_STRUCT_0_NAME_WRAP(WT, NT, NAME) \
    DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME)
  
--- 4,10 ----
  #define N 16
  
  #define DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME) \
!   binary_widen_##WT##_##NT##_##NAME##_s_0
  #define DEF_BINARY_WIDEN_STRUCT_0_NAME_WRAP(WT, NT, NAME) \
    DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME)
  
***************
*** 14,20 ****
    DEF_BINARY_WIDEN_STRUCT_0_TYPE(WT, NT, NAME)
  
  #define DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME) \
!   binary_widen_##WT##_##NT##_##NAME##_data
  #define DEF_BINARY_WIDEN_STRUCT_0_VAR_WRAP(WT, NT, NAME) \
    DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME)
  
--- 14,20 ----
    DEF_BINARY_WIDEN_STRUCT_0_TYPE(WT, NT, NAME)
  
  #define DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME) \
!   binary_widen_##WT##_##NT##_##NAME##_data_0
  #define DEF_BINARY_WIDEN_STRUCT_0_VAR_WRAP(WT, NT, NAME) \
    DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME)
  
***************
*** 24,29 ****
--- 24,50 ----
  #define DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(WT, NT, NAME) \
    DEF_BINARY_WIDEN_STRUCT_0_DECL(WT, NT, NAME)
  
+ #define DEF_BINARY_WIDEN_STRUCT_1_NAME(WT, NT, NAME) \
+   binary_widen_##WT##_##NT##_##NAME##_s_1
+ #define DEF_BINARY_WIDEN_STRUCT_1_NAME_WRAP(WT, NT, NAME) \
+   DEF_BINARY_WIDEN_STRUCT_1_NAME(WT, NT, NAME)
+ 
+ #define DEF_BINARY_WIDEN_STRUCT_1_TYPE(WT, NT, NAME) \
+   struct DEF_BINARY_WIDEN_STRUCT_1_NAME_WRAP(WT, NT, NAME)
+ #define DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME) \
+   DEF_BINARY_WIDEN_STRUCT_1_TYPE(WT, NT, NAME)
+ 
+ #define DEF_BINARY_WIDEN_STRUCT_1_VAR(WT, NT, NAME) \
+   binary_widen_##WT##_##NT##_##NAME##_data_1
+ #define DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME) \
+   DEF_BINARY_WIDEN_STRUCT_1_VAR(WT, NT, NAME)
+ 
+ #define DEF_BINARY_WIDEN_STRUCT_1_DECL(WT, NT, NAME) \
+   DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME)  \
+   DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME)
+ #define DEF_BINARY_WIDEN_STRUCT_1_DECL_WRAP(WT, NT, NAME) \
+   DEF_BINARY_WIDEN_STRUCT_1_DECL(WT, NT, NAME)
+ 
  #define DEF_BINARY_WIDEN_STRUCT_0(WT, NT, NAME)            \
    DEF_BINARY_WIDEN_STRUCT_0_TYPE_WRAP(WT, NT, NAME)        \
      {                                                      \
*************** DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t,
*** 39,44 ****
--- 60,78 ----
  DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t, uint32_t, sub)
  DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t, uint32_t, mul)
  
+ #define DEF_BINARY_WIDEN_STRUCT_1(WT, NT, NAME)            \
+   DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME)        \
+     {                                                      \
+       WT vs2[N];                                           \
+       NT rs1;                                              \
+       WT expect[N];                                        \
+       WT vd[N];                                            \
+     };
+ #define DEF_BINARY_WIDEN_STRUCT_1_WRAP(WT, NT, NAME)       \
+   DEF_BINARY_WIDEN_STRUCT_1(WT, NT, NAME)
+ 
+ DEF_BINARY_WIDEN_STRUCT_1_WRAP(uint64_t, uint32_t, add)
+ 
  DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(uint64_t, uint32_t, add)[] = {
    {
      /* vs2 */
*************** DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(uint
*** 155,159 ****
--- 189,232 ----
      },
    },
  };
+ 
+ DEF_BINARY_WIDEN_STRUCT_1_DECL_WRAP(uint64_t, uint32_t, add)[] = {
+   {
+     /* vs2 */
+     {
+                1,          1,          1,          1,
+                0,          0,          0,          0,
+       2147483647, 2147483647, 2147483647, 2147483647,
+       2147483649, 2147483649, 2147483649, 2147483649,
+     },
+     /* rs1 */
+     2147483647,
+     /* expect */
+     {
+          2147483648,    2147483648,    2147483648,    2147483648,
+          2147483647,    2147483647,    2147483647,    2147483647,
+          4294967294,    4294967294,    4294967294,    4294967294,
+       4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull,
+     },
+   },
+   {
+     /* vs2 */
+     {
+                   1,             1,             1,             1,
+                   0,             0,             0,             0,
+       4294967295ull, 4294967295ull, 4294967295ull, 4294967295ull,
+       4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull,
+     },
+     /* rs1 */
+     4294967295,
+     /* expect */
+     {
+       4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull,
+       4294967295ull, 4294967295ull, 4294967295ull, 4294967295ull,
+       8589934590ull, 8589934590ull, 8589934590ull, 8589934590ull,
+       8589934591ull, 8589934591ull, 8589934591ull, 8589934591ull,
+     },
+   },
+ };
  
  #endif
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,27 ----
+ #ifndef HAVE_DEFINED_WX_WIDEN_RUN_H
+ #define HAVE_DEFINED_WX_WIDEN_RUN_H
+ 
+ int
+ main ()
+ {
+   unsigned i, k;
+ 
+   for (i = 0; i < sizeof (TEST_DATA) / sizeof (TEST_DATA[0]); i++)
+     {
+       DATA_TYPE *data = &TEST_DATA[i];
+       WT *vs2 = data->vs2;
+       NT rs1 = data->rs1;
+       WT *expect = data->expect;
+       WT *vd = data->vd;
+ 
+       TEST_RUN (WT, NT, NAME, vd, vs2, rs1, N);
+ 
+       for (k = 0; k < N; k++)
+ 	if (vd[k] != expect[k])
+ 	  __builtin_abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ #endif
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c
*** gcc-16-20250928/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c	Sun Oct  5 22:33:42 2025
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */
+ 
+ #include "vx_widen.h"
+ #include "vx_widen_data.h"
+ 
+ #define WT        uint64_t
+ #define NT        uint32_t
+ #define NAME      add
+ #define TEST_DATA DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME)
+ #define DATA_TYPE DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME)
+ 
+ DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, +, NAME)
+ 
+ #define TEST_RUN(WT, NT, NAME, vd, vs2, rs1, N) \
+   RUN_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, NAME, vd, vs2, rs1, N)
+ 
+ #include "vx_widen_wx_run.h"
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/implied_do_io_9.f90 gcc-16-20251005/gcc/testsuite/gfortran.dg/implied_do_io_9.f90
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/implied_do_io_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/implied_do_io_9.f90	Sun Oct  5 22:33:50 2025
***************
*** 0 ****
--- 1,72 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O2" }
+ !
+ ! PR fortran/107968
+ !
+ ! Verify that array I/O optimization is not used for a section
+ ! of an array pointer as the pointee can be non-contiguous
+ !
+ ! Contributed by Nils Dreier
+ 
+ PROGRAM foo
+   implicit none
+ 
+   TYPE t_geographical_coordinates
+      REAL :: lon
+      REAL :: lat
+   END TYPE t_geographical_coordinates
+ 
+   TYPE t_vertices
+      REAL, POINTER          :: vlon(:) => null()
+      REAL, POINTER          :: vlat(:) => null()
+   END TYPE t_vertices
+ 
+   TYPE(t_geographical_coordinates), TARGET :: vertex(2)
+   TYPE(t_vertices), POINTER :: vertices_pointer
+   TYPE(t_vertices), TARGET  :: vertices_target
+ 
+   character(24)           :: s0, s1, s2
+   character(*), parameter :: fmt = '(2f8.3)'
+ 
+   ! initialization
+   vertex%lon = [1,3]
+   vertex%lat = [2,4]
+ 
+   ! obtain pointer to (non-contiguous) field
+   vertices_target%vlon => vertex%lon
+ 
+   ! reference output of write
+   write (s0,fmt) vertex%lon
+ 
+   ! set pointer vertices_pointer in a subroutine
+   CALL set_vertices_pointer(vertices_target)
+ 
+   write (s1,fmt) vertices_pointer%vlon
+   write (s2,fmt) vertices_pointer%vlon(1:)
+   if (s1 /= s0 .or. s2 /= s0) then
+      print *, s0, s1, s2
+      stop 3
+   end if
+ 
+ CONTAINS
+ 
+   SUBROUTINE set_vertices_pointer(vertices)
+     TYPE(t_vertices), POINTER, INTENT(IN) :: vertices
+ 
+     vertices_pointer => vertices
+ 
+     write (s1,fmt) vertices        %vlon
+     write (s2,fmt) vertices        %vlon(1:)
+     if (s1 /= s0 .or. s2 /= s0) then
+        print *, s0, s1, s2
+        stop 1
+     end if
+ 
+     write (s1,fmt) vertices_pointer%vlon
+     write (s2,fmt) vertices_pointer%vlon(1:)
+     if (s1 /= s0 .or. s2 /= s0) then
+        print *, s0, s1, s2
+        stop 2
+     end if
+   END SUBROUTINE set_vertices_pointer
+ END PROGRAM foo
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_11.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_11.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_11.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_11.f03	Sun Oct  5 22:33:51 2025
*************** program test
*** 47,52 ****
--- 47,53 ----
       write(*,*) 'o_fdef FAIL'
       STOP 2
    end if
+   deallocate (o_fdef)
  end program test
  
  
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_15.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_15.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_15.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_15.f03	Sun Oct  5 22:33:51 2025
*************** contains
*** 98,106 ****
      if (int (pop_8 (root)) .ne. 3) STOP 1
      if (int (pop_8 (root)) .ne. 2) STOP 2
      if (int (pop_8 (root)) .ne. 1) STOP 3
! !    if (int (pop_8 (root)) .ne. 0) STOP 4
    end subroutine
  end program ch2701
  ! { dg-final { scan-tree-dump-times "Pdtlink_8._deallocate " 5 "original" } }
! ! { dg-final { scan-tree-dump-times ".n.data = 0B" 8 "original" } }
! ! { dg-final { scan-tree-dump-times "__builtin_free" 14 "original" } }
--- 98,106 ----
      if (int (pop_8 (root)) .ne. 3) STOP 1
      if (int (pop_8 (root)) .ne. 2) STOP 2
      if (int (pop_8 (root)) .ne. 1) STOP 3
!     if (int (pop_8 (root)) .ne. 0) STOP 4
    end subroutine
  end program ch2701
  ! { dg-final { scan-tree-dump-times "Pdtlink_8._deallocate " 5 "original" } }
! ! { dg-final { scan-tree-dump-times ".n.data = 0B" 9 "original" } }
! ! { dg-final { scan-tree-dump-times "__builtin_free" 15 "original" } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_20.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_20.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_20.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_20.f03	Sun Oct  5 22:33:51 2025
*************** program p
*** 17,20 ****
--- 17,21 ----
     if (x%b .ne. 3) STOP 1
     if (x%b .ne. size (x%r, 1)) STOP 2
     if (x%r%a .ne. 1) STOP 3
+ !   deallocate (x)  ! Segmentation fault: triggered at trans-array.cc:11009.
  end
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_23.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_23.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_23.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_23.f03	Sun Oct  5 22:33:51 2025
*************** program p
*** 30,33 ****
--- 30,34 ----
     buffer = "lmn"
     read (buffer, *) x    ! PDT IO was incorrect (PRs 84143/84432).
     if (x%c .ne. 'lmn') STOP 5
+ !   if (allocated (x)) deallocate (x) ! Used to seg fault - invalid memory reference.
  end
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_3.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_3.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_3.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_3.f03	Sun Oct  5 22:33:51 2025
*************** end module
*** 32,38 ****
      type (mytype (b=s*2)) :: mat2
    end type x
  
-   real, allocatable :: matrix (:,:)
    type(thytype(ftype, 4, 4)) :: w
    type(x(ftype,ftype,256)) :: q
    class(mytype(ftype, :)), allocatable :: cz
--- 32,37 ----
*************** end module
*** 54,63 ****
    if (size (q%mat2%d) .ne. 4*mat_dim**2) STOP 10
  
  ! Now check some basic OOP with PDTs
-   matrix = w%d
  
! ! TODO - for some reason, using w%d directly in the source causes a seg fault.
!   allocate (cz, source = mytype(ftype, d_dim)( 0, matrix))
    select type (cz)
      type is (mytype(ftype, *))
        if (int (sum (cz%d)) .ne. 136) STOP 11
--- 53,61 ----
    if (size (q%mat2%d) .ne. 4*mat_dim**2) STOP 10
  
  ! Now check some basic OOP with PDTs
  
! ! Using w%d directly in the source used to cause a seg fault.
!   allocate (cz, source = mytype(ftype, d_dim)( 0, w%d))  ! Leaks 64 bytes in 1 block.
    select type (cz)
      type is (mytype(ftype, *))
        if (int (sum (cz%d)) .ne. 136) STOP 11
*************** end module
*** 76,80 ****
    end select
  
    deallocate (cz)
-   deallocate (matrix)
  end
--- 74,77 ----
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_39.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_39.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_39.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_39.f03	Sun Oct  5 22:33:51 2025
*************** contains
*** 49,55 ****
    subroutine geta_r8(a_lhs, t_rhs)
      real(r8), allocatable, intent(out) :: a_lhs(:,:)
      class(mat_t(k=r8,c=*,r=*)), intent(in) :: t_rhs
!     a_lhs = t_rhs%m_a
      return 
    end subroutine geta_r8
   
--- 49,55 ----
    subroutine geta_r8(a_lhs, t_rhs)
      real(r8), allocatable, intent(out) :: a_lhs(:,:)
      class(mat_t(k=r8,c=*,r=*)), intent(in) :: t_rhs
!     a_lhs = t_rhs%m_a                   ! Leaks 152 bytes in 2 blocks
      return 
    end subroutine geta_r8
   
*************** program p
*** 94,100 ****
    if (mat_r4%c /= N) stop 2
    if (mat_r4%r /= M) stop 3
    mat_r4 = reshape( [ (real(i, kind=mat_r4%k), i=1,N*M) ], [ N, M ] )
!   a_r4 = mat_r4
    if (int (sum (a_r4)) /= 21) stop 4
    N = 4
    M = 4
--- 94,100 ----
    if (mat_r4%c /= N) stop 2
    if (mat_r4%r /= M) stop 3
    mat_r4 = reshape( [ (real(i, kind=mat_r4%k), i=1,N*M) ], [ N, M ] )
!   a_r4 = mat_r4                         ! Leaks 24 bytes in 1 block.
    if (int (sum (a_r4)) /= 21) stop 4
    N = 4
    M = 4
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_40.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_40.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_40.f03	Sun Sep 28 22:34:09 2025
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_40.f03	Sun Oct  5 22:33:51 2025
***************
*** 22,25 ****
--- 22,26 ----
  
     if (bar%x%ell /= parm) stop 1    ! Then these component references failed in
     if (bar%x%i /= 2 * parm) stop 2  ! translation.
+    deallocate (foo, bar%x)
  end
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_49.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_49.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_49.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_49.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ !
+ ! Check PR105380 has gone away. Used to ICE with, "internal compiler error:
+ ! tree check: expected array_type, have record_type in ....."
+ !
+ ! Contributed by Martin Liska  <marxin@gcc.gnu.org>
+ !
+ program p
+    type t(n)
+       integer, len :: n
+    end type
+    type t2(m)
+       integer, len :: m
+       type(t(1)) :: a(m)
+    end type
+    type(t2(3)) :: x
+ 
+    print *, x%m, size (x%a), x%a%n ! Outputs 3 3 1 as expected.
+ end
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_50.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_50.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_50.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_50.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,54 ----
+ ! { dg-do compile }
+ ! ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR102241, which caused an ICE in gfc_get_derived_type.
+ ! The test in comment 4 used to cause a spurious error.
+ !
+ ! Contributed by Roland Wirth  <roland_wirth@web.de>
+ !
+     MODULE mo
+       TYPE t1(n)
+         INTEGER, LEN :: n
+         INTEGER :: a(n)
+       END TYPE
+ 
+       TYPE t2
+         TYPE(t1(:)), allocatable :: p_t1
+       END TYPE
+     END MODULE
+ 
+ !---Check test in comment 4 now works---
+     MODULE mo2
+       TYPE u1(n)
+         INTEGER, LEN :: n
+         INTEGER :: a(n)
+       END TYPE
+ 
+       TYPE u2
+         TYPE(u1(2)), POINTER :: p_u1
+       END TYPE
+ 
+     CONTAINS
+ 
+       SUBROUTINE sr
+ 
+         type(u1(2)), target :: tgt
+         type(u2) :: pt
+ 
+         tgt = u1(2)([42,84])
+         pt%p_u1 => tgt
+         if (any (pt%p_u1%a /= [42,84])) stop 1
+       END SUBROUTINE
+     END MODULE
+ !------
+ 
+     use mo
+     use mo2
+     type(t2) :: d
+     d%p_t1 = t1(8)([42,43,44,45,42,43,44,45])
+     if (any (d%p_t1%a /= [42,43,44,45,42,43,44,45])) stop 2
+     call sr
+     deallocate (d%p_t1)
+ end
+ ! { dg-final { scan-tree-dump-times "__builtin_malloc" 8 "original" } }
+ ! { dg-final { scan-tree-dump-times "__builtin_free" 9 "original" } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_51.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_51.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_51.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_51.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,57 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR122089 in which the generic interface checking failed.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module tensor_m
+   implicit none
+ 
+   type tensor_t(k)
+     integer, kind :: k = kind(1.)
+     real(k) values_
+   contains
+     generic :: values => double_precision_values
+     procedure double_precision_values
+   end type
+ 
+ contains
+   function double_precision_values(self)
+     class(tensor_t(kind(1D0))) self
+     double precision double_precision_values
+     double_precision_values = self%values_
+   end function
+ end module
+ 
+ module input_output_pair_m
+   use tensor_m, only : tensor_t
+   implicit none
+ 
+   type input_output_pair_t(k)
+     integer, kind :: k = kind(1.)
+     type(tensor_t(k)) inputs_
+   end type
+ 
+   interface
+     module subroutine double_precision_write_to_stdout(input_output_pairs)
+       implicit none
+       type(input_output_pair_t(kind(1D0))) input_output_pairs
+     end subroutine
+   end interface
+ end module
+ 
+ submodule(input_output_pair_m) input_output_pair_s
+   implicit none
+ contains
+   module procedure double_precision_write_to_stdout
+     print *, input_output_pairs%inputs_%values()
+   end procedure
+ end submodule
+ 
+   use input_output_pair_m
+   type(input_output_pair_t(kind(1d0))) :: tgt
+   tgt%inputs_%values_ = 42d0
+   call double_precision_write_to_stdout(tgt)
+ end
+ ! { dg-final { scan-tree-dump-times "double_precision_write_to_stdout \\(&tgt\\);" 1 "original" } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_52.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_52.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_52.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_52.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for PR122089 in which an error occured in compiling the module
+ ! because a spurious REAL(KIND=0) was being produced for 'values_'.
+ !
+ ! Other failures are indicated by the comments. For reasons that are not to me,
+ ! they didn't fail when combined with this test.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module tensor_m
+   implicit none
+ 
+   type tensor_t(k)
+     integer, kind :: k = kind(1.)
+     real(k), allocatable :: values_               ! ICE if not allocatable
+   end type
+ 
+   type input_output_pair_t(k)
+     integer, kind :: k
+     type(tensor_t(k)) inputs_, expected_outputs_  ! ICE if 2nd component dropped
+   end type
+ 
+   type mini_batch_t(k)
+     integer, kind :: k
+     type(input_output_pair_t(k)) input_output_pairs_
+   end type
+ 
+ end module tensor_m
+ 
+   use tensor_m
+   type (mini_batch_t(k = kind(1d0))) :: x
+   allocate (x%input_output_pairs_%inputs_%values_, source = 42d0)
+   print *, kind (x%input_output_pairs_%inputs_%values_), x%input_output_pairs_%inputs_%values_
+   deallocate (x%input_output_pairs_%inputs_%values_)
+ end
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_53.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_53.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_53.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_53.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for PR122089 in which an error occured in compiling the module
+ ! because a spurious REAL(KIND=0) was being produced for 'values_'.
+ !
+ ! This is a variant of pdt_52.f03. See the comments in that test.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module tensor_m
+   implicit none
+ 
+   type tensor_t(k)
+     integer, kind :: k = kind(1.)
+     real(k) :: values_                            ! Used to ICE
+   end type
+ 
+   type input_output_pair_t(k)
+     integer, kind :: k
+     type(tensor_t(k)) inputs_, expected_outputs_
+   end type
+ 
+   type mini_batch_t(k)
+     integer, kind :: k
+     type(input_output_pair_t(k)) input_output_pairs_
+   end type
+ 
+ end module tensor_m
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_54.f03 gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_54.f03
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/pdt_54.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/pdt_54.f03	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for PR122089 in which an error occured in compiling the module
+ ! because a spurious REAL(KIND=0) was being produced for 'values_'.
+ !
+ ! This is a variant of pdt_52.f03. See the comments in that test.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module tensor_m
+   implicit none
+ 
+   type tensor_t(k)
+     integer, kind :: k = kind(1.)
+     real(k), allocatable :: values_
+   end type
+ 
+   type input_output_pair_t(k)
+     integer, kind :: k
+     type(tensor_t(k)) inputs_     ! Used to ICE if 2nd component dropped
+   end type
+ 
+   type mini_batch_t(k)
+     integer, kind :: k
+     type(input_output_pair_t(k)) input_output_pairs_
+   end type
+ 
+ end module tensor_m
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90 gcc-16-20251005/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90
*** gcc-16-20250928/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90	Sun Oct  5 22:33:51 2025
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-options "-O2 -fdump-tree-original -fdump-tree-optimized -fsanitize=undefined" }
+ !
+ ! PR fortran/122080 - UBSAN: uninitialized stride for missing actual argument
+ !
+ ! Contributed by Henri Menke
+ 
+ subroutine outer (optarr)
+   real, optional, intent(in) :: optarr(:,:)
+   interface
+      subroutine inner (optarr)
+        real, optional, intent(in) :: optarr(:,:)
+      end subroutine inner
+   end interface
+   call inner (optarr)
+ end subroutine outer
+ 
+ ! There will be 2 remaining UBSAN checks of stride wrapped by a check
+ ! for argument presence:
+ !
+ ! { dg-final { scan-tree-dump-times "if \\(optarr.0 != 0B\\)" 1 "original" } }
+ ! { dg-final { scan-tree-dump-times "UBSAN_CHECK_SUB (.)* stride" 2 "optimized" } }
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gnat.dg/allocator3.adb gcc-16-20251005/gcc/testsuite/gnat.dg/allocator3.adb
*** gcc-16-20250928/gcc/testsuite/gnat.dg/allocator3.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gnat.dg/allocator3.adb	Sun Oct  5 22:33:52 2025
***************
*** 0 ****
--- 1,23 ----
+ --  { dg-do compile }
+ 
+ with Ada.Containers.Synchronized_Queue_Interfaces;
+ with Ada.Containers.Unbounded_Synchronized_Queues;
+ 
+ procedure Allocator3 is
+ 
+   package Queue_Interfaces is
+     new Ada.Containers.Synchronized_Queue_Interfaces (Integer);
+ 
+   package Synchronized_Queues is
+     new Ada.Containers.Unbounded_Synchronized_Queues (Queue_Interfaces);
+ 
+   subtype Queue is Synchronized_Queues.Queue;
+ 
+   type Access_Type is access all Queue;
+ 
+   Q1 : Access_Type := new Queue;
+   Q2 : Access_Type := new Queue;
+ 
+ begin
+   null;
+ end;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gnat.dg/reduce1.adb gcc-16-20251005/gcc/testsuite/gnat.dg/reduce1.adb
*** gcc-16-20250928/gcc/testsuite/gnat.dg/reduce1.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gnat.dg/reduce1.adb	Sun Oct  5 22:33:53 2025
***************
*** 0 ****
--- 1,14 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ procedure Reduce1 is
+ 
+   type Arr is array (Positive range <>) of Positive;
+ 
+   A: Arr := (2, 87);
+ 
+   B: Positive := A'Reduce (1, Positive'Max); -- { dg-error "no suitable" }
+ 
+ begin
+   null;
+ end;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gnat.dg/reduce2.adb gcc-16-20251005/gcc/testsuite/gnat.dg/reduce2.adb
*** gcc-16-20250928/gcc/testsuite/gnat.dg/reduce2.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gnat.dg/reduce2.adb	Sun Oct  5 22:33:53 2025
***************
*** 0 ****
--- 1,18 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ procedure Reduce2 is
+ 
+   subtype Value is Natural range 0 .. 255;
+ 
+   function Do_Something (Accumulator : Value; Symbol : Character) return Value
+     is (((Accumulator + Character'Pos (Symbol)) * 17) mod 256);
+ 
+   function Do_It_By_Reduction (S : String) return Value is
+     (S'Reduce (Do_Something, 0));
+ 
+   Test_It : constant Value := Do_It_By_Reduction ("Hello, world!");
+ 
+ begin
+   null;
+ end;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gnat.dg/use_type1.adb gcc-16-20251005/gcc/testsuite/gnat.dg/use_type1.adb
*** gcc-16-20250928/gcc/testsuite/gnat.dg/use_type1.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gnat.dg/use_type1.adb	Sun Oct  5 22:33:53 2025
***************
*** 0 ****
--- 1,16 ----
+ -- { dg-do compile }
+ 
+ procedure Use_Type1 is
+ 
+   package Nested is
+     type T is (X, Y, Z);
+     procedure Proc (Obj : T) is null;
+   end Nested;
+ 
+   use all type Nested.T;
+ 
+   Obj : Nested.T := X;
+ 
+ begin
+   Proc (Obj);
+ end;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/gnat.dg/use_type2.adb gcc-16-20251005/gcc/testsuite/gnat.dg/use_type2.adb
*** gcc-16-20250928/gcc/testsuite/gnat.dg/use_type2.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20251005/gcc/testsuite/gnat.dg/use_type2.adb	Sun Oct  5 22:33:53 2025
***************
*** 0 ****
--- 1,15 ----
+ -- { dg-do compile }
+ 
+ with Ada.Containers.Vectors;
+ 
+ procedure Use_Type2 is
+ 
+   package Vectors is new Ada.Containers.Vectors (Positive, Character);
+ 
+   use all type Vectors.Vector;
+ 
+   X : Vectors.Vector := To_Vector (0);
+ 
+ begin
+   Append (X, 'A');
+ end;
diff -Nrcpad gcc-16-20250928/gcc/testsuite/lib/sarif.py gcc-16-20251005/gcc/testsuite/lib/sarif.py
*** gcc-16-20250928/gcc/testsuite/lib/sarif.py	Sun Sep 28 22:34:24 2025
--- gcc-16-20251005/gcc/testsuite/lib/sarif.py	Sun Oct  5 22:33:54 2025
***************
*** 1,6 ****
  import json
  import os
- import xml.etree.ElementTree as ET
  
  def sarif_from_env():
      # return parsed JSON content a SARIF_PATH file
--- 1,5 ----
diff -Nrcpad gcc-16-20250928/gcc/tree-cfg.cc gcc-16-20251005/gcc/tree-cfg.cc
*** gcc-16-20250928/gcc/tree-cfg.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-cfg.cc	Sun Oct  5 22:33:56 2025
*************** assign_discriminators (void)
*** 1132,1139 ****
      {
        location_t prev_loc = UNKNOWN_LOCATION, prev_replacement = UNKNOWN_LOCATION;
        /* Traverse the basic block, if two function calls within a basic block
! 	are mapped to the same line, assign a new discriminator because a call
! 	stmt could be a split point of a basic block.  */
        for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
  	   !gsi_end_p (gsi); gsi_next (&gsi))
  	{
--- 1132,1139 ----
      {
        location_t prev_loc = UNKNOWN_LOCATION, prev_replacement = UNKNOWN_LOCATION;
        /* Traverse the basic block, if two function calls within a basic block
! 	 are mapped to the same line, assign a new discriminator because a call
! 	 stmt could be a split point of a basic block.  */
        for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
  	   !gsi_end_p (gsi); gsi_next (&gsi))
  	{
*************** assign_discriminators (void)
*** 1149,1156 ****
  	      prev_replacement = assign_discriminator (loc, bb_id, map);
  	      gimple_set_location (stmt, prev_replacement);
  	    }
! 	  /* Break basic blocks after each call.  This is requires so each
! 	     call site has unque discriminator.
  	     More correctly, we can break after each statement that can possibly
  	     terinate execution of the basic block, but for auto-profile this
  	     precision is probably not useful.  */
--- 1149,1156 ----
  	      prev_replacement = assign_discriminator (loc, bb_id, map);
  	      gimple_set_location (stmt, prev_replacement);
  	    }
! 	  /* Break basic blocks after each call.  This is required so each
! 	     call site has unique discriminator.
  	     More correctly, we can break after each statement that can possibly
  	     terinate execution of the basic block, but for auto-profile this
  	     precision is probably not useful.  */
*************** assign_discriminators (void)
*** 1160,1175 ****
  	      bb_id++;
  	    }
  	}
!       /* IF basic block has multiple sucessors, consdier every edge as a separate
! 	 block.  */
        if (!single_succ_p (bb))
  	bb_id++;
        for (edge e : bb->succs)
! 	if (e->goto_locus != UNKNOWN_LOCATION)
! 	  {
  	    e->goto_locus = assign_discriminator (e->goto_locus, bb_id, map);
! 	    bb_id++;
! 	  }
        bb_id++;
      }
  
--- 1160,1186 ----
  	      bb_id++;
  	    }
  	}
!       /* If basic block has multiple sucessors, consdier every edge as a
! 	 separate block.  */
        if (!single_succ_p (bb))
  	bb_id++;
        for (edge e : bb->succs)
! 	{
! 	  if (e->goto_locus != UNKNOWN_LOCATION)
  	    e->goto_locus = assign_discriminator (e->goto_locus, bb_id, map);
! 	  for (gphi_iterator gpi = gsi_start_phis (bb);
! 	       !gsi_end_p (gpi); gsi_next (&gpi))
! 	    {
! 	      gphi *phi = gpi.phi ();
! 	      location_t phi_loc
! 		= gimple_phi_arg_location_from_edge (phi, e);
! 	      if (phi_loc == UNKNOWN_LOCATION)
! 		continue;
! 	      gimple_phi_arg_set_location
! 		(phi, e->dest_idx, assign_discriminator (phi_loc, bb_id, map));
! 	    }
! 	   bb_id++;
! 	}
        bb_id++;
      }
  
diff -Nrcpad gcc-16-20250928/gcc/tree-if-conv.cc gcc-16-20251005/gcc/tree-if-conv.cc
*** gcc-16-20250928/gcc/tree-if-conv.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-if-conv.cc	Sun Oct  5 22:33:56 2025
*************** version_loop_for_if_conversion (class lo
*** 3444,3450 ****
      }
  
    initialize_original_copy_tables ();
!   /* At this point we invalidate porfile confistency until IFN_LOOP_VECTORIZED
       is re-merged in the vectorizer.  */
    new_loop = loop_version (loop, cond, &cond_bb,
  			   profile_probability::always (),
--- 3444,3450 ----
      }
  
    initialize_original_copy_tables ();
!   /* At this point we invalidate profile consistency until IFN_LOOP_VECTORIZED
       is re-merged in the vectorizer.  */
    new_loop = loop_version (loop, cond, &cond_bb,
  			   profile_probability::always (),
diff -Nrcpad gcc-16-20250928/gcc/tree-pass.h gcc-16-20251005/gcc/tree-pass.h
*** gcc-16-20250928/gcc/tree-pass.h	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-pass.h	Sun Oct  5 22:33:56 2025
*************** extern gimple_opt_pass *make_pass_warn_a
*** 447,453 ****
  extern gimple_opt_pass *make_pass_warn_printf (gcc::context *ctxt);
  extern gimple_opt_pass *make_pass_warn_recursion (gcc::context *ctxt);
  extern gimple_opt_pass *make_pass_strlen (gcc::context *ctxt);
- extern gimple_opt_pass *make_pass_fold_builtins (gcc::context *ctxt);
  extern gimple_opt_pass *make_pass_post_ipa_warn (gcc::context *ctxt);
  extern gimple_opt_pass *make_pass_stdarg (gcc::context *ctxt);
  extern gimple_opt_pass *make_pass_early_warn_uninitialized (gcc::context *ctxt);
--- 447,452 ----
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-alias.cc gcc-16-20251005/gcc/tree-ssa-alias.cc
*** gcc-16-20250928/gcc/tree-ssa-alias.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-alias.cc	Sun Oct  5 22:33:56 2025
*************** attr_fnspec::verify ()
*** 4167,4173 ****
      }
  }
  
! /* Return ture if TYPE1 and TYPE2 will always give the same answer
     when compared with other types using same_type_for_tbaa.  */
  
  static bool
--- 4167,4173 ----
      }
  }
  
! /* Return true if TYPE1 and TYPE2 will always give the same answer
     when compared with other types using same_type_for_tbaa.  */
  
  static bool
*************** types_equal_for_same_type_for_tbaa_p (tr
*** 4191,4197 ****
      return TYPE_CANONICAL (type1) == TYPE_CANONICAL (type2);
  }
  
! /* Return ture if TYPE1 and TYPE2 will always give the same answer
     when compared with other types using same_type_for_tbaa.  */
  
  bool
--- 4191,4197 ----
      return TYPE_CANONICAL (type1) == TYPE_CANONICAL (type2);
  }
  
! /* Return true if TYPE1 and TYPE2 will always give the same answer
     when compared with other types using same_type_for_tbaa.  */
  
  bool
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-ccp.cc gcc-16-20251005/gcc/tree-ssa-ccp.cc
*** gcc-16-20250928/gcc/tree-ssa-ccp.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-ccp.cc	Sun Oct  5 22:33:56 2025
*************** make_pass_ccp (gcc::context *ctxt)
*** 3085,4532 ****
    return new pass_ccp (ctxt);
  }
  
- 
- 
- /* Try to optimize out __builtin_stack_restore.  Optimize it out
-    if there is another __builtin_stack_restore in the same basic
-    block and no calls or ASM_EXPRs are in between, or if this block's
-    only outgoing edge is to EXIT_BLOCK and there are no calls or
-    ASM_EXPRs after this __builtin_stack_restore.  */
- 
- static tree
- optimize_stack_restore (gimple_stmt_iterator i)
- {
-   tree callee;
-   gimple *stmt;
- 
-   basic_block bb = gsi_bb (i);
-   gimple *call = gsi_stmt (i);
- 
-   if (gimple_code (call) != GIMPLE_CALL
-       || gimple_call_num_args (call) != 1
-       || TREE_CODE (gimple_call_arg (call, 0)) != SSA_NAME
-       || !POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0))))
-     return NULL_TREE;
- 
-   for (gsi_next (&i); !gsi_end_p (i); gsi_next (&i))
-     {
-       stmt = gsi_stmt (i);
-       if (gimple_code (stmt) == GIMPLE_ASM)
- 	return NULL_TREE;
-       if (gimple_code (stmt) != GIMPLE_CALL)
- 	continue;
- 
-       callee = gimple_call_fndecl (stmt);
-       if (!callee
- 	  || !fndecl_built_in_p (callee, BUILT_IN_NORMAL)
- 	  /* All regular builtins are ok, just obviously not alloca.  */
- 	  || ALLOCA_FUNCTION_CODE_P (DECL_FUNCTION_CODE (callee))
- 	  /* Do not remove stack updates before strub leave.  */
- 	  || fndecl_built_in_p (callee, BUILT_IN___STRUB_LEAVE))
- 	return NULL_TREE;
- 
-       if (fndecl_built_in_p (callee, BUILT_IN_STACK_RESTORE))
- 	goto second_stack_restore;
-     }
- 
-   if (!gsi_end_p (i))
-     return NULL_TREE;
- 
-   /* Allow one successor of the exit block, or zero successors.  */
-   switch (EDGE_COUNT (bb->succs))
-     {
-     case 0:
-       break;
-     case 1:
-       if (single_succ_edge (bb)->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
- 	return NULL_TREE;
-       break;
-     default:
-       return NULL_TREE;
-     }
-  second_stack_restore:
- 
-   /* If there's exactly one use, then zap the call to __builtin_stack_save.
-      If there are multiple uses, then the last one should remove the call.
-      In any case, whether the call to __builtin_stack_save can be removed
-      or not is irrelevant to removing the call to __builtin_stack_restore.  */
-   if (has_single_use (gimple_call_arg (call, 0)))
-     {
-       gimple *stack_save = SSA_NAME_DEF_STMT (gimple_call_arg (call, 0));
-       if (is_gimple_call (stack_save))
- 	{
- 	  callee = gimple_call_fndecl (stack_save);
- 	  if (callee && fndecl_built_in_p (callee, BUILT_IN_STACK_SAVE))
- 	    {
- 	      gimple_stmt_iterator stack_save_gsi;
- 	      tree rhs;
- 
- 	      stack_save_gsi = gsi_for_stmt (stack_save);
- 	      rhs = build_int_cst (TREE_TYPE (gimple_call_arg (call, 0)), 0);
- 	      replace_call_with_value (&stack_save_gsi, rhs);
- 	    }
- 	}
-     }
- 
-   /* No effect, so the statement will be deleted.  */
-   return integer_zero_node;
- }
- 
- /* If va_list type is a simple pointer and nothing special is needed,
-    optimize __builtin_va_start (&ap, 0) into ap = __builtin_next_arg (0),
-    __builtin_va_end (&ap) out as NOP and __builtin_va_copy into a simple
-    pointer assignment.  */
- 
- static tree
- optimize_stdarg_builtin (gimple *call)
- {
-   tree callee, lhs, rhs, cfun_va_list;
-   bool va_list_simple_ptr;
-   location_t loc = gimple_location (call);
- 
-   callee = gimple_call_fndecl (call);
- 
-   cfun_va_list = targetm.fn_abi_va_list (callee);
-   va_list_simple_ptr = POINTER_TYPE_P (cfun_va_list)
- 		       && (TREE_TYPE (cfun_va_list) == void_type_node
- 			   || TREE_TYPE (cfun_va_list) == char_type_node);
- 
-   switch (DECL_FUNCTION_CODE (callee))
-     {
-     case BUILT_IN_VA_START:
-       if (!va_list_simple_ptr
- 	  || targetm.expand_builtin_va_start != NULL
- 	  || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG))
- 	return NULL_TREE;
- 
-       if (gimple_call_num_args (call) != 2)
- 	return NULL_TREE;
- 
-       lhs = gimple_call_arg (call, 0);
-       if (!POINTER_TYPE_P (TREE_TYPE (lhs))
- 	  || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs)))
- 	     != TYPE_MAIN_VARIANT (cfun_va_list))
- 	return NULL_TREE;
- 
-       lhs = build_fold_indirect_ref_loc (loc, lhs);
-       rhs = build_call_expr_loc (loc, builtin_decl_explicit (BUILT_IN_NEXT_ARG),
-                              1, integer_zero_node);
-       rhs = fold_convert_loc (loc, TREE_TYPE (lhs), rhs);
-       return build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, rhs);
- 
-     case BUILT_IN_VA_COPY:
-       if (!va_list_simple_ptr)
- 	return NULL_TREE;
- 
-       if (gimple_call_num_args (call) != 2)
- 	return NULL_TREE;
- 
-       lhs = gimple_call_arg (call, 0);
-       if (!POINTER_TYPE_P (TREE_TYPE (lhs))
- 	  || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs)))
- 	     != TYPE_MAIN_VARIANT (cfun_va_list))
- 	return NULL_TREE;
- 
-       lhs = build_fold_indirect_ref_loc (loc, lhs);
-       rhs = gimple_call_arg (call, 1);
-       if (TYPE_MAIN_VARIANT (TREE_TYPE (rhs))
- 	  != TYPE_MAIN_VARIANT (cfun_va_list))
- 	return NULL_TREE;
- 
-       rhs = fold_convert_loc (loc, TREE_TYPE (lhs), rhs);
-       return build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, rhs);
- 
-     case BUILT_IN_VA_END:
-       /* No effect, so the statement will be deleted.  */
-       return integer_zero_node;
- 
-     default:
-       gcc_unreachable ();
-     }
- }
- 
- /* Attemp to make the block of __builtin_unreachable I unreachable by changing
-    the incoming jumps.  Return true if at least one jump was changed.  */
- 
- static bool
- optimize_unreachable (gimple_stmt_iterator i)
- {
-   basic_block bb = gsi_bb (i);
-   gimple_stmt_iterator gsi;
-   gimple *stmt;
-   edge_iterator ei;
-   edge e;
-   bool ret;
- 
-   if (flag_sanitize & SANITIZE_UNREACHABLE)
-     return false;
-   gsi = gsi_start_nondebug_after_labels_bb (bb);
-   /* Only handle the case that __builtin_unreachable is the first
-      statement in the block.  We rely on DCE to remove stmts
-      without side-effects before __builtin_unreachable.  */
-   if (*gsi != *i)
-     return false;
- 
-   ret = false;
-   FOR_EACH_EDGE (e, ei, bb->preds)
-     {
-       gsi = gsi_last_bb (e->src);
-       if (gsi_end_p (gsi))
- 	continue;
- 
-       stmt = gsi_stmt (gsi);
-       if (gcond *cond_stmt = dyn_cast <gcond *> (stmt))
- 	{
- 	  if (e->flags & EDGE_TRUE_VALUE)
- 	    gimple_cond_make_false (cond_stmt);
- 	  else if (e->flags & EDGE_FALSE_VALUE)
- 	    gimple_cond_make_true (cond_stmt);
- 	  else
- 	    gcc_unreachable ();
- 	  update_stmt (cond_stmt);
- 	}
-       else
- 	{
- 	  /* Todo: handle other cases.  Note that unreachable switch case
- 	     statements have already been removed.  */
- 	  continue;
- 	}
- 
-       ret = true;
-     }
- 
-   return ret;
- }
- 
- /* Convert
-    _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
-    _7 = ~_1;
-    _5 = (_Bool) _7;
-    to
-    _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
-    _8 = _1 & 1;
-    _5 = _8 == 0;
-    and convert
-    _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
-    _7 = ~_1;
-    _4 = (_Bool) _7;
-    to
-    _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
-    _8 = _1 & 1;
-    _4 = (_Bool) _8;
- 
-    USE_STMT is the gimplt statement which uses the return value of
-    __atomic_fetch_or_*.  LHS is the return value of __atomic_fetch_or_*.
-    MASK is the mask passed to __atomic_fetch_or_*.
-  */
- 
- static gimple *
- convert_atomic_bit_not (enum internal_fn fn, gimple *use_stmt,
- 			tree lhs, tree mask)
- {
-   tree and_mask;
-   if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
-     {
-       /* MASK must be ~1.  */
-       if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs),
- 					   ~HOST_WIDE_INT_1), mask, 0))
- 	return nullptr;
-       and_mask = build_int_cst (TREE_TYPE (lhs), 1);
-     }
-   else
-     {
-       /* MASK must be 1.  */
-       if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), 1), mask, 0))
- 	return nullptr;
-       and_mask = mask;
-     }
- 
-   tree use_lhs = gimple_assign_lhs (use_stmt);
- 
-   use_operand_p use_p;
-   gimple *use_not_stmt;
- 
-   if (!single_imm_use (use_lhs, &use_p, &use_not_stmt)
-       || !is_gimple_assign (use_not_stmt))
-     return nullptr;
- 
-   if (!CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (use_not_stmt)))
-     return nullptr;
- 
-   tree use_not_lhs = gimple_assign_lhs (use_not_stmt);
-   if (TREE_CODE (TREE_TYPE (use_not_lhs)) != BOOLEAN_TYPE)
-     return nullptr;
- 
-   gimple_stmt_iterator gsi;
-   tree var = make_ssa_name (TREE_TYPE (lhs));
-   /* use_stmt need to be removed after use_nop_stmt,
-      so use_lhs can be released.  */
-   gimple *use_stmt_removal = use_stmt;
-   use_stmt = gimple_build_assign (var, BIT_AND_EXPR, lhs, and_mask);
-   gsi = gsi_for_stmt (use_not_stmt);
-   gsi_insert_before (&gsi, use_stmt, GSI_NEW_STMT);
-   lhs = gimple_assign_lhs (use_not_stmt);
-   gimple *g = gimple_build_assign (lhs, EQ_EXPR, var,
- 				   build_zero_cst (TREE_TYPE (mask)));
-   gsi_insert_after (&gsi, g, GSI_NEW_STMT);
-   gsi = gsi_for_stmt (use_not_stmt);
-   gsi_remove (&gsi, true);
-   gsi = gsi_for_stmt (use_stmt_removal);
-   gsi_remove (&gsi, true);
-   return use_stmt;
- }
- 
- /* match.pd function to match atomic_bit_test_and pattern which
-    has nop_convert:
-      _1 = __atomic_fetch_or_4 (&v, 1, 0);
-      _2 = (int) _1;
-      _5 = _2 & 1;
-  */
- extern bool gimple_nop_atomic_bit_test_and_p (tree, tree *,
- 					      tree (*) (tree));
- extern bool gimple_nop_convert (tree, tree*, tree (*) (tree));
- 
- /* Optimize
-      mask_2 = 1 << cnt_1;
-      _4 = __atomic_fetch_or_* (ptr_6, mask_2, _3);
-      _5 = _4 & mask_2;
-    to
-      _4 = .ATOMIC_BIT_TEST_AND_SET (ptr_6, cnt_1, 0, _3);
-      _5 = _4;
-    If _5 is only used in _5 != 0 or _5 == 0 comparisons, 1
-    is passed instead of 0, and the builtin just returns a zero
-    or 1 value instead of the actual bit.
-    Similarly for __sync_fetch_and_or_* (without the ", _3" part
-    in there), and/or if mask_2 is a power of 2 constant.
-    Similarly for xor instead of or, use ATOMIC_BIT_TEST_AND_COMPLEMENT
-    in that case.  And similarly for and instead of or, except that
-    the second argument to the builtin needs to be one's complement
-    of the mask instead of mask.  */
- 
- static bool
- optimize_atomic_bit_test_and (gimple_stmt_iterator *gsip,
- 			      enum internal_fn fn, bool has_model_arg,
- 			      bool after)
- {
-   gimple *call = gsi_stmt (*gsip);
-   tree lhs = gimple_call_lhs (call);
-   use_operand_p use_p;
-   gimple *use_stmt;
-   tree mask;
-   optab optab;
- 
-   if (!flag_inline_atomics
-       || optimize_debug
-       || !gimple_call_builtin_p (call, BUILT_IN_NORMAL)
-       || !lhs
-       || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs)
-       || !single_imm_use (lhs, &use_p, &use_stmt)
-       || !is_gimple_assign (use_stmt)
-       || !gimple_vdef (call))
-     return false;
- 
-   switch (fn)
-     {
-     case IFN_ATOMIC_BIT_TEST_AND_SET:
-       optab = atomic_bit_test_and_set_optab;
-       break;
-     case IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT:
-       optab = atomic_bit_test_and_complement_optab;
-       break;
-     case IFN_ATOMIC_BIT_TEST_AND_RESET:
-       optab = atomic_bit_test_and_reset_optab;
-       break;
-     default:
-       return false;
-     }
- 
-   tree bit = nullptr;
- 
-   mask = gimple_call_arg (call, 1);
-   tree_code rhs_code = gimple_assign_rhs_code (use_stmt);
-   if (rhs_code != BIT_AND_EXPR)
-     {
-       if (rhs_code != NOP_EXPR && rhs_code != BIT_NOT_EXPR)
- 	return false;
- 
-       tree use_lhs = gimple_assign_lhs (use_stmt);
-       if (TREE_CODE (use_lhs) == SSA_NAME
- 	  && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs))
- 	return false;
- 
-       tree use_rhs = gimple_assign_rhs1 (use_stmt);
-       if (lhs != use_rhs)
- 	return false;
- 
-       if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
- 	  == CODE_FOR_nothing)
- 	return false;
- 
-       gimple *g;
-       gimple_stmt_iterator gsi;
-       tree var;
-       int ibit = -1;
- 
-       if (rhs_code == BIT_NOT_EXPR)
- 	{
- 	  g = convert_atomic_bit_not (fn, use_stmt, lhs, mask);
- 	  if (!g)
- 	    return false;
- 	  use_stmt = g;
- 	  ibit = 0;
- 	}
-       else if (TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE)
- 	{
- 	  tree and_mask;
- 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
- 	    {
- 	      /* MASK must be ~1.  */
- 	      if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs),
- 						   ~HOST_WIDE_INT_1),
- 				    mask, 0))
- 		return false;
- 
- 	      /* Convert
- 		 _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
- 		 _4 = (_Bool) _1;
- 		 to
- 		 _1 = __atomic_fetch_and_* (ptr_6, ~1, _3);
- 		 _5 = _1 & 1;
- 		 _4 = (_Bool) _5;
- 	       */
- 	      and_mask = build_int_cst (TREE_TYPE (lhs), 1);
- 	    }
- 	  else
- 	    {
- 	      and_mask = build_int_cst (TREE_TYPE (lhs), 1);
- 	      if (!operand_equal_p (and_mask, mask, 0))
- 		return false;
- 
- 	      /* Convert
- 		 _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
- 		 _4 = (_Bool) _1;
- 		 to
- 		 _1 = __atomic_fetch_or_* (ptr_6, 1, _3);
- 		 _5 = _1 & 1;
- 		 _4 = (_Bool) _5;
- 	       */
- 	    }
- 	  var = make_ssa_name (TREE_TYPE (use_rhs));
- 	  replace_uses_by (use_rhs, var);
- 	  g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs,
- 				   and_mask);
- 	  gsi = gsi_for_stmt (use_stmt);
- 	  gsi_insert_before (&gsi, g, GSI_NEW_STMT);
- 	  use_stmt = g;
- 	  ibit = 0;
- 	}
-       else if (TYPE_PRECISION (TREE_TYPE (use_lhs))
- 	       <= TYPE_PRECISION (TREE_TYPE (use_rhs)))
- 	{
- 	  gimple *use_nop_stmt;
- 	  if (!single_imm_use (use_lhs, &use_p, &use_nop_stmt)
- 	      || (!is_gimple_assign (use_nop_stmt)
- 		  && gimple_code (use_nop_stmt) != GIMPLE_COND))
- 	    return false;
- 	  /* Handle both
- 	     _4 = _5 < 0;
- 	     and
- 	     if (_5 < 0)
- 	   */
- 	  tree use_nop_lhs = nullptr;
- 	  rhs_code = ERROR_MARK;
- 	  if (is_gimple_assign (use_nop_stmt))
- 	    {
- 	      use_nop_lhs = gimple_assign_lhs (use_nop_stmt);
- 	      rhs_code = gimple_assign_rhs_code (use_nop_stmt);
- 	    }
- 	  if (!use_nop_lhs || rhs_code != BIT_AND_EXPR)
- 	    {
- 	      /* Also handle
- 		 if (_5 < 0)
- 	       */
- 	      if (use_nop_lhs
- 		  && TREE_CODE (use_nop_lhs) == SSA_NAME
- 		  && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_nop_lhs))
- 		return false;
- 	      if (use_nop_lhs && rhs_code == BIT_NOT_EXPR)
- 		{
- 		  /* Handle
- 		     _7 = ~_2;
- 		   */
- 		  g = convert_atomic_bit_not (fn, use_nop_stmt, lhs,
- 					      mask);
- 		  if (!g)
- 		    return false;
- 		  /* Convert
- 		     _1 = __atomic_fetch_or_4 (ptr_6, 1, _3);
- 		     _2 = (int) _1;
- 		     _7 = ~_2;
- 		     _5 = (_Bool) _7;
- 		     to
- 		     _1 = __atomic_fetch_or_4 (ptr_6, ~1, _3);
- 		     _8 = _1 & 1;
- 		     _5 = _8 == 0;
- 		     and convert
- 		     _1 = __atomic_fetch_and_4 (ptr_6, ~1, _3);
- 		     _2 = (int) _1;
- 		     _7 = ~_2;
- 		     _5 = (_Bool) _7;
- 		     to
- 		     _1 = __atomic_fetch_and_4 (ptr_6, 1, _3);
- 		     _8 = _1 & 1;
- 		     _5 = _8 == 0;
- 		   */
- 		  gsi = gsi_for_stmt (use_stmt);
- 		  gsi_remove (&gsi, true);
- 		  use_stmt = g;
- 		  ibit = 0;
- 		}
- 	      else
- 		{
- 		  tree cmp_rhs1, cmp_rhs2;
- 		  if (use_nop_lhs)
- 		    {
- 		      /* Handle
- 			 _4 = _5 < 0;
- 		       */
- 		      if (TREE_CODE (TREE_TYPE (use_nop_lhs))
- 			  != BOOLEAN_TYPE)
- 			return false;
- 		      cmp_rhs1 = gimple_assign_rhs1 (use_nop_stmt);
- 		      cmp_rhs2 = gimple_assign_rhs2 (use_nop_stmt);
- 		    }
- 		  else
- 		    {
- 		      /* Handle
- 			 if (_5 < 0)
- 		       */
- 		      rhs_code = gimple_cond_code (use_nop_stmt);
- 		      cmp_rhs1 = gimple_cond_lhs (use_nop_stmt);
- 		      cmp_rhs2 = gimple_cond_rhs (use_nop_stmt);
- 		    }
- 		  if (rhs_code != GE_EXPR && rhs_code != LT_EXPR)
- 		    return false;
- 		  if (use_lhs != cmp_rhs1)
- 		    return false;
- 		  if (!integer_zerop (cmp_rhs2))
- 		    return false;
- 
- 		  tree and_mask;
- 
- 		  unsigned HOST_WIDE_INT bytes
- 		    = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (use_rhs)));
- 		  ibit = bytes * BITS_PER_UNIT - 1;
- 		  unsigned HOST_WIDE_INT highest
- 		    = HOST_WIDE_INT_1U << ibit;
- 
- 		  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
- 		    {
- 		      /* Get the signed maximum of the USE_RHS type.  */
- 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
- 						highest - 1);
- 		      if (!operand_equal_p (and_mask, mask, 0))
- 			return false;
- 
- 		      /* Convert
- 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
- 			 _5 = (signed int) _1;
- 			 _4 = _5 < 0 or _5 >= 0;
- 			 to
- 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
- 			 _6 = _1 & 0x80000000;
- 			 _4 = _6 != 0 or _6 == 0;
- 			 and convert
- 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
- 			 _5 = (signed int) _1;
- 			 if (_5 < 0 or _5 >= 0)
- 			 to
- 			 _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3);
- 			 _6 = _1 & 0x80000000;
- 			 if (_6 != 0 or _6 == 0)
- 		       */
- 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
- 						highest);
- 		    }
- 		  else
- 		    {
- 		      /* Get the signed minimum of the USE_RHS type.  */
- 		      and_mask = build_int_cst (TREE_TYPE (use_rhs),
- 						highest);
- 		      if (!operand_equal_p (and_mask, mask, 0))
- 			return false;
- 
- 		      /* Convert
- 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
- 			 _5 = (signed int) _1;
- 			 _4 = _5 < 0 or _5 >= 0;
- 			 to
- 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
- 			 _6 = _1 & 0x80000000;
- 			 _4 = _6 != 0 or _6 == 0;
- 			 and convert
- 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
- 			 _5 = (signed int) _1;
- 			 if (_5 < 0 or _5 >= 0)
- 			 to
- 			 _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3);
- 			 _6 = _1 & 0x80000000;
- 			 if (_6 != 0 or _6 == 0)
- 		       */
- 		    }
- 		  var = make_ssa_name (TREE_TYPE (use_rhs));
- 		  gimple* use_stmt_removal = use_stmt;
- 		  g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs,
- 					   and_mask);
- 		  gsi = gsi_for_stmt (use_nop_stmt);
- 		  gsi_insert_before (&gsi, g, GSI_NEW_STMT);
- 		  use_stmt = g;
- 		  rhs_code = rhs_code == GE_EXPR ? EQ_EXPR : NE_EXPR;
- 		  tree const_zero = build_zero_cst (TREE_TYPE (use_rhs));
- 		  if (use_nop_lhs)
- 		    g = gimple_build_assign (use_nop_lhs, rhs_code,
- 					     var, const_zero);
- 		  else
- 		    g = gimple_build_cond (rhs_code, var, const_zero,
- 					   nullptr, nullptr);
- 		  gsi_insert_after (&gsi, g, GSI_NEW_STMT);
- 		  gsi = gsi_for_stmt (use_nop_stmt);
- 		  gsi_remove (&gsi, true);
- 		  gsi = gsi_for_stmt (use_stmt_removal);
- 		  gsi_remove (&gsi, true);
- 		}
- 	    }
- 	  else
- 	    {
- 	      tree match_op[3];
- 	      gimple *g;
- 	      if (!gimple_nop_atomic_bit_test_and_p (use_nop_lhs,
- 						     &match_op[0], NULL)
- 		  || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (match_op[2])
- 		  || !single_imm_use (match_op[2], &use_p, &g)
- 		  || !is_gimple_assign (g))
- 		return false;
- 	      mask = match_op[0];
- 	      if (TREE_CODE (match_op[1]) == INTEGER_CST)
- 		{
- 		  ibit = tree_log2 (match_op[1]);
- 		  gcc_assert (ibit >= 0);
- 		}
- 	      else
- 		{
- 		  g = SSA_NAME_DEF_STMT (match_op[1]);
- 		  gcc_assert (is_gimple_assign (g));
- 		  bit = gimple_assign_rhs2 (g);
- 		}
- 	      /* Convert
- 		 _1 = __atomic_fetch_or_4 (ptr_6, mask, _3);
- 		 _2 = (int) _1;
- 		 _5 = _2 & mask;
- 		 to
- 		 _1 = __atomic_fetch_or_4 (ptr_6, mask, _3);
- 		 _6 = _1 & mask;
- 		 _5 = (int) _6;
- 		 and convert
- 		 _1 = ~mask_7;
- 		 _2 = (unsigned int) _1;
- 		 _3 = __atomic_fetch_and_4 (ptr_6, _2, 0);
- 		 _4 = (int) _3;
- 		 _5 = _4 & mask_7;
- 		 to
- 		 _1 = __atomic_fetch_and_* (ptr_6, ~mask_7, _3);
- 		 _12 = _3 & mask_7;
- 		 _5 = (int) _12;
- 
- 		 and Convert
- 		 _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3);
- 		 _2 = (short int) _1;
- 		 _5 = _2 & mask;
- 		 to
- 		 _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3);
- 		 _8 = _1 & mask;
- 		 _5 = (short int) _8;
- 	      */
- 	      gimple_seq stmts = NULL;
- 	      match_op[1] = gimple_convert (&stmts,
- 					    TREE_TYPE (use_rhs),
- 					    match_op[1]);
- 	      var = gimple_build (&stmts, BIT_AND_EXPR,
- 				  TREE_TYPE (use_rhs), use_rhs, match_op[1]);
- 	      gsi = gsi_for_stmt (use_stmt);
- 	      gsi_remove (&gsi, true);
- 	      release_defs (use_stmt);
- 	      use_stmt = gimple_seq_last_stmt (stmts);
- 	      gsi = gsi_for_stmt (use_nop_stmt);
- 	      gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT);
- 	      gimple_assign_set_rhs_with_ops (&gsi, CONVERT_EXPR, var);
- 	      update_stmt (use_nop_stmt);
- 	    }
- 	}
-       else
- 	return false;
- 
-       if (!bit)
- 	{
- 	  if (ibit < 0)
- 	    gcc_unreachable ();
- 	  bit = build_int_cst (TREE_TYPE (lhs), ibit);
- 	}
-     }
-   else if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
- 	   == CODE_FOR_nothing)
-     return false;
- 
-   tree use_lhs = gimple_assign_lhs (use_stmt);
-   if (!use_lhs)
-     return false;
- 
-   if (!bit)
-     {
-       if (TREE_CODE (mask) == INTEGER_CST)
- 	{
- 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
- 	    mask = const_unop (BIT_NOT_EXPR, TREE_TYPE (mask), mask);
- 	  mask = fold_convert (TREE_TYPE (lhs), mask);
- 	  int ibit = tree_log2 (mask);
- 	  if (ibit < 0)
- 	    return false;
- 	  bit = build_int_cst (TREE_TYPE (lhs), ibit);
- 	}
-       else if (TREE_CODE (mask) == SSA_NAME)
- 	{
- 	  gimple *g = SSA_NAME_DEF_STMT (mask);
- 	  tree match_op;
- 	  if (gimple_nop_convert (mask, &match_op, NULL))
- 	    {
- 	      mask = match_op;
- 	      if (TREE_CODE (mask) != SSA_NAME)
- 		return false;
- 	      g = SSA_NAME_DEF_STMT (mask);
- 	    }
- 	  if (!is_gimple_assign (g))
- 	    return false;
- 
- 	  if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET)
- 	    {
- 	      if (gimple_assign_rhs_code (g) != BIT_NOT_EXPR)
- 		return false;
- 	      mask = gimple_assign_rhs1 (g);
- 	      if (TREE_CODE (mask) != SSA_NAME)
- 		return false;
- 	      g = SSA_NAME_DEF_STMT (mask);
- 	    }
- 
- 	  if (!is_gimple_assign (g)
- 	      || gimple_assign_rhs_code (g) != LSHIFT_EXPR
- 	      || !integer_onep (gimple_assign_rhs1 (g)))
- 	    return false;
- 	  bit = gimple_assign_rhs2 (g);
- 	}
-       else
- 	return false;
- 
-       tree cmp_mask;
-       if (gimple_assign_rhs1 (use_stmt) == lhs)
- 	cmp_mask = gimple_assign_rhs2 (use_stmt);
-       else
- 	cmp_mask = gimple_assign_rhs1 (use_stmt);
- 
-       tree match_op;
-       if (gimple_nop_convert (cmp_mask, &match_op, NULL))
- 	cmp_mask = match_op;
- 
-       if (!operand_equal_p (cmp_mask, mask, 0))
- 	return false;
-     }
- 
-   bool use_bool = true;
-   bool has_debug_uses = false;
-   imm_use_iterator iter;
-   gimple *g;
- 
-   if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs))
-     use_bool = false;
-   FOR_EACH_IMM_USE_STMT (g, iter, use_lhs)
-     {
-       enum tree_code code = ERROR_MARK;
-       tree op0 = NULL_TREE, op1 = NULL_TREE;
-       if (is_gimple_debug (g))
- 	{
- 	  has_debug_uses = true;
- 	  continue;
- 	}
-       else if (is_gimple_assign (g))
- 	switch (gimple_assign_rhs_code (g))
- 	  {
- 	  case COND_EXPR:
- 	    op1 = gimple_assign_rhs1 (g);
- 	    code = TREE_CODE (op1);
- 	    if (TREE_CODE_CLASS (code) != tcc_comparison)
- 	      break;
- 	    op0 = TREE_OPERAND (op1, 0);
- 	    op1 = TREE_OPERAND (op1, 1);
- 	    break;
- 	  case EQ_EXPR:
- 	  case NE_EXPR:
- 	    code = gimple_assign_rhs_code (g);
- 	    op0 = gimple_assign_rhs1 (g);
- 	    op1 = gimple_assign_rhs2 (g);
- 	    break;
- 	  default:
- 	    break;
- 	  }
-       else if (gimple_code (g) == GIMPLE_COND)
- 	{
- 	  code = gimple_cond_code (g);
- 	  op0 = gimple_cond_lhs (g);
- 	  op1 = gimple_cond_rhs (g);
- 	}
- 
-       if ((code == EQ_EXPR || code == NE_EXPR)
- 	  && op0 == use_lhs
- 	  && integer_zerop (op1))
- 	{
- 	  use_operand_p use_p;
- 	  int n = 0;
- 	  FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
- 	    n++;
- 	  if (n == 1)
- 	    continue;
- 	}
- 
-       use_bool = false;
-       break;
-     }
- 
-   tree new_lhs = make_ssa_name (TREE_TYPE (lhs));
-   tree flag = build_int_cst (TREE_TYPE (lhs), use_bool);
-   if (has_model_arg)
-     g = gimple_build_call_internal (fn, 5, gimple_call_arg (call, 0),
- 				    bit, flag, gimple_call_arg (call, 2),
- 				    gimple_call_fn (call));
-   else
-     g = gimple_build_call_internal (fn, 4, gimple_call_arg (call, 0),
- 				    bit, flag, gimple_call_fn (call));
-   gimple_call_set_lhs (g, new_lhs);
-   gimple_set_location (g, gimple_location (call));
-   gimple_move_vops (g, call);
-   bool throws = stmt_can_throw_internal (cfun, call);
-   gimple_call_set_nothrow (as_a <gcall *> (g),
- 			   gimple_call_nothrow_p (as_a <gcall *> (call)));
-   gimple_stmt_iterator gsi = *gsip;
-   gsi_insert_after (&gsi, g, GSI_NEW_STMT);
-   edge e = NULL;
-   if (throws)
-     {
-       maybe_clean_or_replace_eh_stmt (call, g);
-       if (after || (use_bool && has_debug_uses))
- 	e = find_fallthru_edge (gsi_bb (gsi)->succs);
-     }
-   if (after)
-     {
-       /* The internal function returns the value of the specified bit
- 	 before the atomic operation.  If we are interested in the value
- 	 of the specified bit after the atomic operation (makes only sense
- 	 for xor, otherwise the bit content is compile time known),
- 	 we need to invert the bit.  */
-       tree mask_convert = mask;
-       gimple_seq stmts = NULL;
-       if (!use_bool)
- 	mask_convert = gimple_convert (&stmts, TREE_TYPE (lhs), mask);
-       new_lhs = gimple_build (&stmts, BIT_XOR_EXPR, TREE_TYPE (lhs), new_lhs,
- 			      use_bool ? build_int_cst (TREE_TYPE (lhs), 1)
- 				       : mask_convert);
-       if (throws)
- 	{
- 	  gsi_insert_seq_on_edge_immediate (e, stmts);
- 	  gsi = gsi_for_stmt (gimple_seq_last (stmts));
- 	}
-       else
- 	gsi_insert_seq_after (&gsi, stmts, GSI_NEW_STMT);
-     }
-   if (use_bool && has_debug_uses)
-     {
-       tree temp = NULL_TREE;
-       if (!throws || after || single_pred_p (e->dest))
- 	{
- 	  temp = build_debug_expr_decl (TREE_TYPE (lhs));
- 	  tree t = build2 (LSHIFT_EXPR, TREE_TYPE (lhs), new_lhs, bit);
- 	  g = gimple_build_debug_bind (temp, t, g);
- 	  if (throws && !after)
- 	    {
- 	      gsi = gsi_after_labels (e->dest);
- 	      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
- 	    }
- 	  else
- 	    gsi_insert_after (&gsi, g, GSI_NEW_STMT);
- 	}
-       FOR_EACH_IMM_USE_STMT (g, iter, use_lhs)
- 	if (is_gimple_debug (g))
- 	  {
- 	    use_operand_p use_p;
- 	    if (temp == NULL_TREE)
- 	      gimple_debug_bind_reset_value (g);
- 	    else
- 	      FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
- 		SET_USE (use_p, temp);
- 	    update_stmt (g);
- 	  }
-     }
-   SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_lhs)
-     = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs);
-   replace_uses_by (use_lhs, new_lhs);
-   gsi = gsi_for_stmt (use_stmt);
-   gsi_remove (&gsi, true);
-   release_defs (use_stmt);
-   gsi_remove (gsip, true);
-   release_ssa_name (lhs);
-   return true;
- }
- 
- /* Optimize
-      _4 = __atomic_add_fetch_* (ptr_6, arg_2, _3);
-      _5 = _4 == 0;
-    to
-      _4 = .ATOMIC_ADD_FETCH_CMP_0 (EQ_EXPR, ptr_6, arg_2, _3);
-      _5 = _4;
-    Similarly for __sync_add_and_fetch_* (without the ", _3" part
-    in there).  */
- 
- static bool
- optimize_atomic_op_fetch_cmp_0 (gimple_stmt_iterator *gsip,
- 				enum internal_fn fn, bool has_model_arg)
- {
-   gimple *call = gsi_stmt (*gsip);
-   tree lhs = gimple_call_lhs (call);
-   use_operand_p use_p;
-   gimple *use_stmt;
- 
-   if (!flag_inline_atomics
-       || optimize_debug
-       || !gimple_call_builtin_p (call, BUILT_IN_NORMAL)
-       || !lhs
-       || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs)
-       || !single_imm_use (lhs, &use_p, &use_stmt)
-       || !gimple_vdef (call))
-     return false;
- 
-   optab optab;
-   switch (fn)
-     {
-     case IFN_ATOMIC_ADD_FETCH_CMP_0:
-       optab = atomic_add_fetch_cmp_0_optab;
-       break;
-     case IFN_ATOMIC_SUB_FETCH_CMP_0:
-       optab = atomic_sub_fetch_cmp_0_optab;
-       break;
-     case IFN_ATOMIC_AND_FETCH_CMP_0:
-       optab = atomic_and_fetch_cmp_0_optab;
-       break;
-     case IFN_ATOMIC_OR_FETCH_CMP_0:
-       optab = atomic_or_fetch_cmp_0_optab;
-       break;
-     case IFN_ATOMIC_XOR_FETCH_CMP_0:
-       optab = atomic_xor_fetch_cmp_0_optab;
-       break;
-     default:
-       return false;
-     }
- 
-   if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs)))
-       == CODE_FOR_nothing)
-     return false;
- 
-   tree use_lhs = lhs;
-   if (gimple_assign_cast_p (use_stmt))
-     {
-       use_lhs = gimple_assign_lhs (use_stmt);
-       if (!tree_nop_conversion_p (TREE_TYPE (use_lhs), TREE_TYPE (lhs))
- 	  || (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs))
- 	      && !POINTER_TYPE_P (TREE_TYPE (use_lhs)))
- 	  || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)
- 	  || !single_imm_use (use_lhs, &use_p, &use_stmt))
- 	return false;
-     }
-   enum tree_code code = ERROR_MARK;
-   tree op0 = NULL_TREE, op1 = NULL_TREE;
-   if (is_gimple_assign (use_stmt))
-     switch (gimple_assign_rhs_code (use_stmt))
-       {
-       case COND_EXPR:
- 	op1 = gimple_assign_rhs1 (use_stmt);
- 	code = TREE_CODE (op1);
- 	if (TREE_CODE_CLASS (code) == tcc_comparison)
- 	  {
- 	    op0 = TREE_OPERAND (op1, 0);
- 	    op1 = TREE_OPERAND (op1, 1);
- 	  }
- 	break;
-       default:
- 	code = gimple_assign_rhs_code (use_stmt);
- 	if (TREE_CODE_CLASS (code) == tcc_comparison)
- 	  {
- 	    op0 = gimple_assign_rhs1 (use_stmt);
- 	    op1 = gimple_assign_rhs2 (use_stmt);
- 	  }
- 	break;
-       }
-   else if (gimple_code (use_stmt) == GIMPLE_COND)
-     {
-       code = gimple_cond_code (use_stmt);
-       op0 = gimple_cond_lhs (use_stmt);
-       op1 = gimple_cond_rhs (use_stmt);
-     }
- 
-   switch (code)
-     {
-     case LT_EXPR:
-     case LE_EXPR:
-     case GT_EXPR:
-     case GE_EXPR:
-       if (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs))
- 	  || TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE
- 	  || TYPE_UNSIGNED (TREE_TYPE (use_lhs)))
- 	return false;
-       /* FALLTHRU */
-     case EQ_EXPR:
-     case NE_EXPR:
-       if (op0 == use_lhs && integer_zerop (op1))
- 	break;
-       return false;
-     default:
-       return false;
-     }
- 
-   int encoded;
-   switch (code)
-     {
-     /* Use special encoding of the operation.  We want to also
-        encode the mode in the first argument and for neither EQ_EXPR
-        etc. nor EQ etc. we can rely it will fit into QImode.  */
-     case EQ_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_EQ; break;
-     case NE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_NE; break;
-     case LT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LT; break;
-     case LE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LE; break;
-     case GT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GT; break;
-     case GE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GE; break;
-     default: gcc_unreachable ();
-     }
- 
-   tree new_lhs = make_ssa_name (boolean_type_node);
-   gimple *g;
-   tree flag = build_int_cst (TREE_TYPE (lhs), encoded);
-   if (has_model_arg)
-     g = gimple_build_call_internal (fn, 5, flag,
- 				    gimple_call_arg (call, 0),
- 				    gimple_call_arg (call, 1),
- 				    gimple_call_arg (call, 2),
- 				    gimple_call_fn (call));
-   else
-     g = gimple_build_call_internal (fn, 4, flag,
- 				    gimple_call_arg (call, 0),
- 				    gimple_call_arg (call, 1),
- 				    gimple_call_fn (call));
-   gimple_call_set_lhs (g, new_lhs);
-   gimple_set_location (g, gimple_location (call));
-   gimple_move_vops (g, call);
-   bool throws = stmt_can_throw_internal (cfun, call);
-   gimple_call_set_nothrow (as_a <gcall *> (g),
- 			   gimple_call_nothrow_p (as_a <gcall *> (call)));
-   gimple_stmt_iterator gsi = *gsip;
-   gsi_insert_after (&gsi, g, GSI_SAME_STMT);
-   if (throws)
-     maybe_clean_or_replace_eh_stmt (call, g);
-   if (is_gimple_assign (use_stmt))
-     switch (gimple_assign_rhs_code (use_stmt))
-       {
-       case COND_EXPR:
- 	gimple_assign_set_rhs1 (use_stmt, new_lhs);
- 	break;
-       default:
- 	gsi = gsi_for_stmt (use_stmt);
- 	if (tree ulhs = gimple_assign_lhs (use_stmt))
- 	  if (useless_type_conversion_p (TREE_TYPE (ulhs),
- 					 boolean_type_node))
- 	    {
- 	      gimple_assign_set_rhs_with_ops (&gsi, SSA_NAME, new_lhs);
- 	      break;
- 	    }
- 	gimple_assign_set_rhs_with_ops (&gsi, NOP_EXPR, new_lhs);
- 	break;
-       }
-   else if (gimple_code (use_stmt) == GIMPLE_COND)
-     {
-       gcond *use_cond = as_a <gcond *> (use_stmt);
-       gimple_cond_set_code (use_cond, NE_EXPR);
-       gimple_cond_set_lhs (use_cond, new_lhs);
-       gimple_cond_set_rhs (use_cond, boolean_false_node);
-     }
- 
-   update_stmt (use_stmt);
-   if (use_lhs != lhs)
-     {
-       gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (use_lhs));
-       gsi_remove (&gsi, true);
-       release_ssa_name (use_lhs);
-     }
-   gsi_remove (gsip, true);
-   release_ssa_name (lhs);
-   return true;
- }
- 
- /* A simple pass that attempts to fold all builtin functions.  This pass
-    is run after we've propagated as many constants as we can.  */
- 
- namespace {
- 
- const pass_data pass_data_fold_builtins =
- {
-   GIMPLE_PASS, /* type */
-   "fab", /* name */
-   OPTGROUP_NONE, /* optinfo_flags */
-   TV_NONE, /* tv_id */
-   ( PROP_cfg | PROP_ssa ), /* properties_required */
-   0, /* properties_provided */
-   0, /* properties_destroyed */
-   0, /* todo_flags_start */
-   TODO_update_ssa, /* todo_flags_finish */
- };
- 
- class pass_fold_builtins : public gimple_opt_pass
- {
- public:
-   pass_fold_builtins (gcc::context *ctxt)
-     : gimple_opt_pass (pass_data_fold_builtins, ctxt)
-   {}
- 
-   /* opt_pass methods: */
-   opt_pass * clone () final override { return new pass_fold_builtins (m_ctxt); }
-   unsigned int execute (function *) final override;
- 
- }; // class pass_fold_builtins
- 
- /* Optimize memcmp STMT into memcmp_eq if it is only used with
-    `== 0` or `!= 0`. */
- 
- static void
- optimize_memcmp_eq (gcall *stmt)
- {
-   /* Make sure memcmp arguments are the correct type.  */
-   if (gimple_call_num_args (stmt) != 3)
-     return;
-   tree arg1 = gimple_call_arg (stmt, 0);
-   tree arg2 = gimple_call_arg (stmt, 1);
-   tree len = gimple_call_arg (stmt, 2);
- 
-   if (!POINTER_TYPE_P (TREE_TYPE (arg1)))
-     return;
-   if (!POINTER_TYPE_P (TREE_TYPE (arg2)))
-     return;
-   if (!INTEGRAL_TYPE_P (TREE_TYPE (len)))
-     return;
-   /* The return value of the memcmp has to be used
-      equality comparison to zero. */
-   tree res = gimple_call_lhs (stmt);
- 
-   if (!res || !use_in_zero_equality (res))
-     return;
- 
-   gimple_call_set_fndecl (stmt, builtin_decl_explicit (BUILT_IN_MEMCMP_EQ));
-   update_stmt (stmt);
- }
- 
- unsigned int
- pass_fold_builtins::execute (function *fun)
- {
-   bool cfg_changed = false;
-   basic_block bb;
-   unsigned int todoflags = 0;
- 
-   /* Set last full fold prop if not already set. */
-   fun->curr_properties |= PROP_last_full_fold;
- 
-   FOR_EACH_BB_FN (bb, fun)
-     {
-       gimple_stmt_iterator i;
-       for (i = gsi_start_bb (bb); !gsi_end_p (i); )
- 	{
- 	  gimple *stmt, *old_stmt;
- 	  tree callee;
- 	  enum built_in_function fcode;
- 
- 	  stmt = gsi_stmt (i);
- 
- 	  if (gimple_code (stmt) != GIMPLE_CALL)
- 	    {
- 	      gsi_next (&i);
- 	      continue;
- 	    }
- 
- 	  callee = gimple_call_fndecl (stmt);
- 	  if (!callee
- 	      && gimple_call_internal_p (stmt, IFN_ASSUME))
- 	    {
- 	      gsi_remove (&i, true);
- 	      continue;
- 	    }
- 	  if (!callee || !fndecl_built_in_p (callee, BUILT_IN_NORMAL))
- 	    {
- 	      gsi_next (&i);
- 	      continue;
- 	    }
- 
- 	  fcode = DECL_FUNCTION_CODE (callee);
- 	  if (fold_stmt (&i))
- 	    ;
- 	  else
- 	    {
- 	      tree result = NULL_TREE;
- 	      switch (DECL_FUNCTION_CODE (callee))
- 		{
- 
- 		case BUILT_IN_STACK_RESTORE:
- 		  result = optimize_stack_restore (i);
- 		  if (result)
- 		    break;
- 		  gsi_next (&i);
- 		  continue;
- 
- 		case BUILT_IN_MEMCMP:
- 		  optimize_memcmp_eq (as_a<gcall*>(stmt));
- 		  break;
- 
- 		case BUILT_IN_UNREACHABLE:
- 		  if (optimize_unreachable (i))
- 		    cfg_changed = true;
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_ADD_FETCH_1:
- 		case BUILT_IN_ATOMIC_ADD_FETCH_2:
- 		case BUILT_IN_ATOMIC_ADD_FETCH_4:
- 		case BUILT_IN_ATOMIC_ADD_FETCH_8:
- 		case BUILT_IN_ATOMIC_ADD_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_ADD_FETCH_CMP_0,
- 						  true);
- 		  break;
- 		case BUILT_IN_SYNC_ADD_AND_FETCH_1:
- 		case BUILT_IN_SYNC_ADD_AND_FETCH_2:
- 		case BUILT_IN_SYNC_ADD_AND_FETCH_4:
- 		case BUILT_IN_SYNC_ADD_AND_FETCH_8:
- 		case BUILT_IN_SYNC_ADD_AND_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_ADD_FETCH_CMP_0,
- 						  false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_SUB_FETCH_1:
- 		case BUILT_IN_ATOMIC_SUB_FETCH_2:
- 		case BUILT_IN_ATOMIC_SUB_FETCH_4:
- 		case BUILT_IN_ATOMIC_SUB_FETCH_8:
- 		case BUILT_IN_ATOMIC_SUB_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_SUB_FETCH_CMP_0,
- 						  true);
- 		  break;
- 		case BUILT_IN_SYNC_SUB_AND_FETCH_1:
- 		case BUILT_IN_SYNC_SUB_AND_FETCH_2:
- 		case BUILT_IN_SYNC_SUB_AND_FETCH_4:
- 		case BUILT_IN_SYNC_SUB_AND_FETCH_8:
- 		case BUILT_IN_SYNC_SUB_AND_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_SUB_FETCH_CMP_0,
- 						  false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_FETCH_OR_1:
- 		case BUILT_IN_ATOMIC_FETCH_OR_2:
- 		case BUILT_IN_ATOMIC_FETCH_OR_4:
- 		case BUILT_IN_ATOMIC_FETCH_OR_8:
- 		case BUILT_IN_ATOMIC_FETCH_OR_16:
- 		  optimize_atomic_bit_test_and (&i,
- 						IFN_ATOMIC_BIT_TEST_AND_SET,
- 						true, false);
- 		  break;
- 		case BUILT_IN_SYNC_FETCH_AND_OR_1:
- 		case BUILT_IN_SYNC_FETCH_AND_OR_2:
- 		case BUILT_IN_SYNC_FETCH_AND_OR_4:
- 		case BUILT_IN_SYNC_FETCH_AND_OR_8:
- 		case BUILT_IN_SYNC_FETCH_AND_OR_16:
- 		  optimize_atomic_bit_test_and (&i,
- 						IFN_ATOMIC_BIT_TEST_AND_SET,
- 						false, false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_FETCH_XOR_1:
- 		case BUILT_IN_ATOMIC_FETCH_XOR_2:
- 		case BUILT_IN_ATOMIC_FETCH_XOR_4:
- 		case BUILT_IN_ATOMIC_FETCH_XOR_8:
- 		case BUILT_IN_ATOMIC_FETCH_XOR_16:
- 		  optimize_atomic_bit_test_and
- 			(&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, false);
- 		  break;
- 		case BUILT_IN_SYNC_FETCH_AND_XOR_1:
- 		case BUILT_IN_SYNC_FETCH_AND_XOR_2:
- 		case BUILT_IN_SYNC_FETCH_AND_XOR_4:
- 		case BUILT_IN_SYNC_FETCH_AND_XOR_8:
- 		case BUILT_IN_SYNC_FETCH_AND_XOR_16:
- 		  optimize_atomic_bit_test_and
- 			(&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_XOR_FETCH_1:
- 		case BUILT_IN_ATOMIC_XOR_FETCH_2:
- 		case BUILT_IN_ATOMIC_XOR_FETCH_4:
- 		case BUILT_IN_ATOMIC_XOR_FETCH_8:
- 		case BUILT_IN_ATOMIC_XOR_FETCH_16:
- 		  if (optimize_atomic_bit_test_and
- 			(&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, true))
- 		    break;
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_XOR_FETCH_CMP_0,
- 						  true);
- 		  break;
- 		case BUILT_IN_SYNC_XOR_AND_FETCH_1:
- 		case BUILT_IN_SYNC_XOR_AND_FETCH_2:
- 		case BUILT_IN_SYNC_XOR_AND_FETCH_4:
- 		case BUILT_IN_SYNC_XOR_AND_FETCH_8:
- 		case BUILT_IN_SYNC_XOR_AND_FETCH_16:
- 		  if (optimize_atomic_bit_test_and
- 			(&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, true))
- 		    break;
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_XOR_FETCH_CMP_0,
- 						  false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_FETCH_AND_1:
- 		case BUILT_IN_ATOMIC_FETCH_AND_2:
- 		case BUILT_IN_ATOMIC_FETCH_AND_4:
- 		case BUILT_IN_ATOMIC_FETCH_AND_8:
- 		case BUILT_IN_ATOMIC_FETCH_AND_16:
- 		  optimize_atomic_bit_test_and (&i,
- 						IFN_ATOMIC_BIT_TEST_AND_RESET,
- 						true, false);
- 		  break;
- 		case BUILT_IN_SYNC_FETCH_AND_AND_1:
- 		case BUILT_IN_SYNC_FETCH_AND_AND_2:
- 		case BUILT_IN_SYNC_FETCH_AND_AND_4:
- 		case BUILT_IN_SYNC_FETCH_AND_AND_8:
- 		case BUILT_IN_SYNC_FETCH_AND_AND_16:
- 		  optimize_atomic_bit_test_and (&i,
- 						IFN_ATOMIC_BIT_TEST_AND_RESET,
- 						false, false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_AND_FETCH_1:
- 		case BUILT_IN_ATOMIC_AND_FETCH_2:
- 		case BUILT_IN_ATOMIC_AND_FETCH_4:
- 		case BUILT_IN_ATOMIC_AND_FETCH_8:
- 		case BUILT_IN_ATOMIC_AND_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_AND_FETCH_CMP_0,
- 						  true);
- 		  break;
- 		case BUILT_IN_SYNC_AND_AND_FETCH_1:
- 		case BUILT_IN_SYNC_AND_AND_FETCH_2:
- 		case BUILT_IN_SYNC_AND_AND_FETCH_4:
- 		case BUILT_IN_SYNC_AND_AND_FETCH_8:
- 		case BUILT_IN_SYNC_AND_AND_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_AND_FETCH_CMP_0,
- 						  false);
- 		  break;
- 
- 		case BUILT_IN_ATOMIC_OR_FETCH_1:
- 		case BUILT_IN_ATOMIC_OR_FETCH_2:
- 		case BUILT_IN_ATOMIC_OR_FETCH_4:
- 		case BUILT_IN_ATOMIC_OR_FETCH_8:
- 		case BUILT_IN_ATOMIC_OR_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_OR_FETCH_CMP_0,
- 						  true);
- 		  break;
- 		case BUILT_IN_SYNC_OR_AND_FETCH_1:
- 		case BUILT_IN_SYNC_OR_AND_FETCH_2:
- 		case BUILT_IN_SYNC_OR_AND_FETCH_4:
- 		case BUILT_IN_SYNC_OR_AND_FETCH_8:
- 		case BUILT_IN_SYNC_OR_AND_FETCH_16:
- 		  optimize_atomic_op_fetch_cmp_0 (&i,
- 						  IFN_ATOMIC_OR_FETCH_CMP_0,
- 						  false);
- 		  break;
- 
- 		case BUILT_IN_VA_START:
- 		case BUILT_IN_VA_END:
- 		case BUILT_IN_VA_COPY:
- 		  /* These shouldn't be folded before pass_stdarg.  */
- 		  result = optimize_stdarg_builtin (stmt);
- 		  break;
- 
- 		default:;
- 		}
- 
- 	      if (!result)
- 		{
- 		  gsi_next (&i);
- 		  continue;
- 		}
- 
- 	      gimplify_and_update_call_from_tree (&i, result);
- 	    }
- 
- 	  todoflags |= TODO_update_address_taken;
- 
- 	  if (dump_file && (dump_flags & TDF_DETAILS))
- 	    {
- 	      fprintf (dump_file, "Simplified\n  ");
- 	      print_gimple_stmt (dump_file, stmt, 0, dump_flags);
- 	    }
- 
-           old_stmt = stmt;
- 	  stmt = gsi_stmt (i);
- 	  update_stmt (stmt);
- 
- 	  if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt)
- 	      && gimple_purge_dead_eh_edges (bb))
- 	    cfg_changed = true;
- 
- 	  if (dump_file && (dump_flags & TDF_DETAILS))
- 	    {
- 	      fprintf (dump_file, "to\n  ");
- 	      print_gimple_stmt (dump_file, stmt, 0, dump_flags);
- 	      fprintf (dump_file, "\n");
- 	    }
- 
- 	  /* Retry the same statement if it changed into another
- 	     builtin, there might be new opportunities now.  */
-           if (gimple_code (stmt) != GIMPLE_CALL)
- 	    {
- 	      gsi_next (&i);
- 	      continue;
- 	    }
- 	  callee = gimple_call_fndecl (stmt);
- 	  if (!callee
- 	      || !fndecl_built_in_p (callee, fcode))
- 	    gsi_next (&i);
- 	}
-     }
- 
-   /* Delete unreachable blocks.  */
-   if (cfg_changed)
-     todoflags |= TODO_cleanup_cfg;
- 
-   return todoflags;
- }
- 
- } // anon namespace
- 
- gimple_opt_pass *
- make_pass_fold_builtins (gcc::context *ctxt)
- {
-   return new pass_fold_builtins (ctxt);
- }
- 
  /* A simple pass that emits some warnings post IPA.  */
  
  namespace {
--- 3085,3090 ----
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-forwprop.cc gcc-16-20251005/gcc/tree-ssa-forwprop.cc
*** gcc-16-20250928/gcc/tree-ssa-forwprop.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-forwprop.cc	Sun Oct  5 22:33:56 2025
*************** simplify_builtin_memcmp (gimple_stmt_ite
*** 1842,1848 ****
  	  return true;
  	}
      }
!   return false;
  }
  
  /* Optimizes builtin memchrs for small constant sizes with a const string.
--- 1842,1856 ----
  	  return true;
  	}
      }
! 
!   /* Replace memcmp with memcmp_eq if the above fails. */
!   if (DECL_FUNCTION_CODE (gimple_call_fndecl (stmt)) == BUILT_IN_MEMCMP_EQ)
!     return false;
!   if (!(cfun->curr_properties & (PROP_last_full_fold)))
!     return false;
!   gimple_call_set_fndecl (stmt, builtin_decl_explicit (BUILT_IN_MEMCMP_EQ));
!   update_stmt (stmt);
!   return true;
  }
  
  /* Optimizes builtin memchrs for small constant sizes with a const string.
*************** simplify_builtin_memcpy_memset (gimple_s
*** 2124,2129 ****
--- 2132,2247 ----
      }
  }
  
+ 
+ /* Try to optimize out __builtin_stack_restore.  Optimize it out
+    if there is another __builtin_stack_restore in the same basic
+    block and no calls or ASM_EXPRs are in between, or if this block's
+    only outgoing edge is to EXIT_BLOCK and there are no calls or
+    ASM_EXPRs after this __builtin_stack_restore.
+    Note restore right before a noreturn function is not needed.
+    And skip some cheap calls that will most likely become an instruction.
+    Restoring the stack before a call is important to be able to keep
+    stack usage down so that call does not run out of stack.  */
+ 
+ 
+ static bool
+ optimize_stack_restore (gimple_stmt_iterator *gsi, gimple *call)
+ {
+   if (!(cfun->curr_properties & PROP_last_full_fold))
+     return false;
+   tree callee;
+   gimple *stmt;
+ 
+   basic_block bb = gsi_bb (*gsi);
+ 
+   if (gimple_call_num_args (call) != 1
+       || TREE_CODE (gimple_call_arg (call, 0)) != SSA_NAME
+       || !POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0))))
+     return false;
+ 
+   gimple_stmt_iterator i = *gsi;
+   for (gsi_next (&i); !gsi_end_p (i); gsi_next (&i))
+     {
+       stmt = gsi_stmt (i);
+       if (is_a<gasm*> (stmt))
+ 	return false;
+       gcall *call = dyn_cast<gcall*>(stmt);
+       if (!call)
+ 	continue;
+ 
+       /* We can remove the restore in front of noreturn
+ 	 calls.  Since the restore will happen either
+ 	 via an unwind/longjmp or not at all. */
+       if (gimple_call_noreturn_p (call))
+ 	break;
+ 
+       /* Internal calls are ok, to bypass
+ 	 check first since fndecl will be null. */
+       if (gimple_call_internal_p (call))
+ 	continue;
+ 
+       callee = gimple_call_fndecl (call);
+       /* Non-builtin calls are not ok. */
+       if (!callee
+ 	  || !fndecl_built_in_p (callee))
+ 	return false;
+ 
+       /* Do not remove stack updates before strub leave.  */
+       if (fndecl_built_in_p (callee, BUILT_IN___STRUB_LEAVE)
+ 	  /* Alloca calls are not ok either. */
+ 	  || fndecl_builtin_alloc_p (callee))
+ 	return false;
+ 
+       if (fndecl_built_in_p (callee, BUILT_IN_STACK_RESTORE))
+ 	goto second_stack_restore;
+ 
+       /* If not a simple or inexpensive builtin, then it is not ok either. */
+       if (!is_simple_builtin (callee)
+ 	  && !is_inexpensive_builtin (callee))
+ 	return false;
+     }
+ 
+   /* Allow one successor of the exit block, or zero successors.  */
+   switch (EDGE_COUNT (bb->succs))
+     {
+     case 0:
+       break;
+     case 1:
+       if (single_succ_edge (bb)->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
+ 	return false;
+       break;
+     default:
+       return false;
+     }
+  second_stack_restore:
+ 
+   /* If there's exactly one use, then zap the call to __builtin_stack_save.
+      If there are multiple uses, then the last one should remove the call.
+      In any case, whether the call to __builtin_stack_save can be removed
+      or not is irrelevant to removing the call to __builtin_stack_restore.  */
+   if (has_single_use (gimple_call_arg (call, 0)))
+     {
+       gimple *stack_save = SSA_NAME_DEF_STMT (gimple_call_arg (call, 0));
+       if (is_gimple_call (stack_save))
+ 	{
+ 	  callee = gimple_call_fndecl (stack_save);
+ 	  if (callee && fndecl_built_in_p (callee, BUILT_IN_STACK_SAVE))
+ 	    {
+ 	      gimple_stmt_iterator stack_save_gsi;
+ 	      tree rhs;
+ 
+ 	      stack_save_gsi = gsi_for_stmt (stack_save);
+ 	      rhs = build_int_cst (TREE_TYPE (gimple_call_arg (call, 0)), 0);
+ 	      replace_call_with_value (&stack_save_gsi, rhs);
+ 	    }
+ 	}
+     }
+ 
+   /* No effect, so the statement will be deleted.  */
+   replace_call_with_value (gsi, NULL_TREE);
+   return true;
+ }
+ 
  /* *GSI_P is a GIMPLE_CALL to a builtin function.
     Optimize
     memcpy (p, "abcd", 4);
*************** simplify_builtin_call (gimple_stmt_itera
*** 2155,2160 ****
--- 2273,2280 ----
  
    switch (DECL_FUNCTION_CODE (callee2))
      {
+     case BUILT_IN_STACK_RESTORE:
+       return optimize_stack_restore (gsi_p, as_a<gcall*>(stmt2));
      case BUILT_IN_MEMCMP:
      case BUILT_IN_MEMCMP_EQ:
        return simplify_builtin_memcmp (gsi_p, as_a<gcall*>(stmt2));
*************** public:
*** 4786,4791 ****
--- 4906,4954 ----
    bool m_full_walk = false;
  }; // class pass_forwprop
  
+ /* Attemp to make the BB block of __builtin_unreachable unreachable by changing
+    the incoming jumps.  Return true if at least one jump was changed.  */
+ 
+ static bool
+ optimize_unreachable (basic_block bb)
+ {
+   gimple_stmt_iterator gsi;
+   gimple *stmt;
+   edge_iterator ei;
+   edge e;
+   bool ret;
+ 
+   ret = false;
+   FOR_EACH_EDGE (e, ei, bb->preds)
+     {
+       gsi = gsi_last_bb (e->src);
+       if (gsi_end_p (gsi))
+ 	continue;
+ 
+       stmt = gsi_stmt (gsi);
+       if (gcond *cond_stmt = dyn_cast <gcond *> (stmt))
+ 	{
+ 	  if (e->flags & EDGE_TRUE_VALUE)
+ 	    gimple_cond_make_false (cond_stmt);
+ 	  else if (e->flags & EDGE_FALSE_VALUE)
+ 	    gimple_cond_make_true (cond_stmt);
+ 	  else
+ 	    gcc_unreachable ();
+ 	  update_stmt (cond_stmt);
+ 	}
+       else
+ 	{
+ 	  /* Todo: handle other cases.  Note that unreachable switch case
+ 	     statements have already been removed.  */
+ 	  continue;
+ 	}
+ 
+       ret = true;
+     }
+ 
+   return ret;
+ }
+ 
  unsigned int
  pass_forwprop::execute (function *fun)
  {
*************** pass_forwprop::execute (function *fun)
*** 4853,4858 ****
--- 5016,5036 ----
        if (!any)
  	continue;
  
+       /* Remove conditions that go directly to unreachable when this is the last forwprop.  */
+       if (last_p
+ 	  && !(flag_sanitize & SANITIZE_UNREACHABLE))
+ 	{
+ 	  gimple_stmt_iterator gsi;
+ 	  gsi = gsi_start_nondebug_after_labels_bb (bb);
+ 	  if (!gsi_end_p (gsi)
+ 	      && gimple_call_builtin_p (*gsi, BUILT_IN_UNREACHABLE)
+ 	      && optimize_unreachable (bb))
+ 	    {
+ 	      cfg_changed = true;
+ 	      continue;
+ 	    }
+ 	}
+ 
        /* Record degenerate PHIs in the lattice.  */
        for (gphi_iterator si = gsi_start_phis (bb); !gsi_end_p (si);
  	   gsi_next (&si))
*************** pass_forwprop::execute (function *fun)
*** 5273,5279 ****
  	  do
  	    {
  	      gimple *orig_stmt = stmt = gsi_stmt (gsi);
! 	      bool was_noreturn = (is_gimple_call (stmt)
  				   && gimple_call_noreturn_p (stmt));
  	      changed = false;
  
--- 5451,5458 ----
  	  do
  	    {
  	      gimple *orig_stmt = stmt = gsi_stmt (gsi);
! 	      bool was_call = is_gimple_call (stmt);
! 	      bool was_noreturn = (was_call
  				   && gimple_call_noreturn_p (stmt));
  	      changed = false;
  
*************** pass_forwprop::execute (function *fun)
*** 5285,5290 ****
--- 5464,5476 ----
  	      if (fold_stmt (&gsi, fwprop_ssa_val, simple_dce_worklist))
  		{
  		  changed = true;
+ 		  /* There is no updating of the address
+ 		     taken after the last forwprop so update
+ 		     the addresses when a folding happened to a call.
+ 		     The va_* builtins can remove taking of the address so
+ 		     can the sincos->cexpi transformation.  See PR 39643 and PR 20983. */
+ 		  if (was_call && last_p)
+ 		    todoflags |= TODO_update_address_taken;
  		  stmt = gsi_stmt (gsi);
  		  /* Cleanup the CFG if we simplified a condition to
  		     true or false.  */
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-math-opts.cc gcc-16-20251005/gcc/tree-ssa-math-opts.cc
*** gcc-16-20250928/gcc/tree-ssa-math-opts.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-math-opts.cc	Sun Oct  5 22:33:56 2025
*************** maybe_optimize_guarding_check (vec<gimpl
*** 3834,3839 ****
--- 3834,3840 ----
    else
      gimple_cond_make_false (zero_cond);
    update_stmt (zero_cond);
+   reset_flow_sensitive_info_in_bb (bb);
    *cfg_changed = true;
  }
  
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-phiopt.cc gcc-16-20251005/gcc/tree-ssa-phiopt.cc
*** gcc-16-20250928/gcc/tree-ssa-phiopt.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-phiopt.cc	Sun Oct  5 22:33:56 2025
*************** cond_if_else_store_replacement_1 (basic_
*** 3645,3650 ****
--- 3645,3651 ----
    gimple_stmt_iterator gsi;
    gphi *newphi;
    gassign *new_stmt;
+   bool empty_constructor = false;
  
    if (then_assign == NULL
        || !gimple_assign_single_p (then_assign)
*************** cond_if_else_store_replacement_1 (basic_
*** 3659,3666 ****
      return false;
  
    lhs = gimple_assign_lhs (then_assign);
!   if (!is_gimple_reg_type (TREE_TYPE (lhs))
!       || !operand_equal_p (lhs, gimple_assign_lhs (else_assign), 0))
      return false;
  
    lhs_base = get_base_address (lhs);
--- 3660,3666 ----
      return false;
  
    lhs = gimple_assign_lhs (then_assign);
!   if (!operand_equal_p (lhs, gimple_assign_lhs (else_assign), 0))
      return false;
  
    lhs_base = get_base_address (lhs);
*************** cond_if_else_store_replacement_1 (basic_
*** 3673,3678 ****
--- 3673,3688 ----
    then_locus = gimple_location (then_assign);
    else_locus = gimple_location (else_assign);
  
+   if (!is_gimple_reg_type (TREE_TYPE (lhs)))
+     {
+       if (!operand_equal_p (then_rhs, else_rhs))
+ 	return false;
+       /* Currently only handle commoning of `= {}`.   */
+       if (TREE_CODE (then_rhs) != CONSTRUCTOR)
+ 	return false;
+       empty_constructor = true;
+     }
+ 
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
        fprintf(dump_file, "factoring out stores:\n\tthen:\n");
*************** cond_if_else_store_replacement_1 (basic_
*** 3699,3710 ****
    /* 2) Create a PHI node at the join block, with one argument
  	holding the old RHS, and the other holding the temporary
  	where we stored the old memory contents.  */
!   name = make_temp_ssa_name (TREE_TYPE (lhs), NULL, "cstore");
!   newphi = create_phi_node (name, join_bb);
!   add_phi_arg (newphi, then_rhs, EDGE_SUCC (then_bb, 0), then_locus);
!   add_phi_arg (newphi, else_rhs, EDGE_SUCC (else_bb, 0), else_locus);
  
!   new_stmt = gimple_build_assign (lhs, gimple_phi_result (newphi));
    /* Update the vdef for the new store statement. */
    tree newvphilhs = make_ssa_name (gimple_vop (cfun));
    tree vdef = gimple_phi_result (vphi);
--- 3709,3725 ----
    /* 2) Create a PHI node at the join block, with one argument
  	holding the old RHS, and the other holding the temporary
  	where we stored the old memory contents.  */
!   if (empty_constructor)
!     name = unshare_expr (then_rhs);
!   else
!     {
!       name = make_temp_ssa_name (TREE_TYPE (lhs), NULL, "cstore");
!       newphi = create_phi_node (name, join_bb);
!       add_phi_arg (newphi, then_rhs, EDGE_SUCC (then_bb, 0), then_locus);
!       add_phi_arg (newphi, else_rhs, EDGE_SUCC (else_bb, 0), else_locus);
!     }
  
!   new_stmt = gimple_build_assign (lhs, name);
    /* Update the vdef for the new store statement. */
    tree newvphilhs = make_ssa_name (gimple_vop (cfun));
    tree vdef = gimple_phi_result (vphi);
*************** cond_if_else_store_replacement_1 (basic_
*** 3715,3730 ****
    update_stmt (vphi);
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
!       fprintf(dump_file, "to use phi:\n");
!       print_gimple_stmt (dump_file, newphi, 0,
! 			 TDF_VOPS|TDF_MEMSYMS);
!       fprintf(dump_file, "\n");
        print_gimple_stmt (dump_file, new_stmt, 0,
  			 TDF_VOPS|TDF_MEMSYMS);
        fprintf(dump_file, "\n\n");
      }
  
!   /* 3) Insert that PHI node.  */
    gsi = gsi_after_labels (join_bb);
    if (gsi_end_p (gsi))
      {
--- 3730,3750 ----
    update_stmt (vphi);
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
!       if (!empty_constructor)
! 	{
! 	 fprintf(dump_file, "to use phi:\n");
! 	  print_gimple_stmt (dump_file, newphi, 0,
! 			     TDF_VOPS|TDF_MEMSYMS);
!           fprintf(dump_file, "\n");
! 	}
!       else
! 	fprintf(dump_file, "to:\n");
        print_gimple_stmt (dump_file, new_stmt, 0,
  			 TDF_VOPS|TDF_MEMSYMS);
        fprintf(dump_file, "\n\n");
      }
  
!   /* 3) Insert that new store.  */
    gsi = gsi_after_labels (join_bb);
    if (gsi_end_p (gsi))
      {
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-pre.cc gcc-16-20251005/gcc/tree-ssa-pre.cc
*** gcc-16-20250928/gcc/tree-ssa-pre.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-pre.cc	Sun Oct  5 22:33:56 2025
*************** prune_clobbered_mems (bitmap_set_t set,
*** 2049,2056 ****
       the bitmap_find_leader way to see if there's still an expression
       for it.  For some ratio of to be removed values and number of
       values/expressions in the set this might be faster than rebuilding
!      the value-set.  */
!   if (any_removed)
      {
        bitmap_clear (&set->values);
        FOR_EACH_EXPR_ID_IN_SET (set, i, bi)
--- 2049,2060 ----
       the bitmap_find_leader way to see if there's still an expression
       for it.  For some ratio of to be removed values and number of
       values/expressions in the set this might be faster than rebuilding
!      the value-set.
!      Note when there's a MAX solution on one edge (clean_traps) do not
!      prune values as we need to consider the resulting expression set MAX
!      as well.  This avoids a later growing ANTIC_IN value-set during
!      iteration, when the explicitly represented expression set grows. */
!   if (any_removed && !clean_traps)
      {
        bitmap_clear (&set->values);
        FOR_EACH_EXPR_ID_IN_SET (set, i, bi)
*************** compute_antic_aux (basic_block block, bo
*** 2080,2085 ****
--- 2084,2090 ----
    edge e;
    edge_iterator ei;
  
+   bool was_visited = BB_VISITED (block);
    bool changed = ! BB_VISITED (block);
    bool any_max_on_edge = false;
  
*************** compute_antic_aux (basic_block block, bo
*** 2215,2220 ****
--- 2220,2251 ----
    /* clean (ANTIC_IN (block)) is defered to after the iteration converged
       because it can cause non-convergence, see for example PR81181.  */
  
+   if (was_visited
+       && bitmap_and_into (&ANTIC_IN (block)->values, &old->values))
+     {
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	fprintf (dump_file, "warning: intersecting with old ANTIC_IN "
+ 		 "shrinks the set\n");
+       /* Prune expressions not in the value set.  */
+       bitmap_iterator bi;
+       unsigned int i;
+       unsigned int to_clear = -1U;
+       FOR_EACH_EXPR_ID_IN_SET (ANTIC_IN (block), i, bi)
+ 	{
+ 	  if (to_clear != -1U)
+ 	    {
+ 	      bitmap_clear_bit (&ANTIC_IN (block)->expressions, to_clear);
+ 	      to_clear = -1U;
+ 	    }
+ 	  pre_expr expr = expression_for_id (i);
+ 	  unsigned int value_id = get_expr_value_id (expr);
+ 	  if (!bitmap_bit_p (&ANTIC_IN (block)->values, value_id))
+ 	    to_clear = i;
+ 	}
+       if (to_clear != -1U)
+ 	bitmap_clear_bit (&ANTIC_IN (block)->expressions, to_clear);
+     }
+ 
    if (!bitmap_set_equal (old, ANTIC_IN (block)))
      changed = true;
  
diff -Nrcpad gcc-16-20250928/gcc/tree-ssa-uninit.cc gcc-16-20251005/gcc/tree-ssa-uninit.cc
*** gcc-16-20250928/gcc/tree-ssa-uninit.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-ssa-uninit.cc	Sun Oct  5 22:33:56 2025
*************** maybe_warn_operand (ao_ref &ref, gimple
*** 641,646 ****
--- 641,647 ----
      return NULL_TREE;
  
    bool found_alloc = false;
+   bool found_clobber_deref_this = false;
  
    if (fentry_reached)
      {
*************** maybe_warn_operand (ao_ref &ref, gimple
*** 662,673 ****
  	      tree fndecl = gimple_call_fndecl (def_stmt);
  	      const built_in_function fncode = DECL_FUNCTION_CODE (fndecl);
  	      if (fncode == BUILT_IN_ALLOCA
! 		  || fncode  == BUILT_IN_ALLOCA_WITH_ALIGN
! 		  || fncode  == BUILT_IN_MALLOC)
  		found_alloc = true;
  	      break;
  	    }
  
  	  if (!is_gimple_assign (def_stmt))
  	    break;
  
--- 663,692 ----
  	      tree fndecl = gimple_call_fndecl (def_stmt);
  	      const built_in_function fncode = DECL_FUNCTION_CODE (fndecl);
  	      if (fncode == BUILT_IN_ALLOCA
! 		  || fncode == BUILT_IN_ALLOCA_WITH_ALIGN
! 		  || fncode == BUILT_IN_MALLOC)
  		found_alloc = true;
  	      break;
  	    }
  
+ 	  /* The C++ FE for -flifetime-dse=2 marks this parameters
+ 	     of certain constructors with "clobber *this" attribute.
+ 	     Emit uninitialized warnings if we read from what this points
+ 	     to.  This is similar to access (write_only, 1) attribute,
+ 	     except it is a -Wuninitialized warning rather than
+ 	     -Wmaybe-uninitialized and doesn't talk about access
+ 	     attribute.  */
+ 	  if (SSA_NAME_IS_DEFAULT_DEF (base)
+ 	      && POINTER_TYPE_P (TREE_TYPE (base))
+ 	      && SSA_NAME_VAR (base)
+ 	      && TREE_CODE (SSA_NAME_VAR (base)) == PARM_DECL
+ 	      && lookup_attribute ("clobber *this",
+ 				   DECL_ATTRIBUTES (SSA_NAME_VAR (base))))
+ 	    {
+ 	      found_clobber_deref_this = true;
+ 	      break;
+ 	    }
+ 
  	  if (!is_gimple_assign (def_stmt))
  	    break;
  
*************** maybe_warn_operand (ao_ref &ref, gimple
*** 702,708 ****
    /* Do not warn if it can be initialized outside this function.
       If we did not reach function entry then we found killing
       clobbers on all paths to entry.  */
!   if (!found_alloc && fentry_reached)
      {
        if (TREE_CODE (base) == SSA_NAME)
  	{
--- 721,727 ----
    /* Do not warn if it can be initialized outside this function.
       If we did not reach function entry then we found killing
       clobbers on all paths to entry.  */
!   if ((!found_alloc && !found_clobber_deref_this) && fentry_reached)
      {
        if (TREE_CODE (base) == SSA_NAME)
  	{
diff -Nrcpad gcc-16-20250928/gcc/tree-vect-loop.cc gcc-16-20251005/gcc/tree-vect-loop.cc
*** gcc-16-20250928/gcc/tree-vect-loop.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree-vect-loop.cc	Sun Oct  5 22:33:56 2025
*************** vectorizable_reduction (loop_vec_info lo
*** 7177,7182 ****
--- 7177,7191 ----
    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 ();
*************** vectorizable_reduction (loop_vec_info lo
*** 7187,7193 ****
      return false;
  
    /* Do not try to vectorize bit-precision reductions.  */
!   if (!type_has_mode_precision_p (op.type))
      return false;
  
    /* Lane-reducing ops also never can be used in a SLP reduction group
--- 7196,7205 ----
      return false;
  
    /* Do not try to vectorize bit-precision reductions.  */
!   if (!type_has_mode_precision_p (op.type)
!       && op.code != BIT_AND_EXPR
!       && op.code != BIT_IOR_EXPR
!       && op.code != BIT_XOR_EXPR)
      return false;
  
    /* Lane-reducing ops also never can be used in a SLP reduction group
diff -Nrcpad gcc-16-20250928/gcc/tree.h gcc-16-20251005/gcc/tree.h
*** gcc-16-20250928/gcc/tree.h	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/tree.h	Sun Oct  5 22:33:56 2025
*************** extern void omp_clause_range_check_faile
*** 900,905 ****
--- 900,918 ----
  #define UNUSED_LABEL_P(NODE) \
    (LABEL_DECL_CHECK (NODE)->base.default_def_flag)
  
+ /* Label used to goto around artificial .DEFERRED_INIT code for
+    C++ -ftrivial-auto-var-init= purposes with a goto around it.
+    VACUOUS_INIT_LABEL_P flag is used on the lab LABEL_DECL in:
+    goto lab;
+    lab1:
+    v1 = .DEFERRED_INIT (...);
+    v2 = .DEFERRED_INIT (...);
+    lab2:
+    v3 = .DEFERRED_INIT (...);
+    lab:  */
+ #define VACUOUS_INIT_LABEL_P(NODE) \
+   (LABEL_DECL_CHECK (NODE)->base.nothrow_flag)
+ 
  /* Nonzero means this expression is volatile in the C sense:
     its address should be of type `volatile WHATEVER *'.
     In other words, the declared item is volatile qualified.
*************** tree_code_for_canonical_type_merging (en
*** 5960,5966 ****
    return code;
  }
  
! /* Return ture if get_alias_set care about TYPE_CANONICAL of given type.
     We don't define the types for pointers, arrays and vectors.  The reason is
     that pointers are handled specially: ptr_type_node accesses conflict with
     accesses to all other pointers.  This is done by alias.cc.
--- 5973,5979 ----
    return code;
  }
  
! /* Return true if get_alias_set care about TYPE_CANONICAL of given type.
     We don't define the types for pointers, arrays and vectors.  The reason is
     that pointers are handled specially: ptr_type_node accesses conflict with
     accesses to all other pointers.  This is done by alias.cc.
*************** fndecl_built_in_p (const_tree node, buil
*** 7005,7010 ****
--- 7018,7032 ----
  					name1, names...));
  }
  
+ /* Returns true if the function decl NODE is an alloca. */
+ inline bool
+ fndecl_builtin_alloc_p (const_tree node)
+ {
+   if (!fndecl_built_in_p (node, BUILT_IN_NORMAL))
+     return false;
+   return ALLOCA_FUNCTION_CODE_P (DECL_FUNCTION_CODE (node));
+ }
+ 
  /* A struct for encapsulating location information about an operator
     and the operation built from it.
  
diff -Nrcpad gcc-16-20250928/gcc/vr-values.cc gcc-16-20251005/gcc/vr-values.cc
*** gcc-16-20250928/gcc/vr-values.cc	Sun Sep 28 22:34:25 2025
--- gcc-16-20251005/gcc/vr-values.cc	Sun Oct  5 22:33:56 2025
*************** range_from_loop_direction (irange &r, tr
*** 278,291 ****
      r.set_varying (type);
    else if (dir == EV_DIR_GROWS)
      {
!       if (wi::gt_p (begin.lower_bound (), end.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, begin.lower_bound (), end.upper_bound ());
      }
    else
      {
!       if (wi::gt_p (end.lower_bound (), begin.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, end.lower_bound (), begin.upper_bound ());
--- 278,291 ----
      r.set_varying (type);
    else if (dir == EV_DIR_GROWS)
      {
!       if (wi::ge_p (begin.lower_bound (), end.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, begin.lower_bound (), end.upper_bound ());
      }
    else
      {
!       if (wi::ge_p (end.lower_bound (), begin.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, end.lower_bound (), begin.upper_bound ());
diff -Nrcpad gcc-16-20250928/libatomic/ChangeLog gcc-16-20251005/libatomic/ChangeLog
*** gcc-16-20250928/libatomic/ChangeLog	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libatomic/ChangeLog	Sun Oct  5 22:33:56 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2025-07-31  Yury Khrustalev  <yury.khrustalev@arm.com>
  
  	* config/linux/aarch64/host-config.h (__ifunc_arg_t):
diff -Nrcpad gcc-16-20250928/libatomic/Makefile.in gcc-16-20251005/libatomic/Makefile.in
*** gcc-16-20250928/libatomic/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libatomic/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 104,110 ****
--- 104,112 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 309,314 ****
--- 311,317 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libatomic/aclocal.m4 gcc-16-20251005/libatomic/aclocal.m4
*** gcc-16-20250928/libatomic/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libatomic/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1188,1194 ****
--- 1188,1196 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/multi.m4])
diff -Nrcpad gcc-16-20250928/libatomic/configure gcc-16-20251005/libatomic/configure
*** gcc-16-20250928/libatomic/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libatomic/configure	Sun Oct  5 22:34:20 2025
*************** MAINTAINER_MODE_TRUE
*** 669,680 ****
  enable_static
  enable_shared
  lt_host_flags
- CPP
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
  OBJDUMP
  LN_S
  ac_ct_DUMPBIN
--- 669,681 ----
  enable_static
  enable_shared
  lt_host_flags
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
+ CPP
  OBJDUMP
  LN_S
  ac_ct_DUMPBIN
*************** fi
*** 1612,1617 ****
--- 1613,1655 ----
  
  } # ac_fn_c_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1689,1731 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1727,1732 ----
*************** test -z "$deplibs_check_method" && depli
*** 6160,6167 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6161,6565 ----
  
  
  
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6172,6178 ****
--- 6570,6688 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
  
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6267,6283 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6777,6791 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6484,6492 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6992,7006 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** fi
*** 6815,6821 ****
  
  
  
- 
  # Check whether --enable-libtool-lock was given.
  if test "${enable_libtool_lock+set}" = set; then :
    enableval=$enable_libtool_lock;
--- 7329,7334 ----
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 7639,7782 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 8152,8157 ----
*************** else
*** 11458,11464 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11461 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11833,11839 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11836 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11564,11570 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11567 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11939,11945 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11942 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libatomic/testsuite/Makefile.in gcc-16-20251005/libatomic/testsuite/Makefile.in
*** gcc-16-20250928/libatomic/testsuite/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libatomic/testsuite/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 91,97 ****
--- 91,99 ----
  subdir = testsuite
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 171,176 ****
--- 173,179 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libbacktrace/ChangeLog gcc-16-20251005/libbacktrace/ChangeLog
*** gcc-16-20250928/libbacktrace/ChangeLog	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libbacktrace/ChangeLog	Sun Oct  5 22:33:56 2025
***************
*** 1,3 ****
--- 1,13 ----
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* Makefile.in: Regenerated.
+ 	* aclocal.m4: Likewise.
+ 	* configure: Likewise.
+ 
+ 2025-09-28  Ian Lance Taylor  <iant@golang.org>
+ 
+ 	* filetype.awk: Recognize PE bigobj objects at configure time.
+ 
  2025-04-10  John David Anglin  <danglin@gcc.gnu.org>
  
  	* fileline.c (hpux_get_executable_path): New.
diff -Nrcpad gcc-16-20250928/libbacktrace/Makefile.in gcc-16-20251005/libbacktrace/Makefile.in
*** gcc-16-20250928/libbacktrace/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libbacktrace/Makefile.in	Sun Oct  5 22:34:20 2025
*************** TESTS = $(am__append_4) $(MAKETESTS) $(a
*** 171,177 ****
--- 171,179 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 904,909 ****
--- 906,912 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libbacktrace/aclocal.m4 gcc-16-20251005/libbacktrace/aclocal.m4
*** gcc-16-20250928/libbacktrace/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libbacktrace/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 853,859 ****
--- 853,861 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/libbacktrace/configure gcc-16-20251005/libbacktrace/configure
*** gcc-16-20250928/libbacktrace/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libbacktrace/configure	Sun Oct  5 22:34:20 2025
*************** LIPO
*** 691,696 ****
--- 691,697 ----
  NMEDIT
  DSYMUTIL
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -n "$target_alias" &&
*** 2739,2745 ****
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_prefix=${target_alias}-
- 
  target_alias=${target_alias-$host_alias}
  
  # Expand $ac_aux_dir to an absolute path.
--- 2740,2745 ----
*************** test -z "$deplibs_check_method" && depli
*** 6606,6613 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6606,6871 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6618,6624 ****
--- 6876,6994 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6713,6729 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7083,7097 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6930,6938 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7298,7312 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 11636,11642 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11639 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12010,12016 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12013 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11742,11748 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11745 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12116,12122 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12119 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libbacktrace/configure.ac gcc-16-20251005/libbacktrace/configure.ac
*** gcc-16-20250928/libbacktrace/configure.ac	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libbacktrace/configure.ac	Sun Oct  5 22:33:56 2025
*************** if test -n "${with_target_subdir}"; then
*** 37,43 ****
    AM_ENABLE_MULTILIB(, ..)
  fi
  
! AC_CANONICAL_SYSTEM
  target_alias=${target_alias-$host_alias}
  
  AC_USE_SYSTEM_EXTENSIONS
--- 37,44 ----
    AM_ENABLE_MULTILIB(, ..)
  fi
  
! AC_CANONICAL_HOST
! AC_CANONICAL_TARGET
  target_alias=${target_alias-$host_alias}
  
  AC_USE_SYSTEM_EXTENSIONS
diff -Nrcpad gcc-16-20250928/libcc1/ChangeLog gcc-16-20251005/libcc1/ChangeLog
*** gcc-16-20250928/libcc1/ChangeLog	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libcc1/ChangeLog	Sun Oct  5 22:33:56 2025
***************
*** 1,3 ****
--- 1,14 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* Makefile.in: Regenerated.
+ 	* aclocal.m4: Likewise.
+ 	* configure: Likewise.
+ 
  2025-07-25  David Malcolm  <dmalcolm@redhat.com>
  
  	* context.cc: Update usage of "diagnostic_info" to explicitly
diff -Nrcpad gcc-16-20250928/libcc1/Makefile.in gcc-16-20251005/libcc1/Makefile.in
*** gcc-16-20250928/libcc1/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libcc1/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 94,99 ****
--- 94,100 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/gcc-plugin.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 284,289 ****
--- 285,291 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libcc1/aclocal.m4 gcc-16-20251005/libcc1/aclocal.m4
*** gcc-16-20250928/libcc1/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libcc1/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1169,1174 ****
--- 1169,1175 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
  m4_include([../config/gcc-plugin.m4])
diff -Nrcpad gcc-16-20250928/libcc1/configure gcc-16-20251005/libcc1/configure
*** gcc-16-20250928/libcc1/configure	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libcc1/configure	Sun Oct  5 22:33:56 2025
*************** NMEDIT
*** 660,665 ****
--- 660,666 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 5861,5868 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 5862,6127 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 5873,5879 ****
--- 6132,6250 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 5968,5984 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6339,6353 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6185,6193 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6554,6568 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 10890,10896 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10893 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11265,11271 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11268 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 10996,11002 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10999 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11371,11377 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11374 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libffi/ChangeLog gcc-16-20251005/libffi/ChangeLog
*** gcc-16-20250928/libffi/ChangeLog	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libffi/ChangeLog	Sun Oct  5 22:33:56 2025
***************
*** 1,3 ****
--- 1,12 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* include/Makefile.in: Regenerate.
+ 	* man/Makefile.in: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2024-10-24  Yang Yujie  <yangyujie@loongson.cn>
  
  	* src/loongarch64/ffi.c: Avoid defining floats
diff -Nrcpad gcc-16-20250928/libffi/Makefile.in gcc-16-20251005/libffi/Makefile.in
*** gcc-16-20250928/libffi/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libffi/Makefile.in	Sun Oct  5 22:34:20 2025
*************** ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
*** 100,107 ****
--- 100,109 ----
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 356,361 ****
--- 358,364 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libffi/aclocal.m4 gcc-16-20251005/libffi/aclocal.m4
*** gcc-16-20250928/libffi/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libffi/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1190,1197 ****
--- 1190,1199 ----
  m4_include([../config/acx.m4])
  m4_include([../config/asmcfi.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/libffi/configure gcc-16-20251005/libffi/configure
*** gcc-16-20250928/libffi/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libffi/configure	Sun Oct  5 22:34:20 2025
*************** READELF
*** 671,677 ****
  ENABLE_DARWIN_AT_RPATH_FALSE
  ENABLE_DARWIN_AT_RPATH_TRUE
  CXXCPP
- CPP
  OTOOL64
  OTOOL
  LIPO
--- 671,676 ----
*************** NMEDIT
*** 679,684 ****
--- 678,685 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
+ CPP
  OBJDUMP
  LN_S
  NM
*************** fi
*** 1667,1672 ****
--- 1668,1710 ----
  
  } # ac_fn_cxx_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1744,1786 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1782,1787 ----
*************** test -z "$deplibs_check_method" && depli
*** 6390,6397 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6391,6794 ----
  
  
  
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6402,6408 ****
--- 6799,6917 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
  
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6497,6513 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7006,7020 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6714,6722 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7221,7235 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 7868,8011 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 8381,8386 ----
*************** else
*** 11688,11694 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11691 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12063,12069 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12066 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11794,11800 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11797 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12169,12175 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12172 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libffi/include/Makefile.in gcc-16-20251005/libffi/include/Makefile.in
*** gcc-16-20250928/libffi/include/Makefile.in	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libffi/include/Makefile.in	Sun Oct  5 22:33:56 2025
*************** ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
*** 94,101 ****
--- 94,103 ----
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 228,233 ****
--- 230,236 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libffi/man/Makefile.in gcc-16-20251005/libffi/man/Makefile.in
*** gcc-16-20250928/libffi/man/Makefile.in	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libffi/man/Makefile.in	Sun Oct  5 22:33:56 2025
*************** ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
*** 93,100 ****
--- 93,102 ----
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 210,215 ****
--- 212,218 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libffi/testsuite/Makefile.in gcc-16-20251005/libffi/testsuite/Makefile.in
*** gcc-16-20250928/libffi/testsuite/Makefile.in	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libffi/testsuite/Makefile.in	Sun Oct  5 22:33:56 2025
*************** ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
*** 93,100 ****
--- 93,102 ----
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 183,188 ****
--- 185,191 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgcc/ChangeLog gcc-16-20251005/libgcc/ChangeLog
*** gcc-16-20250928/libgcc/ChangeLog	Sun Sep 28 22:34:26 2025
--- gcc-16-20251005/libgcc/ChangeLog	Sun Oct  5 22:33:56 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-09-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/t-softfp: Don't use softfp_wrap for bitint functions.
+ 	(softfp_cflags): New parameter that is passed to the building of bitint
+ 	functions.
+ 
  2025-09-25  John David Anglin  <danglin@gcc.gnu.org>
  
  	* config/pa/sync-libfuncs.c (atomic_store_8): Fix asm.
diff -Nrcpad gcc-16-20250928/libgcc/config/t-softfp gcc-16-20251005/libgcc/config/t-softfp
*** gcc-16-20250928/libgcc/config/t-softfp	Sun Sep 28 22:34:27 2025
--- gcc-16-20251005/libgcc/config/t-softfp	Sun Oct  5 22:33:57 2025
*************** softfp_bid_list += bitintpow10 \
*** 73,84 ****
  					floatti$(m) floatunti$(m))
  endif
  
  softfp_func_list := \
    $(foreach m,$(softfp_float_modes), \
                $(softfp_float_funcs) \
                $(foreach i,$(softfp_int_modes), \
                            $(softfp_floatint_funcs))) \
-   $(foreach m,sf df,$(softfp_floatbitint_funcs)) \
    $(foreach e,$(softfp_extensions),extend$(e)2) \
    $(foreach t,$(softfp_truncations),trunc$(t)2) \
    $(softfp_extras)
--- 73,87 ----
  					floatti$(m) floatunti$(m))
  endif
  
+ softfp_bitint_func_list :=  \
+   $(foreach m,sf df,$(softfp_floatbitint_funcs)) \
+   $(bitint_extras)
+ 
  softfp_func_list := \
    $(foreach m,$(softfp_float_modes), \
                $(softfp_float_funcs) \
                $(foreach i,$(softfp_int_modes), \
                            $(softfp_floatint_funcs))) \
    $(foreach e,$(softfp_extensions),extend$(e)2) \
    $(foreach t,$(softfp_truncations),trunc$(t)2) \
    $(softfp_extras)
*************** softfp_func_list := $(filter-out floatdi
*** 93,99 ****
  endif
  
  ifeq ($(softfp_compat),y)
! softfp_file_list := $(addsuffix .c,$(softfp_func_list))
  
  ifeq ($(enable_shared),yes)
  softfp_map_dep := libgcc.map.in
--- 96,103 ----
  endif
  
  ifeq ($(softfp_compat),y)
! softfp_file_list := $(addsuffix .c,$(softfp_func_list)) \
! 		    $(addsuffix .c,$(softfp_bitint_func_list))
  
  ifeq ($(enable_shared),yes)
  softfp_map_dep := libgcc.map.in
*************** else
*** 124,129 ****
--- 128,135 ----
  softfp_file_list := \
    $(addsuffix .c,$(addprefix $(srcdir)/soft-fp/,$(softfp_func_list)))
  endif
+ softfp_file_list += \
+   $(addsuffix .c,$(addprefix $(srcdir)/soft-fp/,$(softfp_bitint_func_list)))
  endif
  softfp_bid_file_list := \
    $(addsuffix .c,$(addprefix $(srcdir)/soft-fp/,$(softfp_bid_list)))
*************** soft-fp-objects-base = $(basename $(notd
*** 137,143 ****
  soft-fp-objects = $(addsuffix $(objext), $(soft-fp-objects-base)) \
    $(addsuffix _s$(objext), $(soft-fp-objects-base))
  
! $(soft-fp-objects) : INTERNAL_CFLAGS += -Wno-missing-prototypes -Wno-type-limits
  
  LIB2ADD += $(softfp_file_list)
  LIB2ADD_ST += $(softfp_bid_file_list)
--- 143,149 ----
  soft-fp-objects = $(addsuffix $(objext), $(soft-fp-objects-base)) \
    $(addsuffix _s$(objext), $(soft-fp-objects-base))
  
! $(soft-fp-objects) : INTERNAL_CFLAGS += -Wno-missing-prototypes -Wno-type-limits $(softfp_cflags)
  
  LIB2ADD += $(softfp_file_list)
  LIB2ADD_ST += $(softfp_bid_file_list)
diff -Nrcpad gcc-16-20250928/libgcobol/ChangeLog gcc-16-20251005/libgcobol/ChangeLog
*** gcc-16-20250928/libgcobol/ChangeLog	Sun Sep 28 22:34:27 2025
--- gcc-16-20251005/libgcobol/ChangeLog	Sun Oct  5 22:33:57 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2025-09-05  Robert Dubner  <rdubner@symas.com>
  
  	* common-defs.h (enum cbl_field_attr_t): Define register_e.
diff -Nrcpad gcc-16-20250928/libgcobol/Makefile.in gcc-16-20251005/libgcobol/Makefile.in
*** gcc-16-20250928/libgcobol/Makefile.in	Sun Sep 28 22:34:27 2025
--- gcc-16-20251005/libgcobol/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 117,123 ****
  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
! am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lib-ld.m4 \
--- 117,125 ----
  @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@	-Wl,-rpath,@loader_path
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
! am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
! 	$(top_srcdir)/../config/depstand.m4 \
! 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lib-ld.m4 \
*************** LIBQUADSPEC = @LIBQUADSPEC@
*** 295,300 ****
--- 297,303 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBICONV = @LTLIBICONV@
  LTLIBOBJS = @LTLIBOBJS@
diff -Nrcpad gcc-16-20250928/libgcobol/aclocal.m4 gcc-16-20251005/libgcobol/aclocal.m4
*** gcc-16-20250928/libgcobol/aclocal.m4	Sun Sep 28 22:34:27 2025
--- gcc-16-20251005/libgcobol/aclocal.m4	Sun Oct  5 22:33:57 2025
*************** AC_SUBST([am__tar])
*** 1167,1173 ****
--- 1167,1175 ----
  AC_SUBST([am__untar])
  ]) # _AM_PROG_TAR
  
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/iconv.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lib-ld.m4])
diff -Nrcpad gcc-16-20250928/libgcobol/configure gcc-16-20251005/libgcobol/configure
*** gcc-16-20250928/libgcobol/configure	Sun Sep 28 22:34:28 2025
--- gcc-16-20251005/libgcobol/configure	Sun Oct  5 22:33:57 2025
*************** OTOOL
*** 669,674 ****
--- 669,675 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  ac_ct_DUMPBIN
*************** test -z "$deplibs_check_method" && depli
*** 6747,6754 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6748,7013 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6759,6765 ****
--- 7018,7136 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6854,6870 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7225,7239 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7071,7079 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7440,7454 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 11810,11816 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11813 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12185,12191 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12188 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11916,11922 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11919 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12291,12297 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12294 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libgfortran/ChangeLog gcc-16-20251005/libgfortran/ChangeLog
*** gcc-16-20250928/libgfortran/ChangeLog	Sun Sep 28 22:34:28 2025
--- gcc-16-20251005/libgfortran/ChangeLog	Sun Oct  5 22:33:57 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2025-09-02  Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/87669
diff -Nrcpad gcc-16-20250928/libgfortran/Makefile.in gcc-16-20251005/libgfortran/Makefile.in
*** gcc-16-20250928/libgfortran/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgfortran/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 159,165 ****
  
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
! am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
--- 159,167 ----
  
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
! am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
! 	$(top_srcdir)/../config/depstand.m4 \
! 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
*************** LIBQUADSPEC = @LIBQUADSPEC@
*** 835,840 ****
--- 837,843 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgfortran/aclocal.m4 gcc-16-20251005/libgfortran/aclocal.m4
*** gcc-16-20250928/libgfortran/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgfortran/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__tar])
*** 1167,1173 ****
--- 1167,1175 ----
  AC_SUBST([am__untar])
  ]) # _AM_PROG_TAR
  
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/hwcaps.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
diff -Nrcpad gcc-16-20250928/libgfortran/configure gcc-16-20251005/libgfortran/configure
*** gcc-16-20250928/libgfortran/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgfortran/configure	Sun Oct  5 22:34:20 2025
*************** OTOOL
*** 665,670 ****
--- 665,671 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 7786,7793 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7787,8052 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7798,7804 ****
--- 8057,8175 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7893,7909 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 8264,8278 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 8110,8118 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 8479,8493 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12847,12853 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12850 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 13222,13228 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 13225 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12953,12959 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12956 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 13328,13334 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 13331 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libgm2/ChangeLog gcc-16-20251005/libgm2/ChangeLog
*** gcc-16-20250928/libgm2/ChangeLog	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/ChangeLog	Sun Oct  5 22:33:57 2025
***************
*** 1,3 ****
--- 1,14 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* libm2cor/Makefile.in: Regenerate.
+ 	* libm2iso/Makefile.in: Regenerate.
+ 	* libm2log/Makefile.in: Regenerate.
+ 	* libm2min/Makefile.in: Regenerate.
+ 	* libm2pim/Makefile.in: Regenerate.
+ 
  2025-09-19  Gaius Mulley  <gaiusmod2@gmail.com>
  
  	* libm2pim/Makefile.am (M2MODS): Add M2Diagnostic.mod.
diff -Nrcpad gcc-16-20250928/libgm2/Makefile.in gcc-16-20251005/libgm2/Makefile.in
*** gcc-16-20250928/libgm2/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgm2/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 91,97 ****
--- 91,99 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 215,220 ****
--- 217,223 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgm2/aclocal.m4 gcc-16-20251005/libgm2/aclocal.m4
*** gcc-16-20250928/libgm2/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgm2/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1188,1194 ****
--- 1188,1196 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/no-executables.m4])
diff -Nrcpad gcc-16-20250928/libgm2/configure gcc-16-20251005/libgm2/configure
*** gcc-16-20250928/libgm2/configure	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/configure	Sun Oct  5 22:33:57 2025
*************** OTOOL
*** 656,661 ****
--- 656,662 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  ac_ct_DUMPBIN
  DUMPBIN
*************** test -z "$deplibs_check_method" && depli
*** 9791,9798 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 9792,10057 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 9803,9809 ****
--- 10062,10180 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 9898,9914 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 10269,10283 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 10115,10123 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 10484,10498 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 14854,14860 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 14857 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 15229,15235 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 15232 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 14960,14966 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 14963 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 15335,15341 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 15338 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libgm2/libm2cor/Makefile.in gcc-16-20251005/libgm2/libm2cor/Makefile.in
*** gcc-16-20250928/libgm2/libm2cor/Makefile.in	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/libm2cor/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 109,115 ****
--- 109,117 ----
  subdir = libm2cor
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 292,297 ****
--- 294,300 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgm2/libm2iso/Makefile.in gcc-16-20251005/libgm2/libm2iso/Makefile.in
*** gcc-16-20250928/libgm2/libm2iso/Makefile.in	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/libm2iso/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 109,115 ****
--- 109,117 ----
  subdir = libm2iso
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 318,323 ****
--- 320,326 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgm2/libm2log/Makefile.in gcc-16-20251005/libgm2/libm2log/Makefile.in
*** gcc-16-20250928/libgm2/libm2log/Makefile.in	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/libm2log/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 109,115 ****
--- 109,117 ----
  subdir = libm2log
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 281,286 ****
--- 283,289 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgm2/libm2min/Makefile.in gcc-16-20251005/libgm2/libm2min/Makefile.in
*** gcc-16-20250928/libgm2/libm2min/Makefile.in	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/libm2min/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 109,115 ****
--- 109,117 ----
  subdir = libm2min
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 271,276 ****
--- 273,279 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgm2/libm2pim/Makefile.in gcc-16-20251005/libgm2/libm2pim/Makefile.in
*** gcc-16-20250928/libgm2/libm2pim/Makefile.in	Sun Sep 28 22:34:29 2025
--- gcc-16-20251005/libgm2/libm2pim/Makefile.in	Sun Oct  5 22:33:57 2025
*************** target_triplet = @target@
*** 109,115 ****
--- 109,117 ----
  subdir = libm2pim
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 309,314 ****
--- 311,317 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgomp/ChangeLog gcc-16-20251005/libgomp/ChangeLog
*** gcc-16-20250928/libgomp/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libgomp/ChangeLog	Sun Oct  5 22:34:01 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2025-09-18  Tobias Burnus  <tburnus@baylibre.com>
  	    Sandra Loosemore  <sloosemore@baylibre.com>
  
diff -Nrcpad gcc-16-20250928/libgomp/Makefile.in gcc-16-20251005/libgomp/Makefile.in
*** gcc-16-20250928/libgomp/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgomp/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 125,133 ****
--- 125,135 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/ax_count_cpus.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 397,402 ****
--- 399,405 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgomp/aclocal.m4 gcc-16-20251005/libgomp/aclocal.m4
*** gcc-16-20250928/libgomp/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgomp/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1169,1177 ****
--- 1169,1179 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/ax_count_cpus.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
  m4_include([../config/futex.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/multi.m4])
diff -Nrcpad gcc-16-20250928/libgomp/configure gcc-16-20251005/libgomp/configure
*** gcc-16-20250928/libgomp/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgomp/configure	Sun Oct  5 22:34:20 2025
*************** ENABLE_DARWIN_AT_RPATH_TRUE
*** 688,699 ****
  enable_static
  enable_shared
  lt_host_flags
- CPP
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
  OBJDUMP
  LN_S
  NM
--- 688,700 ----
  enable_static
  enable_shared
  lt_host_flags
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
+ CPP
  OBJDUMP
  LN_S
  NM
*************** fi
*** 1636,1641 ****
--- 1637,1679 ----
  
  } # ac_fn_c_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1713,1755 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1751,1756 ----
*************** test -z "$deplibs_check_method" && depli
*** 6171,6178 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6172,6576 ----
  
  
  
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6183,6189 ****
--- 6581,6699 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
  
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6278,6294 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6788,6802 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6495,6503 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7003,7017 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** fi
*** 6826,6832 ****
  
  
  
- 
  # Check whether --enable-libtool-lock was given.
  if test "${enable_libtool_lock+set}" = set; then :
    enableval=$enable_libtool_lock;
--- 7340,7345 ----
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 7650,7793 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 8163,8168 ----
*************** else
*** 11469,11475 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11472 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11844,11850 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11847 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11575,11581 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11578 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11950,11956 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11953 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libgomp/testsuite/Makefile.in gcc-16-20251005/libgomp/testsuite/Makefile.in
*** gcc-16-20250928/libgomp/testsuite/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgomp/testsuite/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = testsuite
*** 92,100 ****
--- 92,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/ax_count_cpus.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 175,180 ****
--- 177,183 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgrust/ChangeLog gcc-16-20251005/libgrust/ChangeLog
*** gcc-16-20250928/libgrust/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libgrust/ChangeLog	Sun Oct  5 22:34:03 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* libformat_parser/Makefile.in: Regenerate.
+ 	* libproc_macro_internal/Makefile.in: Regenerate.
+ 
  2025-08-05  Marc Poulhiès  <dkm@kataplop.net>
  
  	* libproc_macro_internal/ffistring.h (FFIString__new): Likewise.
diff -Nrcpad gcc-16-20250928/libgrust/Makefile.in gcc-16-20251005/libgrust/Makefile.in
*** gcc-16-20250928/libgrust/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgrust/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 93,100 ****
--- 93,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 210,215 ****
--- 212,218 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgrust/aclocal.m4 gcc-16-20251005/libgrust/aclocal.m4
*** gcc-16-20250928/libgrust/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgrust/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1249,1256 ****
--- 1249,1258 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/no-executables.m4])
diff -Nrcpad gcc-16-20250928/libgrust/configure gcc-16-20251005/libgrust/configure
*** gcc-16-20250928/libgrust/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgrust/configure	Sun Oct  5 22:34:20 2025
*************** LIPO
*** 651,656 ****
--- 651,657 ----
  NMEDIT
  DSYMUTIL
  RANLIB
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 7593,7600 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7594,7859 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7605,7611 ****
--- 7864,7982 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7700,7716 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 8071,8085 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7917,7925 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 8286,8300 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12657,12663 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12660 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 13032,13038 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 13035 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12763,12769 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12766 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 13138,13144 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 13141 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libgrust/libformat_parser/Makefile.in gcc-16-20251005/libgrust/libformat_parser/Makefile.in
*** gcc-16-20250928/libgrust/libformat_parser/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgrust/libformat_parser/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = libformat_parser
*** 92,99 ****
--- 92,101 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 170,175 ****
--- 172,178 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libgrust/libproc_macro_internal/Makefile.in gcc-16-20251005/libgrust/libproc_macro_internal/Makefile.in
*** gcc-16-20250928/libgrust/libproc_macro_internal/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libgrust/libproc_macro_internal/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = libproc_macro_internal
*** 92,99 ****
--- 92,101 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/no-executables.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 170,175 ****
--- 172,178 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libiberty/ChangeLog gcc-16-20251005/libiberty/ChangeLog
*** gcc-16-20250928/libiberty/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libiberty/ChangeLog	Sun Oct  5 22:34:03 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* aclocal.m4: Regenerated.
+ 	* configure: Likewise.
+ 	* configure.ac: Synced from binutils-gdb.
+ 
  2025-08-17  Nathaniel Shead  <nathanieloshead@gmail.com>
  
  	PR c++/120503
diff -Nrcpad gcc-16-20250928/libiberty/aclocal.m4 gcc-16-20251005/libiberty/aclocal.m4
*** gcc-16-20250928/libiberty/aclocal.m4	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libiberty/aclocal.m4	Sun Oct  5 22:34:03 2025
***************
*** 14,19 ****
--- 14,20 ----
  m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/enable.m4])
  m4_include([../config/gcc-plugin.m4])
  m4_include([../config/hwcaps.m4])
diff -Nrcpad gcc-16-20250928/libiberty/configure gcc-16-20251005/libiberty/configure
*** gcc-16-20250928/libiberty/configure	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libiberty/configure	Sun Oct  5 22:34:03 2025
*************** INSTALL_PROGRAM
*** 640,645 ****
--- 640,648 ----
  OUTPUT_OPTION
  NO_MINUS_C_MINUS_O
  ac_libiberty_warn_cflags
+ RANLIB_PLUGIN_OPTION
+ AR_PLUGIN_OPTION
+ LLVM_CONFIG
  EGREP
  GREP
  CPP
*************** CPPFLAGS
*** 650,657 ****
  LDFLAGS
  CFLAGS
  CC
- RANLIB_PLUGIN_OPTION
- AR_PLUGIN_OPTION
  RANLIB
  AR
  host_os
--- 653,658 ----
*************** else
*** 2947,3090 ****
  fi
  
  
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
- $as_echo_n "checking for -plugin option... " >&6; }
- 
- plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
- plugin_option=
- for plugin in $plugin_names; do
-   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
-   if test x$plugin_so = x$plugin; then
-     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
-   fi
-   if test x$plugin_so != x$plugin; then
-     plugin_option="--plugin $plugin_so"
-     break
-   fi
- done
- if test -n "$ac_tool_prefix"; then
-   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if ${ac_cv_prog_AR+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   if test -n "$AR"; then
-   ac_cv_prog_AR="$AR" # Let the user override the test.
- else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
- for as_dir in $PATH
- do
-   IFS=$as_save_IFS
-   test -z "$as_dir" && as_dir=.
-     for ac_exec_ext in '' $ac_executable_extensions; do
-   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-     ac_cv_prog_AR="${ac_tool_prefix}ar"
-     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-   done
- IFS=$as_save_IFS
- 
- fi
- fi
- AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
- $as_echo "$AR" >&6; }
- else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
- 
- 
- fi
- if test -z "$ac_cv_prog_AR"; then
-   ac_ct_AR=$AR
-   # Extract the first word of "ar", so it can be a program name with args.
- set dummy ar; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if ${ac_cv_prog_ac_ct_AR+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   if test -n "$ac_ct_AR"; then
-   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
- else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
- for as_dir in $PATH
- do
-   IFS=$as_save_IFS
-   test -z "$as_dir" && as_dir=.
-     for ac_exec_ext in '' $ac_executable_extensions; do
-   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-     ac_cv_prog_ac_ct_AR="ar"
-     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-   done
- IFS=$as_save_IFS
- 
- fi
- fi
- ac_ct_AR=$ac_cv_prog_ac_ct_AR
- if test -n "$ac_ct_AR"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
- $as_echo "$ac_ct_AR" >&6; }
- else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
- 
-   if test "x$ac_ct_AR" = x; then
-     AR=""
-   else
-     case $cross_compiling:$ac_tool_warned in
- yes:)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
- $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
- ac_tool_warned=yes ;;
- esac
-     AR=$ac_ct_AR
-   fi
- else
-   AR="$ac_cv_prog_AR"
- fi
- 
- if test "${AR}" = "" ; then
-   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
- fi
- touch conftest.c
- ${AR} $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
- $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
-   plugin_option=
- fi
- rm -f conftest.*
- if test -n "$plugin_option"; then
-   PLUGIN_OPTION="$plugin_option"
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
- $as_echo "$plugin_option" >&6; }
- else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
- 
- if test -n "$PLUGIN_OPTION"; then
-   if $AR --help 2>&1 | grep -q "\--plugin"; then
-     AR_PLUGIN_OPTION="$PLUGIN_OPTION"
- 
-   fi
-   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
-     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
- 
-   fi
- fi
- 
  # Add --enable-multilib to configure.
  # Default to --enable-multilib
  # Check whether --enable-multilib was given.
--- 2948,2953 ----
*************** fi
*** 4616,4621 ****
--- 4479,4889 ----
  
  ac_c_preproc_warn_flag=yes
  
+ # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+ # wrong PLUGIN_OPTION with clang.
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+ $as_echo_n "checking for clang... " >&6; }
+ if ${clang_cv_is_clang+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ #ifdef __clang__
+   yes
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "yes" >/dev/null 2>&1; then :
+   clang_cv_is_clang=yes
+ else
+   clang_cv_is_clang=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+ $as_echo "$clang_cv_is_clang" >&6; }
+   plugin_file=
+   if test $clang_cv_is_clang = yes; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+ $as_echo_n "checking for clang plugin file... " >&6; }
+     plugin_names="LLVMgold.so"
+     for plugin in $plugin_names; do
+       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+       if test x$plugin_file = x$plugin; then
+ 	if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$LLVM_CONFIG"; then
+   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+ if test -n "$LLVM_CONFIG"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+ $as_echo "$LLVM_CONFIG" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+   # Extract the first word of "llvm-config", so it can be a program name with args.
+ set dummy llvm-config; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_LLVM_CONFIG"; then
+   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+ $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_LLVM_CONFIG" = x; then
+     LLVM_CONFIG=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+   fi
+ else
+   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+ fi
+ 
+ 	if test "$?" != 0; then
+ 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ 	fi
+ 	clang_lib_dir=`$LLVM_CONFIG --libdir`
+ 	if test -f $clang_lib_dir/$plugin; then
+ 	  plugin_file=$clang_lib_dir/$plugin
+ 	fi
+ 	if test x$plugin_file != x$plugin; then
+ 	  break;
+ 	fi
+       fi
+     done
+     if test -z $plugin_file; then
+       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+     fi
+         if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+     if test "${AR}" = "" ; then
+       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+     fi
+     plugin_option="--plugin $plugin_file"
+     touch conftest.c
+     ${AR} $plugin_option rc conftest.a conftest.c
+     if test "$?" != 0; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+       plugin_file=
+     fi
+     rm -f conftest.*
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+ $as_echo "$plugin_file" >&6; }
+   fi
+   PLUGIN_FILE="$plugin_file"
+ 
+ if test -n "$PLUGIN_FILE"; then
+   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+ $as_echo_n "checking for -plugin option... " >&6; }
+ 
+ plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
+ for plugin in $plugin_names; do
+   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
+   if test x$plugin_so = x$plugin; then
+     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
+   fi
+   if test x$plugin_so != x$plugin; then
+     plugin_option="--plugin $plugin_so"
+     break
+   fi
+ done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   PLUGIN_OPTION="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
+ if test -n "$PLUGIN_OPTION"; then
+   case "$AR" in
+   *"$PLUGIN_OPTION"*)
+     ;;
+   *)
+     if $AR --help 2>&1 | grep -q "\--plugin"; then
+       AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+ 
+     fi
+     ;;
+   esac
+   case "$RANLIB" in
+   *"$PLUGIN_OPTION"*)
+     ;;
+   *)
+     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+       RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+ 
+     fi
+     ;;
+   esac
+ fi
+ 
  ac_ext=c
  ac_cpp='$CPP $CPPFLAGS'
  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
diff -Nrcpad gcc-16-20250928/libiberty/configure.ac gcc-16-20251005/libiberty/configure.ac
*** gcc-16-20250928/libiberty/configure.ac	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libiberty/configure.ac	Sun Oct  5 22:34:03 2025
*************** dnl to call AC_CHECK_PROG.
*** 114,131 ****
  AC_CHECK_TOOL(AR, ar)
  AC_CHECK_TOOL(RANLIB, ranlib, :)
  
- GCC_PLUGIN_OPTION(PLUGIN_OPTION)
- if test -n "$PLUGIN_OPTION"; then
-   if $AR --help 2>&1 | grep -q "\--plugin"; then
-     AR_PLUGIN_OPTION="$PLUGIN_OPTION"
-     AC_SUBST(AR_PLUGIN_OPTION)
-   fi
-   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
-     RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
-     AC_SUBST(RANLIB_PLUGIN_OPTION)
-   fi
- fi
- 
  dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
  # Add --enable-multilib to configure.
  # Default to --enable-multilib
--- 114,119 ----
*************** AC_USE_SYSTEM_EXTENSIONS
*** 176,181 ****
--- 164,200 ----
  AC_SYS_LARGEFILE
  AC_PROG_CPP_WERROR
  
+ # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+ # wrong PLUGIN_OPTION with clang.
+ CLANG_PLUGIN_FILE(PLUGIN_FILE)
+ if test -n "$PLUGIN_FILE"; then
+   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+ else
+   GCC_PLUGIN_OPTION(PLUGIN_OPTION)
+ fi
+ if test -n "$PLUGIN_OPTION"; then
+   case "$AR" in
+   *"$PLUGIN_OPTION"*)
+     ;;
+   *)
+     if $AR --help 2>&1 | grep -q "\--plugin"; then
+       AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+       AC_SUBST(AR_PLUGIN_OPTION)
+     fi
+     ;;
+   esac
+   case "$RANLIB" in
+   *"$PLUGIN_OPTION"*)
+     ;;
+   *)
+     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+       RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+       AC_SUBST(RANLIB_PLUGIN_OPTION)
+     fi
+     ;;
+   esac
+ fi
+ 
  ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \
  			  -Wstrict-prototypes \
  			  -Wshadow=local], [ac_libiberty_warn_cflags])
diff -Nrcpad gcc-16-20250928/libitm/ChangeLog gcc-16-20251005/libitm/ChangeLog
*** gcc-16-20250928/libitm/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libitm/ChangeLog	Sun Oct  5 22:34:03 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2025-05-09  David Malcolm  <dmalcolm@redhat.com>
  
  	PR other/116792
diff -Nrcpad gcc-16-20250928/libitm/Makefile.in gcc-16-20251005/libitm/Makefile.in
*** gcc-16-20250928/libitm/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libitm/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 97,105 ****
--- 97,107 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/mmap.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 358,363 ****
--- 360,366 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libitm/aclocal.m4 gcc-16-20251005/libitm/aclocal.m4
*** gcc-16-20250928/libitm/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libitm/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1189,1197 ****
--- 1189,1199 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/asmcfi.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
  m4_include([../config/futex.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/hwcaps.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/mmap.m4])
diff -Nrcpad gcc-16-20250928/libitm/configure gcc-16-20251005/libitm/configure
*** gcc-16-20250928/libitm/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libitm/configure	Sun Oct  5 22:34:20 2025
*************** ENABLE_DARWIN_AT_RPATH_TRUE
*** 665,676 ****
  enable_static
  enable_shared
  CXXCPP
- CPP
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
  OBJDUMP
  LN_S
  ac_ct_DUMPBIN
--- 665,677 ----
  enable_static
  enable_shared
  CXXCPP
  OTOOL64
  OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
+ CPP
  OBJDUMP
  LN_S
  ac_ct_DUMPBIN
*************** fi
*** 1662,1667 ****
--- 1663,1705 ----
  
  } # ac_fn_cxx_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1739,1781 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1777,1782 ----
*************** test -z "$deplibs_check_method" && depli
*** 6832,6839 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6833,7237 ----
  
  
  
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6844,6850 ****
--- 7242,7360 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
  
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6939,6955 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7449,7463 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7156,7164 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7664,7678 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** fi
*** 7487,7493 ****
  
  
  
- 
  # Check whether --enable-libtool-lock was given.
  if test "${enable_libtool_lock+set}" = set; then :
    enableval=$enable_libtool_lock;
--- 8001,8006 ----
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 8311,8454 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 8824,8829 ----
*************** else
*** 12131,12137 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12134 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12506,12512 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12509 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12237,12243 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12240 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12612,12618 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12615 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libitm/testsuite/Makefile.in gcc-16-20251005/libitm/testsuite/Makefile.in
*** gcc-16-20250928/libitm/testsuite/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libitm/testsuite/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = testsuite
*** 92,100 ****
--- 92,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/asmcfi.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/mmap.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 180,185 ****
--- 182,188 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libobjc/ChangeLog gcc-16-20251005/libobjc/ChangeLog
*** gcc-16-20250928/libobjc/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libobjc/ChangeLog	Sun Oct  5 22:34:04 2025
***************
*** 1,3 ****
--- 1,8 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2024-09-23  Andrew Kreimer  <algonell@gmail.com>
  
  	* Makefile.in: s/overrridden/overridden.
diff -Nrcpad gcc-16-20250928/libobjc/aclocal.m4 gcc-16-20251005/libobjc/aclocal.m4
*** gcc-16-20250928/libobjc/aclocal.m4	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libobjc/aclocal.m4	Sun Oct  5 22:34:04 2025
*************** m4_include([../ltsugar.m4])
*** 150,155 ****
--- 150,157 ----
  m4_include([../ltversion.m4])
  m4_include([../lt~obsolete.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/libobjc/configure gcc-16-20251005/libobjc/configure
*** gcc-16-20250928/libobjc/configure	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libobjc/configure	Sun Oct  5 22:34:04 2025
*************** extra_ldflags_libobjc
*** 640,646 ****
  ENABLE_DARWIN_AT_RPATH_FALSE
  ENABLE_DARWIN_AT_RPATH_TRUE
  SET_MAKE
- CPP
  OTOOL64
  OTOOL
  LIPO
--- 640,645 ----
*************** NMEDIT
*** 648,653 ****
--- 647,654 ----
  DSYMUTIL
  AWK
  STRIP
+ LLVM_CONFIG
+ CPP
  LN_S
  NM
  ac_ct_DUMPBIN
*************** fi
*** 1556,1561 ****
--- 1557,1599 ----
  
  } # ac_fn_c_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1633,1675 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1671,1676 ----
*************** test -z "$deplibs_check_method" && depli
*** 5506,5513 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 5507,5910 ----
  
  
  
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 5518,5524 ****
--- 5915,6033 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
  
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 5613,5629 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6122,6136 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 5830,5838 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6337,6351 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 7032,7175 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 7545,7550 ----
*************** else
*** 10876,10882 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10879 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11251,11257 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11254 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 10982,10988 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10985 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11357,11363 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11360 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libphobos/ChangeLog gcc-16-20251005/libphobos/ChangeLog
*** gcc-16-20250928/libphobos/ChangeLog	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libphobos/ChangeLog	Sun Oct  5 22:34:04 2025
***************
*** 1,3 ****
--- 1,12 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* libdruntime/Makefile.in: Regenerate.
+ 	* src/Makefile.in: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2025-09-07  Sam James  <sam@gentoo.org>
  
  	* configure.tgt: Add hppa[12]*-*-linux* as a supported target.
diff -Nrcpad gcc-16-20250928/libphobos/Makefile.in gcc-16-20251005/libphobos/Makefile.in
*** gcc-16-20250928/libphobos/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libphobos/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 109,115 ****
--- 109,117 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBS = @LIBS@
*** 249,254 ****
--- 251,257 ----
  LIBTOOL = @LIBTOOL@
  LIBZ = @LIBZ@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libphobos/aclocal.m4 gcc-16-20251005/libphobos/aclocal.m4
*** gcc-16-20250928/libphobos/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libphobos/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 874,880 ****
--- 874,882 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/libphobos/configure gcc-16-20251005/libphobos/configure
*** gcc-16-20250928/libphobos/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libphobos/configure	Sun Oct  5 22:34:20 2025
*************** OTOOL
*** 719,724 ****
--- 719,725 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 6835,6842 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6836,7101 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6847,6853 ****
--- 7106,7224 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6942,6958 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7313,7327 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7159,7167 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7528,7542 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 11864,11870 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11867 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12239,12245 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12242 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11970,11976 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11973 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12345,12351 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12348 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libphobos/libdruntime/Makefile.in gcc-16-20251005/libphobos/libdruntime/Makefile.in
*** gcc-16-20250928/libphobos/libdruntime/Makefile.in	Sun Sep 28 22:35:05 2025
--- gcc-16-20251005/libphobos/libdruntime/Makefile.in	Sun Oct  5 22:34:04 2025
*************** subdir = libdruntime
*** 135,141 ****
--- 135,143 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBS = @LIBS@
*** 667,672 ****
--- 669,675 ----
  LIBTOOL = @LIBTOOL@
  LIBZ = @LIBZ@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libphobos/src/Makefile.in gcc-16-20251005/libphobos/src/Makefile.in
*** gcc-16-20250928/libphobos/src/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libphobos/src/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = src
*** 94,100 ****
--- 94,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBS = @LIBS@
*** 402,407 ****
--- 404,410 ----
  LIBTOOL = @LIBTOOL@
  LIBZ = @LIBZ@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libphobos/testsuite/Makefile.in gcc-16-20251005/libphobos/testsuite/Makefile.in
*** gcc-16-20250928/libphobos/testsuite/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libphobos/testsuite/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = testsuite
*** 94,100 ****
--- 94,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBS = @LIBS@
*** 193,198 ****
--- 195,201 ----
  LIBTOOL = @LIBTOOL@
  LIBZ = @LIBZ@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libquadmath/ChangeLog gcc-16-20251005/libquadmath/ChangeLog
*** gcc-16-20250928/libquadmath/ChangeLog	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libquadmath/ChangeLog	Sun Oct  5 22:34:05 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2025-04-09  Jakub Jelinek  <jakub@redhat.com>
  
  	* math/expq.c (C): Fix up THREEp96 constant.
diff -Nrcpad gcc-16-20250928/libquadmath/Makefile.in gcc-16-20251005/libquadmath/Makefile.in
*** gcc-16-20250928/libquadmath/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libquadmath/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 94,100 ****
--- 94,102 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 360,365 ****
--- 362,368 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libquadmath/aclocal.m4 gcc-16-20251005/libquadmath/aclocal.m4
*** gcc-16-20250928/libquadmath/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libquadmath/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1168,1174 ****
--- 1168,1176 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/multi.m4])
diff -Nrcpad gcc-16-20250928/libquadmath/configure gcc-16-20251005/libquadmath/configure
*** gcc-16-20250928/libquadmath/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libquadmath/configure	Sun Oct  5 22:34:20 2025
*************** NMEDIT
*** 662,667 ****
--- 662,668 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 5859,5866 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 5860,6125 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 5871,5877 ****
--- 6130,6248 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 5966,5982 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6337,6351 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6183,6191 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6552,6566 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 10922,10928 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10925 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11297,11303 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11300 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11028,11034 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11031 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11403,11409 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11406 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libsanitizer/ChangeLog gcc-16-20251005/libsanitizer/ChangeLog
*** gcc-16-20250928/libsanitizer/ChangeLog	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/ChangeLog	Sun Oct  5 22:34:05 2025
***************
*** 1,3 ****
--- 1,17 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* asan/Makefile.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* hwasan/Makefile.in: Regenerate.
+ 	* interception/Makefile.in: Regenerate.
+ 	* libbacktrace/Makefile.in: Regenerate.
+ 	* lsan/Makefile.in: Regenerate.
+ 	* sanitizer_common/Makefile.in: Regenerate.
+ 	* tsan/Makefile.in: Regenerate.
+ 	* ubsan/Makefile.in: Regenerate.
+ 
  2025-05-02  Florian Weimer  <fweimer@redhat.com>
  	    Tom Stellard  <tstellar@redhat.com>
  
diff -Nrcpad gcc-16-20250928/libsanitizer/Makefile.in gcc-16-20251005/libsanitizer/Makefile.in
*** gcc-16-20250928/libsanitizer/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 101,107 ****
--- 101,109 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 263,268 ****
--- 265,271 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/aclocal.m4 gcc-16-20251005/libsanitizer/aclocal.m4
*** gcc-16-20250928/libsanitizer/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1188,1194 ****
--- 1188,1196 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/libstdc++-raw-cxx.m4])
  m4_include([../config/multi.m4])
diff -Nrcpad gcc-16-20250928/libsanitizer/asan/Makefile.in gcc-16-20251005/libsanitizer/asan/Makefile.in
*** gcc-16-20250928/libsanitizer/asan/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/asan/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 96,102 ****
--- 96,104 ----
  subdir = asan
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 316,321 ****
--- 318,324 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/configure gcc-16-20251005/libsanitizer/configure
*** gcc-16-20250928/libsanitizer/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/configure	Sun Oct  5 22:34:20 2025
*************** LIPO
*** 678,683 ****
--- 678,684 ----
  NMEDIT
  DSYMUTIL
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 7446,7453 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7447,7712 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7458,7464 ****
--- 7717,7835 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7553,7569 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7924,7938 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7770,7778 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 8139,8153 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12475,12481 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12478 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12850,12856 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12853 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12581,12587 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12584 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12956,12962 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12959 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libsanitizer/hwasan/Makefile.in gcc-16-20251005/libsanitizer/hwasan/Makefile.in
*** gcc-16-20250928/libsanitizer/hwasan/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/hwasan/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 95,101 ****
--- 95,103 ----
  subdir = hwasan
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 309,314 ****
--- 311,317 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/interception/Makefile.in gcc-16-20251005/libsanitizer/interception/Makefile.in
*** gcc-16-20250928/libsanitizer/interception/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/interception/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 92,98 ****
--- 92,100 ----
  subdir = interception
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 235,240 ****
--- 237,243 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/libbacktrace/Makefile.in gcc-16-20251005/libsanitizer/libbacktrace/Makefile.in
*** gcc-16-20250928/libsanitizer/libbacktrace/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/libbacktrace/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 123,129 ****
--- 123,131 ----
  subdir = libbacktrace
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 285,290 ****
--- 287,293 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/lsan/Makefile.in gcc-16-20251005/libsanitizer/lsan/Makefile.in
*** gcc-16-20250928/libsanitizer/lsan/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/lsan/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 94,100 ****
--- 94,102 ----
  subdir = lsan
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 280,285 ****
--- 282,288 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/sanitizer_common/Makefile.in gcc-16-20251005/libsanitizer/sanitizer_common/Makefile.in
*** gcc-16-20250928/libsanitizer/sanitizer_common/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libsanitizer/sanitizer_common/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 98,104 ****
--- 98,106 ----
  subdir = sanitizer_common
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 273,278 ****
--- 275,281 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/tsan/Makefile.in gcc-16-20251005/libsanitizer/tsan/Makefile.in
*** gcc-16-20250928/libsanitizer/tsan/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/tsan/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 95,101 ****
--- 95,103 ----
  subdir = tsan
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 309,314 ****
--- 311,317 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libsanitizer/ubsan/Makefile.in gcc-16-20251005/libsanitizer/ubsan/Makefile.in
*** gcc-16-20250928/libsanitizer/ubsan/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libsanitizer/ubsan/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 94,100 ****
--- 94,102 ----
  subdir = ubsan
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 274,279 ****
--- 276,282 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libssp/ChangeLog gcc-16-20251005/libssp/ChangeLog
*** gcc-16-20250928/libssp/ChangeLog	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libssp/ChangeLog	Sun Oct  5 22:34:05 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	* Makefile.am [LIBSSP_USE_SYMVER_SUN] (ssp.map-sun): Pass
diff -Nrcpad gcc-16-20250928/libssp/Makefile.in gcc-16-20251005/libssp/Makefile.in
*** gcc-16-20250928/libssp/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libssp/Makefile.in	Sun Oct  5 22:34:05 2025
*************** subdir = .
*** 94,101 ****
--- 94,103 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/multi.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 262,267 ****
--- 264,270 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libssp/aclocal.m4 gcc-16-20251005/libssp/aclocal.m4
*** gcc-16-20250928/libssp/aclocal.m4	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libssp/aclocal.m4	Sun Oct  5 22:34:05 2025
*************** AC_SUBST([am__untar])
*** 1169,1176 ****
--- 1169,1178 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/multi.m4])
diff -Nrcpad gcc-16-20250928/libssp/configure gcc-16-20251005/libssp/configure
*** gcc-16-20250928/libssp/configure	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libssp/configure	Sun Oct  5 22:34:05 2025
*************** NMEDIT
*** 648,653 ****
--- 648,654 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 6101,6108 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 6102,6367 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 6113,6119 ****
--- 6372,6490 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 6208,6224 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6579,6593 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 6425,6433 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6794,6808 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 11164,11170 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11167 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11539,11545 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11542 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11270,11276 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11273 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11645,11651 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11648 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libstdc++-v3/ChangeLog gcc-16-20251005/libstdc++-v3/ChangeLog
*** gcc-16-20250928/libstdc++-v3/ChangeLog	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libstdc++-v3/ChangeLog	Sun Oct  5 22:34:05 2025
***************
*** 1,3 ****
--- 1,86 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* doc/Makefile.in: Regenerate.
+ 	* include/Makefile.in: Regenerate.
+ 	* libsupc++/Makefile.in: Regenerate.
+ 	* po/Makefile.in: Regenerate.
+ 	* python/Makefile.in: Regenerate.
+ 	* src/Makefile.in: Regenerate.
+ 	* src/c++11/Makefile.in: Regenerate.
+ 	* src/c++17/Makefile.in: Regenerate.
+ 	* src/c++20/Makefile.in: Regenerate.
+ 	* src/c++23/Makefile.in: Regenerate.
+ 	* src/c++26/Makefile.in: Regenerate.
+ 	* src/c++98/Makefile.in: Regenerate.
+ 	* src/experimental/Makefile.in: Regenerate.
+ 	* src/filesystem/Makefile.in: Regenerate.
+ 	* src/libbacktrace/Makefile.in: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
+ 2025-10-03  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* doc/html/manual/index.html: Regenerated.
+ 	* doc/html/manual/status.html: Regenerated.
+ 	* doc/xml/manual/status_cxx2020.xml: Added status table.
+ 
+ 2025-10-01  François Dumont  <frs.dumont@gmail.com>
+ 
+ 	* include/std/vector (std::erase_if, std::erase): Replace _GLIBCXX20_CONSTEXPR
+ 	with 'constexpr' and remove implied 'inline' keyword.
+ 	* include/std/string (std::erase_if, std::erase): Likewise.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Use
+ 	wcslen(cs) instead of sizeof(cs)-1.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/20_util/unique_ptr/modifiers/93562.cc: Define a
+ 	separate deleter for array cases.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
+ 	(Cvt::do_length): Fix signature to override virtual function in
+ 	base.
+ 	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc:
+ 	(Cvt::do_length): Likewise.
+ 	* testsuite/27_io/basic_filebuf/underflow/char/1.cc
+ 	(NoconvCvt::do_in): Likewise.
+ 	* testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
+ 	(checksumcvt::do_length): Likewise.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/22_locale/time_get/get/char/3.cc: Add parentheses to
+ 	x == y|z expression.
+ 	* testsuite/22_locale/time_get/get/wchar_t/3.cc: Likewise.
+ 	* testsuite/28_regex/algorithms/regex_match/multiline.cc:
+ 	Likewise.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_uninitialized.h (uninitialized_copy)
+ 	(uninitialized_fill, uninitialized_fill_n): Use pragmas to
+ 	suppress -Wclass-memaccess warnings.
+ 
+ 2025-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/std/memory/polymorphic/copy.cc: Fix spelling of
+ 	typedef.
+ 
+ 2025-09-30  François Dumont  <frs.dumont@gmail.com>
+ 
+ 	* include/std/inplace_vector:
+ 	(std::swap(inplace_vector<>&, inplace_vector<>&)): Remove the duplicated
+ 	implementation at std namespace level. Keep the friend inline one.
+ 	(inplace_vector<Tp, 0>::assign(initializer_list<>)): Add missing return
+ 	statement.
+ 
  2025-09-27  Jonathan Wakely  <jwakely@redhat.com>
  
  	* testsuite/20_util/allocator_traits/members/allocate_hint.cc:
diff -Nrcpad gcc-16-20250928/libstdc++-v3/Makefile.in gcc-16-20251005/libstdc++-v3/Makefile.in
*** gcc-16-20250928/libstdc++-v3/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libstdc++-v3/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 91,98 ****
--- 91,100 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 263,268 ****
--- 265,271 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/aclocal.m4 gcc-16-20251005/libstdc++-v3/aclocal.m4
*** gcc-16-20250928/libstdc++-v3/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libstdc++-v3/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 853,860 ****
--- 853,862 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/enable.m4])
  m4_include([../config/futex.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/hwcaps.m4])
  m4_include([../config/iconv.m4])
  m4_include([../config/lead-dot.m4])
diff -Nrcpad gcc-16-20250928/libstdc++-v3/configure gcc-16-20251005/libstdc++-v3/configure
*** gcc-16-20250928/libstdc++-v3/configure	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libstdc++-v3/configure	Sun Oct  5 22:34:05 2025
*************** OTOOL
*** 802,807 ****
--- 802,808 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  NM
  ac_ct_DUMPBIN
*************** test -z "$deplibs_check_method" && depli
*** 7089,7096 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7090,7355 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7101,7107 ****
--- 7360,7478 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
  
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7196,7212 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7567,7581 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7413,7421 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7782,7796 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12280,12286 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12283 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12655,12661 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12658 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12386,12392 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12389 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12761,12767 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12764 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** $as_echo "$glibcxx_cv_atomic_word" >&6;
*** 16048,16054 ****
      # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 16051 "configure"
  #include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
  int main()
  {
--- 16423,16429 ----
      # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 16426 "configure"
  #include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h"
  int main()
  {
*************** $as_echo "mutex" >&6; }
*** 16194,16200 ****
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 16197 "configure"
  int main()
  {
    _Decimal32 d1;
--- 16569,16575 ----
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 16572 "configure"
  int main()
  {
    _Decimal32 d1;
*************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
*** 16236,16242 ****
    # unnecessary for this test.
  
    cat > conftest.$ac_ext << EOF
! #line 16239 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
--- 16611,16617 ----
    # unnecessary for this test.
  
    cat > conftest.$ac_ext << EOF
! #line 16614 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
*************** $as_echo "$glibcxx_cv_libbacktrace_atomi
*** 53544,53550 ****
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 53547 "configure"
  #include <stddef.h>
  int main()
  {
--- 53919,53925 ----
      CXXFLAGS='-O0 -S'
  
      cat > conftest.$ac_ext << EOF
! #line 53922 "configure"
  #include <stddef.h>
  int main()
  {
diff -Nrcpad gcc-16-20250928/libstdc++-v3/doc/Makefile.in gcc-16-20251005/libstdc++-v3/doc/Makefile.in
*** gcc-16-20250928/libstdc++-v3/doc/Makefile.in	Sun Sep 28 22:35:06 2025
--- gcc-16-20251005/libstdc++-v3/doc/Makefile.in	Sun Oct  5 22:34:05 2025
*************** target_triplet = @target@
*** 91,98 ****
--- 91,100 ----
  subdir = doc
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 222,227 ****
--- 224,230 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/doc/html/manual/index.html gcc-16-20251005/libstdc++-v3/doc/html/manual/index.html
*** gcc-16-20250928/libstdc++-v3/doc/html/manual/index.html	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/doc/html/manual/index.html	Sun Oct  5 22:34:05 2025
*************** Support for C++11 dialect.
*** 145,151 ****
  	  </a></dt><dt>21.10. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.3.3.23">Non-unique Mapping Containers</a></dt><dt>21.11. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.3.5">Point Iterator Hierarchy</a></dt><dt>21.12. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.4.5">Invalidation Guarantee Tags Hierarchy</a></dt><dt>21.13. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.5.7.4">Container Tag Hierarchy</a></dt><dt>21.14. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.3">Hash functions, ranged-hash functions, and
  	      range-hashing functions</a></dt><dt>21.15. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.4">Insert hash sequence diagram</a></dt><dt>21.16. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.6">Insert hash sequence diagram with a null policy</a></dt><dt>21.17. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.5.5">Hash policy class diagram</a></dt><dt>21.18. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.4.7">Balls and bins</a></dt><dt>21.19. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.6">Insert resize sequence diagram</a></dt><dt>21.20. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.9">Standard resize policy trigger sequence
  		diagram</a></dt><dt>21.21. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.10">Standard resize policy size sequence
! 		diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.par2ts_simd_support">Support for Extended ABI Tags</a></dt><dt>1.9. <a href="status.html#table.cxx20_features">C++ 2020 Library Features</a></dt><dt>1.10. <a href="status.html#table.cxx23_features">C++ 2023 Library Features</a></dt><dt>1.11. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.12. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.13. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.cxx23_headers">C++ 2023 Library Headers</a></dt><dt>3.12. <a href="using_headers.html#table.cxx26_headers">C++ 2026 Library Headers</a></dt><dt>3.13. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.14. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.15. <a href="using_headers.html#table.networkingts_headers">Networking TS Headers</a></dt><dt>3.16. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.17. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.18. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.19. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.20. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.21. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.22. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
  		A Standard String Hash Function
  	      </a></dt><dt>21.6. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.12">
  		Only k String DNA Hash
--- 145,151 ----
  	  </a></dt><dt>21.10. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.3.3.23">Non-unique Mapping Containers</a></dt><dt>21.11. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.3.5">Point Iterator Hierarchy</a></dt><dt>21.12. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.4.5">Invalidation Guarantee Tags Hierarchy</a></dt><dt>21.13. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.5.7.4">Container Tag Hierarchy</a></dt><dt>21.14. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.3">Hash functions, ranged-hash functions, and
  	      range-hashing functions</a></dt><dt>21.15. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.4">Insert hash sequence diagram</a></dt><dt>21.16. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.6">Insert hash sequence diagram with a null policy</a></dt><dt>21.17. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.5.5">Hash policy class diagram</a></dt><dt>21.18. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.4.7">Balls and bins</a></dt><dt>21.19. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.6">Insert resize sequence diagram</a></dt><dt>21.20. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.9">Standard resize policy trigger sequence
  		diagram</a></dt><dt>21.21. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.10">Standard resize policy size sequence
! 		diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.par2ts_simd_support">Support for Extended ABI Tags</a></dt><dt>1.9. <a href="status.html#table.cxx20_features">C++ 2020 Library Features</a></dt><dt>1.10. <a href="status.html#table.cxx20_status">C++ 2020 Implementation Status</a></dt><dt>1.11. <a href="status.html#table.cxx23_features">C++ 2023 Library Features</a></dt><dt>1.12. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.13. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.14. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.cxx23_headers">C++ 2023 Library Headers</a></dt><dt>3.12. <a href="using_headers.html#table.cxx26_headers">C++ 2026 Library Headers</a></dt><dt>3.13. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.14. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.15. <a href="using_headers.html#table.networkingts_headers">Networking TS Headers</a></dt><dt>3.16. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.17. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.18. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.19. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.20. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.21. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.22. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
  		A Standard String Hash Function
  	      </a></dt><dt>21.6. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.12">
  		Only k String DNA Hash
diff -Nrcpad gcc-16-20250928/libstdc++-v3/doc/html/manual/status.html gcc-16-20251005/libstdc++-v3/doc/html/manual/status.html
*** gcc-16-20250928/libstdc++-v3/doc/html/manual/status.html	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/doc/html/manual/status.html	Sun Oct  5 22:34:06 2025
*************** Note 1: This feature is supported in old
*** 1759,1765 ****
  Note 2: The C++20 calendar types are supported since 11.1,
  time zones and UTC are supported since 13.1,
  and <code class="function">chrono::parse</code> is supported since 14.1.
! </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.2020.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is also specified by previous standards,
        see <a class="link" href="status.html#iso.1998.specific" title="Implementation Specific Behavior">C++ 1998/2003 Implementation
        Specific Behavior</a>, <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++
        2011 Implementation Specific Behavior</a>, and
--- 1759,1859 ----
  Note 2: The C++20 calendar types are supported since 11.1,
  time zones and UTC are supported since 13.1,
  and <code class="function">chrono::parse</code> is supported since 14.1.
! </p><p>
! The following status table is based on the table of contents of
! ISO/IEC 14882:2020.
! Some subclauses are not shown in the table where the content is unchanged
! since C++17 and the implementation is complete.
! </p><div class="table"><a id="table.cxx20_status"></a><p class="title"><strong>Table 1.10. C++ 2020 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ 2020 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
! 	<span class="emphasis"><em>17</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Language support library</em></span>
!       </td></tr><tr><td align="left">17.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.2</td><td align="left">Common definitions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.2.1</td><td align="left">Header <code class="code">&lt;cstddef&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.2.2</td><td align="left">Header <code class="code">&lt;cstdlib&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.2.3</td><td align="left">Null pointers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.2.4</td><td align="left">Sizes, alignments, and offsets</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.2.5</td><td align="left"><code class="code">byte</code> type operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.3</td><td align="left">Implementation properties</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.3.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.3.2</td><td align="left">Header <code class="code">&lt;version&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.3.3</td><td align="left">Header <code class="code">&lt;limits&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.3.4</td><td align="left">Floating-point type properties</td><td align="left"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">17.3.4.1</td><td align="left">Type <code class="code">float_round_style</code></td><td align="left">N</td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">17.3.4.2</td><td align="left">Type <code class="code">float_denorm_style</code></td><td align="left">N</td><td align="left"> </td></tr><tr><td align="left">17.3.5</td><td align="left">Class template <code class="code">numeric_limits</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.3.6</td><td align="left">Header <code class="code">&lt;climits&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.3.7</td><td align="left">Header <code class="code">&lt;cfloat&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.4</td><td align="left">Integer types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.4.2</td><td align="left">Header <code class="code">&lt;cstdint&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">17.5</td><td align="left">Startup and termination</td><td align="left">Partial</td><td align="left">C library dependency for quick_exit, at_quick_exit</td></tr><tr><td align="left">17.6</td><td align="left">Dynamic memory management</td><td align="left">Y</td><td class="auto-generated"> </td></tr><tr><td align="left">17.7</td><td align="left">Type identification</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.8</td><td align="left">Source location</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.8.1</td><td align="left">Header <code class="code">&lt;source_location&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.8.2</td><td align="left">Class <code class="code">source_location</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.9</td><td align="left">Exception handling</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.10</td><td align="left">Initializer lists</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11</td><td align="left">Comparisons</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.11.1</td><td align="left">Header <code class="code">&lt;compare&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11.2</td><td align="left">Comparison category types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11.3</td><td align="left">Class template <code class="code">common_comparison_category</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11.4</td><td align="left">Concept <code class="code">three_way_comparable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11.5</td><td align="left">Result of three-way comparison</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.11.6</td><td align="left">Comparison algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.12</td><td align="left">Coroutines</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.12.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">17.12.2</td><td align="left">Header <code class="code">&lt;coroutine&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.12.3</td><td align="left">Coroutine traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.12.4</td><td align="left">Class template <code class="code">coroutine_handle</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.12.5</td><td align="left">No-op coroutines</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">17.13</td><td align="left">Other runtime support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>18</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Concepts library</em></span>
!       </td></tr><tr><td align="left">18.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.2</td><td align="left">Equality preservation</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.3</td><td align="left">Header <code class="code">&lt;concepts&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4</td><td align="left">Language-related concepts</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.4.2</td><td align="left">Concept <code class="code">same_as</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.3</td><td align="left">Concept <code class="code">derived_from</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.4</td><td align="left">Concept <code class="code">convertible_to</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.5</td><td align="left">Concept <code class="code">common_reference_with</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.6</td><td align="left">Concept <code class="code">common_with</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.7</td><td align="left">Arithmetic concepts</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.4.8</td><td align="left">Concept <code class="code">assignable_from</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.9</td><td align="left">Concept <code class="code">swappable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.10</td><td align="left">Concept <code class="code">destructible</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.11</td><td align="left">Concept <code class="code">constructible_from</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.12</td><td align="left">Concept <code class="code">default_initializable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.13</td><td align="left">Concept <code class="code">move_constructible</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.4.14</td><td align="left">Concept <code class="code">copy_constructible</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5</td><td align="left">Comparison concepts</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.5.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.5.2</td><td align="left">Boolean testability</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5.3</td><td align="left">Concept <code class="code">equality_comparable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.5.4</td><td align="left">Concept <code class="code">totally_ordered</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.6</td><td align="left">Object concepts</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7</td><td align="left">Callable concepts</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.7.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">18.7.2</td><td align="left">Concept <code class="code">invocable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.3</td><td align="left">Concept <code class="code">regular_invocable</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.4</td><td align="left">Concept <code class="code">predicate</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.5</td><td align="left">Concept <code class="code">relation</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.6</td><td align="left">Concept <code class="code">equivalence_relation</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">18.7.7</td><td align="left">Concept <code class="code">strict_weak_order</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>19</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Diagnostics library</em></span>
!       </td></tr><tr><td align="left">19.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">19.2</td><td align="left">Exception classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.3</td><td align="left">Assertions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.4</td><td align="left">Error numbers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5</td><td align="left">System error support</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">19.5.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">19.5.2</td><td align="left">Header <code class="code">&lt;system_error&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.3</td><td align="left">Class <code class="code">error_category</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.4</td><td align="left">Class <code class="code">error_code</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.5</td><td align="left">Class <code class="code">error_condition</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.6</td><td align="left">Comparison operator functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.7</td><td align="left">System error hash support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">19.5.8</td><td align="left">Class <code class="code">system_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>20</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>General utilities library</em></span>
!       </td></tr><tr><td align="left">20.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.2</td><td align="left">Utility components</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.2.1</td><td align="left">Header <code class="code">&lt;utility&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.2</td><td align="left"><code class="code">swap</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.3</td><td align="left"><code class="code">exchange</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.4</td><td align="left">Forward/move helpers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.5</td><td align="left">Function template <code class="code">as_const</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.6</td><td align="left">Function template <code class="code">declval</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.2.7</td><td align="left">Integer comparison functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.3</td><td align="left">Compile-time integer sequences</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.4</td><td align="left">Pairs</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.5</td><td align="left">Tuples</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.6</td><td align="left">Optional objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.7</td><td align="left">Variants</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.8</td><td align="left">Storage for any type</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9</td><td align="left">Bitsets</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10</td><td align="left">Memory</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.1</td><td align="left">Class template <code class="code">unique_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left">Y</td><td align="left">Uses code from boost::shared_ptr.</td></tr><tr><td align="left">20.11.4</td><td align="left">Class template <code class="code">weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.5</td><td align="left">Class template <code class="code">owner_less</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">enable_shared_from_this</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Smart pointer hash support</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12</td><td align="left">Memory resources</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code">&lt;memory_resource&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Class <code class="code">memory_resource</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Class template <code class="code">polymorphic_allocator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.4</td><td align="left">Access to program-wide <code class="code">memory_resource</code> objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.5</td><td align="left">Pool resource classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.6</td><td align="left">Class <code class="code">monotonic_buffer_resource</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class template <code class="code">scoped_allocator_adaptor</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14</td><td align="left">Function objects</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.2</td><td align="left">Header <code class="code">&lt;functional&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.3</td><td align="left">Definitions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.4</td><td align="left">Requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.5</td><td align="left">Function template <code class="code">invoke</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.6</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.7</td><td align="left">Arithmetic operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.8</td><td align="left">Comparisons</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.9</td><td align="left">Concept-constrained comparisons</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.10</td><td align="left">Logical operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.11</td><td align="left">Bitwise operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.12</td><td align="left">Class <code class="code">identity</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.13</td><td align="left">Function template <code class="code">not_fn</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.14</td><td align="left">Function template <code class="code">bind_front</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.15</td><td align="left">Function object binders</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.16</td><td align="left">Function template <code class="code">mem_fn</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.17</td><td align="left">Polymorphic function wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.17.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.14.17.2</td><td align="left">Class <code class="code">bad_function_call</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.17.3</td><td align="left">Class template <code class="code">function</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.14.18</td><td align="left">Searchers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15</td><td align="left">Metaprogramming and type traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.15.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.15.2</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.3</td><td align="left">Header <code class="code">&lt;type_traits&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.4</td><td align="left">Helper classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.5</td><td align="left">Unary type traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.6</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.7</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.8</td><td align="left">Transformations between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.9</td><td align="left">Logical operator traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.10</td><td align="left">Member relationships</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.15.11</td><td align="left">Constant evaluation context</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.16</td><td align="left">Compile-time rational arithmetic</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.17</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.18</td><td align="left">Execution policies</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.19</td><td align="left">Primitive numeric conversions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.19.1</td><td align="left">Header <code class="code">&lt;charconv&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.19.2</td><td align="left">Primitive numeric output conversion</td><td align="left">Y</td><td align="left">
!  	Floating-point types up to 64-bit are formatted using
! 	<a class="link" href="https://github.com/ulfjack/ryu" target="_top">Ryu</a>.
! 	Types with greater precision are formatted using the C library
! 	(<code class="function">sprintf</code> and conditionally
! 	<code class="function">strfromf128</code>).
! 	For powerpc64le-unknown-linux-gnu <code class="function">__sprintfieee128</code>
! 	must be provided by Glibc.
!       </td></tr><tr><td align="left">20.19.3</td><td align="left">Primitive numeric input conversion</td><td align="left">Y</td><td align="left">
! 	Floating-point types up to 64-bit are parsed using
! 	<a class="link" href="https://github.com/fastfloat/fast_float" target="_top">fast_float</a>.
! 	Types with greater precision are parsed using the C library
! 	(<code class="function">strtold</code>).
! 	For powerpc64le-unknown-linux-gnu <code class="function">__strtoieee128</code>
! 	must be provided by Glibc.
!       </td></tr><tr><td align="left">20.20</td><td align="left">Formatting</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.20.1</td><td align="left">Header <code class="code">&lt;format&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.2</td><td align="left">Format string</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.20.2.1</td><td align="left"> In general</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.2.2</td><td align="left">Standard format specifiers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.3</td><td align="left">Error reporting</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.4</td><td align="left">Formatting functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.5</td><td align="left">Formatter</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.5.1</td><td align="left">Formatter requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.20.5.2</td><td align="left">Formatter specializations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.5.3</td><td align="left">Class template <code class="code">basic_format_parse_context</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.5.4</td><td align="left">Class template <code class="code">basic_format_context</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.6</td><td align="left">Arguments</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.20.6.1</td><td align="left">Class template <code class="code">basic_format_arg</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.6.2</td><td align="left">Class template <span class="emphasis"><em>format-arg-store</em></span></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.6.3</td><td align="left">Class template <code class="code">basic_format_args</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.20.7</td><td align="left">Class <code class="code">format_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>21</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Strings library</em></span>
!       </td></tr><tr><td align="left">21.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">21.2</td><td align="left">Character traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.3</td><td align="left">String classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">21.4</td><td align="left">String view classes</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">21.5</td><td align="left">Null-terminated sequence utilities</td><td align="left">Partial</td><td align="left">C library dependency.</td></tr><tr><td align="left">
! 	<span class="emphasis"><em>22</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Containers library</em></span>
!       </td></tr><tr><td align="left">22.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.2</td><td align="left">Container requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.3</td><td align="left">Sequence containers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.4</td><td align="left">Associative containers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.5</td><td align="left">Unordered associative containers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.6</td><td align="left">Container adaptors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.7</td><td align="left">Views</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.7.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">22.7.2</td><td align="left">Header <code class="code">&lt;span&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">22.7.3</td><td align="left">Class template <code class="code">span</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>23</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Iterators library</em></span>
!       </td></tr><tr><td align="left">23.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.2</td><td align="left">Header <code class="code">&lt;iterator&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3</td><td align="left">Iterator requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.3.1</td><td align="left">In general</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.2</td><td align="left">Associated types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.3</td><td align="left">Customization points</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.4</td><td align="left">Iterator concepts</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.5</td><td align="left">C++17 iterator requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.6</td><td align="left">Indirect callable requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.3.7</td><td align="left">Common algorithm requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4</td><td align="left">Iterator primitives</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.4.2</td><td align="left">Standard iterator tags</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4.3</td><td align="left">Iterator operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.4.4</td><td align="left">Range iterator operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5</td><td align="left">Iterator adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.5.1</td><td align="left">Reverse iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.2</td><td align="left">Insert iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.3</td><td align="left">Move iterators and sentinels</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.4</td><td align="left">Common iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.5</td><td align="left">Default sentinel</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.6</td><td align="left">Counted iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.5.7</td><td align="left"> Unreachable sentinel</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6</td><td align="left"> Stream iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">23.6.2</td><td align="left"> Class template <code class="code">istream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.3</td><td align="left">Class template <code class="code">ostream_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.4</td><td align="left">Class template <code class="code">istreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.6.5</td><td align="left">Class template <code class="code">ostreambuf_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">23.7</td><td align="left">Range access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>24</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Ranges library</em></span>
!       </td></tr><tr><td align="left">24.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.2</td><td align="left">Header <code class="code">&lt;ranges&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.3</td><td align="left">Range access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4</td><td align="left">Range requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.4.2</td><td align="left">Ranges</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4.3</td><td align="left">Sized ranges</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4.4</td><td align="left">Views</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.4.5</td><td align="left">Other range refinements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5</td><td align="left">Range utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.5.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.5.2</td><td align="left">Helper concepts</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.3</td><td align="left">View interface</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.4</td><td align="left">Sub-ranges</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.5.5</td><td align="left">Dangling iterator handling</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6</td><td align="left">Range factories</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.6.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.6.2</td><td align="left">Empty view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.3</td><td align="left">Single view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.4</td><td align="left">Iota view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.6.5</td><td align="left">Istream view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7</td><td align="left">Range adaptors</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.7.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">24.7.2</td><td align="left">Range adaptor objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.3</td><td align="left">Semiregular wrapper</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.4</td><td align="left">All view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.5</td><td align="left">Filter view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.6</td><td align="left">Transform view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.7</td><td align="left">Take view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.8</td><td align="left">Take while view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.9</td><td align="left">Drop view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.10</td><td align="left">Drop while view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.11</td><td align="left">Join view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.12</td><td align="left">Split view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.13</td><td align="left">Counted view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.14</td><td align="left">Common view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.15</td><td align="left">Reverse view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">24.7.16</td><td align="left">Elements view</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>25</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Algorithms library</em></span>
!       </td></tr><tr><td align="left">25.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.2</td><td align="left">Algorithms requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.3</td><td align="left">Parallel algorithms</td><td align="left"> </td><td align="left">Using <a class="link" href="https://github.com/llvm/llvm-project/tree/main/pstl" target="_top">PSTL</a></td></tr><tr><td align="left">25.4</td><td align="left">Header <code class="code">&lt;algorithm&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.5</td><td align="left">Algorithm result types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6</td><td align="left">Non-modifying sequence operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.6.1</td><td align="left">All of</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.2</td><td align="left">Any of</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.3</td><td align="left">None of</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.4</td><td align="left">For each</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.5</td><td align="left">Find</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.6</td><td align="left">Find end</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.7</td><td align="left">Find first</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.8</td><td align="left">Adjacent find</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.9</td><td align="left">Count</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.10</td><td align="left">Mismatch</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.11</td><td align="left">Equal</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.12</td><td align="left">Is permutation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.6.13</td><td align="left">Search</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7</td><td align="left">Mutating sequence operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.7.1</td><td align="left">Copy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.2</td><td align="left">Move</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.3</td><td align="left">Swap</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.4</td><td align="left">Transform</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.5</td><td align="left">Replace</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.6</td><td align="left">Fill</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.7</td><td align="left">Generate</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.8</td><td align="left">Remove</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.9</td><td align="left">Unique</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.10</td><td align="left">Reverse</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.11</td><td align="left">Rotate</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.12</td><td align="left">Sample</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.13</td><td align="left">Shuffle</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.7.14</td><td align="left">Shift</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8</td><td align="left">Sorting and related operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.8.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.2</td><td align="left">Sorting</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.3</td><td align="left">Nth element</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.4</td><td align="left">Binary search</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.5</td><td align="left">Partitions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.6</td><td align="left">Merge</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.7</td><td align="left">Set operations on sorted structures</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.8</td><td align="left">Heap operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.9</td><td align="left">Minimum and maximum</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.10</td><td align="left">Bounded value</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.11</td><td align="left">Lexicographical comparison</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.12</td><td align="left">Three-way comparison algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.8.13</td><td align="left">Permutation generators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.9</td><td align="left">Header <code class="code">&lt;numeric&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10</td><td align="left">Generalized numeric operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.10.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.10.2</td><td align="left">Definitions</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.10.3</td><td align="left">Accumulate</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.4</td><td align="left">Reduce</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.5</td><td align="left">Inner product</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.6</td><td align="left">Transform reduce</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.7</td><td align="left">Partial sum</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.8</td><td align="left">Exclusive scan</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.9</td><td align="left">Inclusive scan</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.10</td><td align="left">Transform exclusive scan</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.11</td><td align="left">Transform inclusive scan</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.12</td><td align="left">Adjacent difference</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.13</td><td align="left">Iota</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.14</td><td align="left">Greatest common divisor</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.15</td><td align="left">Least common multiple</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.10.16</td><td align="left">Midpoint</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11</td><td align="left">Specialized <code class="code">&lt;memory&gt;</code> algorithms</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.11.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">25.11.2</td><td align="left">Special memory concepts</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.3</td><td align="left"><code class="code">uninitialized_default_construct</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.4</td><td align="left"><code class="code">uninitialized_value_construct</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.5</td><td align="left"><code class="code">uninitialized_copy</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.6</td><td align="left"><code class="code">uninitialized_move</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.7</td><td align="left"><code class="code">uninitialized_fill</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.8</td><td align="left"><code class="code">construct_at</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.11.9</td><td align="left"><code class="code">destroy</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">25.12</td><td align="left">C library algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>26</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Numerics library</em></span>
!       </td></tr><tr><td align="left">26.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.2</td><td align="left">Numeric type requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.3</td><td align="left">The floating-point environment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.4</td><td align="left">Complex numbers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5</td><td align="left">Bit manipulation</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.5.2</td><td align="left">Header <code class="code">&lt;bit&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.3</td><td align="left">Function template <code class="code">bit_cast</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.4</td><td align="left">Integral powers of 2</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.5</td><td align="left">Rotating</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.6</td><td align="left">Counting</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.5.7</td><td align="left">Endian</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.6</td><td align="left">Random number generation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.7</td><td align="left">Numeric arrays</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.8</td><td align="left">Mathematical functions for floating-point types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.9</td><td align="left">Numbers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">26.9.1</td><td align="left">Header <code class="code">&lt;numbers&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">26.9.2</td><td align="left">Mathematical constants</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>27</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Time library</em></span>
!       </td></tr><tr><td align="left">27.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.2</td><td align="left">Header <code class="code">&lt;chrono&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.3</td><td align="left"><span class="emphasis"><em>Cpp17Clock</em></span> requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.4.4</td><td align="left">Class template <code class="code">is_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.5.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.2</td><td align="left">Constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.3</td><td align="left">Observer</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.4</td><td align="left">Arithmetic</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.5</td><td align="left">Special values</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.6</td><td align="left">Non-member arithmetic</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.7</td><td align="left">Comparisons</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.8</td><td align="left">Conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.9</td><td align="left">Suffixes for duration literals</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.10</td><td align="left">Algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.5.11</td><td align="left">I/O</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.7.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.2</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.3</td><td align="left">Class <code class="code">utc_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.4</td><td align="left">Class <code class="code">tai_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.5</td><td align="left">Class <code class="code">gps_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.6</td><td align="left">Type <code class="code">file_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.7</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.8</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.9</td><td align="left">Local time</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.7.10</td><td align="left"><code class="code">time_point</code> conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8</td><td align="left">The civil calendar</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.8.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.8.2</td><td align="left">Class <code class="code">last_spec</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.3</td><td align="left">Class <code class="code">day</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.4</td><td align="left">Class <code class="code">month</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.5</td><td align="left">Class <code class="code">year</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.6</td><td align="left">Class <code class="code">weekday</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.7</td><td align="left">Class <code class="code">weekday_indexed</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.8</td><td align="left">Class <code class="code">weekday_last</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.9</td><td align="left">Class <code class="code">month_day</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.10</td><td align="left">Class <code class="code">month_day_last</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.11</td><td align="left">Class <code class="code">month_weekday</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.12</td><td align="left">Class <code class="code">month_weekday_last</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.13</td><td align="left">Class <code class="code">year_month</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.14</td><td align="left">Class <code class="code">year_month_day</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.15</td><td align="left">Class <code class="code">year_month_day_last</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.16</td><td align="left">Class <code class="code">year_month_weekday</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.8.17</td><td align="left">Class <code class="code">year_month_weekday_last</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.9</td><td align="left">Class template <code class="code">hh_mm_ss</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.10</td><td align="left">12/24 hours functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11</td><td align="left">Time zones</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.11.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">27.11.2</td><td align="left">Time zone database</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.3</td><td align="left">Exception classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.4</td><td align="left">Information classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.5</td><td align="left">Class <code class="code">time_zone</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.6</td><td align="left">Class template <code class="code">zoned_traits</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.7</td><td align="left">Class template <code class="code">zoned_time</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.8</td><td align="left">Class <code class="code">leap_second</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.11.9</td><td align="left">Class <code class="code">time_zone_link</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.12</td><td align="left">Formatting</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.13</td><td align="left">Parsing</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">27.14</td><td align="left">Header <code class="code">&lt;ctime&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>28</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Localization library</em></span>
!       </td></tr><tr><td align="left">28.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">28.2</td><td align="left">Header <code class="code">&lt;locale&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.3</td><td align="left">Locales</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">28.3.1</td><td align="left">Class <code class="code">locale</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.3.2</td><td align="left"><code class="code">locale</code> globals</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.3.3</td><td align="left">Convenience interfaces</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">28.3.3.1</td><td align="left">Character classification</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.3.3.2</td><td align="left">Character conversions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4</td><td align="left">Standard <code class="code">locale</code> categories</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">28.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">28.4.2</td><td align="left">The <code class="code">ctype</code> category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.3</td><td align="left">The numeric category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.4</td><td align="left">The numeric punctuation facet</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.5</td><td align="left">The collate category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.6</td><td align="left">The time category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.7</td><td align="left">The monetary category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.4.8</td><td align="left">The message retrieval category</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">28.5</td><td align="left">C library locales</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>29</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Input/output library</em></span>
!       </td></tr><tr><td align="left">29.1</td><td align="left"> General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.2</td><td align="left">Iostreams requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.2.1</td><td align="left">Imbue limitations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.2.2</td><td align="left">Positioning type limitations</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">29.2.3</td><td align="left">Thread safety</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">29.3</td><td align="left">Forward declarations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.4</td><td align="left">Standard iostream objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.5</td><td align="left">Iostreams base classes</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.6</td><td align="left">Stream buffers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.7</td><td align="left">Formatting and manipulators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.8</td><td align="left">String-based streams</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.9</td><td align="left">File-based streams</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.10</td><td align="left">Synchronized output streams</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.10.1</td><td align="left">Header <code class="code">&lt;syncstream&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.10.2</td><td align="left">Class template <code class="code">basic_syncbuf</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.10.3</td><td align="left">Class template <code class="code">basic_osyncstream</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11</td><td align="left">File systems</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.11.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.11.2</td><td align="left">Conformance</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.3</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.4</td><td align="left">Header <code class="code">&lt;filesystem&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.5</td><td align="left">Error reporting</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.6</td><td align="left">Class <code class="code">path</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.7</td><td align="left">Class <code class="code">filesystem_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8</td><td align="left">Enumerations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.11.8.1</td><td align="left">Enum <code class="code">path::format</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8.2</td><td align="left">Enum class <code class="code">file_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8.3</td><td align="left">Enum class <code class="code">copy_options</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8.4</td><td align="left">Enum class <code class="code">perms</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8.5</td><td align="left">Enum class <code class="code">perm_options</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.8.6</td><td align="left">Enum class <code class="code">directory_options</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.9</td><td align="left">Class <code class="code">file_status</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.10</td><td align="left">Class <code class="code">directory_entry</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.11</td><td align="left">Class <code class="code">directory_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.12</td><td align="left">Class <code class="code">recursive_directory_iterator</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.11.13</td><td align="left">Filesystem operation functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.12</td><td align="left">C library files</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">29.12.1</td><td align="left">Header <code class="code">&lt;cstdio&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">29.12.2</td><td align="left">Header <code class="code">&lt;cinttypes&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>30</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Regular expressions library</em></span>
!       </td></tr><tr><td align="left">30.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.2</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.3</td><td align="left">Header <code class="code">&lt;regex&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.4</td><td align="left">Namespace <code class="code">std::regex_constants</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.5</td><td align="left">Class <code class="code">regex_error</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">30.6</td><td align="left">Class template <code class="code">regex_traits</code></td><td align="left">Partial</td><td align="left"><code class="code">transform_primary</code> is not correctly implemented</td></tr><tr><td align="left">30.7</td><td align="left">Class template <code class="code">basic_regex</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.8</td><td align="left">Class template <code class="code">sub_match</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.9</td><td align="left">Class template <code class="code">match_results</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.10</td><td align="left">Regular expression algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.11</td><td align="left">Regular expression iterators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">30.12</td><td align="left">Modified ECMAScript regular expression grammar</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>31</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Atomics library</em></span>
!       </td></tr><tr><td align="left">31.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.2</td><td align="left">Header <code class="code">&lt;atomic&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.3</td><td align="left">Type aliases</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.4</td><td align="left">Order and consistency</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.5</td><td align="left">Lock-free property</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">31.6</td><td align="left">Waiting and notifying</td><td align="left">Partial</td><td align="left">Waiting and notifying is not supported for volatile objects.</td></tr><tr><td align="left">31.7</td><td align="left">Class template <code class="code">atomic_ref</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">31.7.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">31.7.2</td><td align="left">Operations</td><td align="left">Partial</td><td align="left">
! 	volatile-qualified overloads for <code class="code">wait</code>,
!         <code class="code">notify_one</code>, and <code class="code">notify_all</code> are not provided.
!       </td></tr><tr><td align="left">31.7.3</td><td align="left">Specializations for integral types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.7.4</td><td align="left">Specializations for floating-point types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.7.5</td><td align="left">Partial specialization for pointers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8</td><td align="left">Class template <code class="code">atomic</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">31.8.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">31.8.2</td><td align="left">Operations on atomic types</td><td align="left">Partial</td><td align="left">Waiting and notifying is not supported for volatile objects.</td></tr><tr><td align="left">31.8.3</td><td align="left">Specializations for integers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.4</td><td align="left">Specializations for floating-point types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.5</td><td align="left">Partial specialization for pointers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.6</td><td align="left">Member operators common to integers and pointers to objects</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.7</td><td align="left">Partial specializations for smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">31.8.7.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.7.2</td><td align="left">Partial specialization for <code class="code">shared_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.8.7.3</td><td align="left">Partial specialization for <code class="code">weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.9</td><td align="left">Non-member functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.10</td><td align="left">Flag type and operations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">31.11</td><td align="left">Fences</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>32</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Threads library</em></span>
!       </td></tr><tr><td align="left">32.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.2</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.3</td><td align="left">Stop tokens</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.3.1</td><td align="left">Introduction</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.3.2</td><td align="left">Header <code class="code">&lt;stop_token&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.3.3</td><td align="left">Class <code class="code">stop_token</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.3.4</td><td align="left">Class <code class="code">stop_source</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.3.5</td><td align="left">Class template <code class="code">stop_callback</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.4</td><td align="left">Threads</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.4.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.4.2</td><td align="left">Header <code class="code">&lt;thread&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">32.4.3</td><td align="left">Class <code class="code">thread</code></td><td align="left">Partial</td><td align="left"><code class="code">thread::id</code> comparisons not well-defined</td></tr><tr><td align="left">32.4.4</td><td align="left">Class <code class="code">jthread</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.4.5</td><td align="left">Namespace <code class="code">this_thread</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5</td><td align="left">Mutual exclusion</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.2</td><td align="left">Header <code class="code">&lt;mutex&gt;</code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.3</td><td align="left">Header <code class="code">&lt;shared_mutex&gt;</code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.4</td><td align="left">Mutex requirements</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.4.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.4.2</td><td align="left">Mutex types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.4.3</td><td align="left">Timed mutex types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.4.4</td><td align="left">Shared mutex types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.4.5</td><td align="left">Shared timed mutex types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.5</td><td align="left">Locks</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.6</td><td align="left">Generic locking algorithms</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.5.7</td><td align="left">Call once</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.5.7.1</td><td align="left">Struct <code class="code">once_flag</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">32.5.7.2</td><td align="left">Function <code class="code">call_once</code></td><td align="left">Partial</td><td align="left">Exception support is broken.
! 	See <a class="link" href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146" target="_top">PR
! 	66146</a>.
!       </td></tr><tr><td align="left">32.6</td><td align="left">Condition variables</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.7</td><td align="left">Semaphore</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.7.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.7.2</td><td align="left">Header <code class="code">&lt;semaphore&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.7.3</td><td align="left">Class template <code class="code">counting_semaphore</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.8</td><td align="left">Coordination types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.2</td><td align="left">Latches</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.2.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.2.2</td><td align="left">Header <code class="code">&lt;latch&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.8.2.3</td><td align="left">Class <code class="code">latch</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.8.3</td><td align="left">Barriers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.3.1</td><td align="left">General</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">32.8.3.2</td><td align="left">Header <code class="code">&lt;barrier&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.8.3.3</td><td align="left">Class template <code class="code">barrier</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">32.9</td><td align="left">Futures</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
! 	<span class="emphasis"><em>Appendix D</em></span>
!       </td><td colspan="3" align="left">
! 	<span class="emphasis"><em>Compatibility features</em></span>
!       </td></tr><tr><td align="left">D.10</td><td align="left">C headers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.10.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.2</td><td align="left">Header <code class="code">&lt;complex.h&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.3</td><td align="left">Header <code class="code">&lt;iso646.h&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.4</td><td align="left">Header <code class="code">&lt;stdalign.h&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.5</td><td align="left">Header <code class="code">&lt;stdbool.h&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.6</td><td align="left">Header <code class="code">&lt;tgmath.h&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.10.7</td><td align="left">Other C headers</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.12</td><td align="left">Relational operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13</td><td align="left"><code class="code">char*</code> streams</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13.1</td><td align="left">Header <code class="code">&lt;strstream&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13.2</td><td align="left">Class <code class="code">strstreambuf</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13.3</td><td align="left">Class <code class="code">istrstream</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13.4</td><td align="left">Class <code class="code">ostrstream</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.13.5</td><td align="left">Class <code class="code">strstream</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.14</td><td align="left">Deprecated type traits</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.15</td><td align="left">Tuple</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.16</td><td align="left">Variant</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.17</td><td align="left">Deprecated <code class="code">iterator</code> class template</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.18</td><td align="left">Deprecated <code class="code">move_iterator</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.19</td><td align="left">Deprecated <code class="code">shared_ptr</code> atomic access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.20</td><td align="left">Deprecated <code class="code">basic_string</code> capacity</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.21</td><td align="left">Deprecated standard code conversion facets</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.21.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.21.2</td><td align="left">Header <code class="code">&lt;codecvt&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.21.3</td><td align="left">Requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.22</td><td align="left">Deprecated convenience conversion interfaces</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.22.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.22.2</td><td align="left">Class template <code class="code">wstring_convert</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.22.3</td><td align="left">Class template <code class="code">wbuffer_convert</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.23</td><td align="left">Deprecated locale category facets</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.24</td><td align="left">Deprecated filesystem path factory functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.25</td><td align="left">Deprecated atomic operations</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">D.25.1</td><td align="left">General</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.25.2</td><td align="left">Volatile access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.25.3</td><td align="left">Non-member functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.25.4</td><td align="left">Operations on atomic types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">D.25.5</td><td align="left">Flag type and operations</td><td align="left">Y</td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.2020.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is also specified by previous standards,
        see <a class="link" href="status.html#iso.1998.specific" title="Implementation Specific Behavior">C++ 1998/2003 Implementation
        Specific Behavior</a>, <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++
        2011 Implementation Specific Behavior</a>, and
*************** The "SD-6 Feature Test / Notes" column s
*** 1840,1846 ****
  <a class="link" href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target="_top">SD-6:
  Feature-testing recommendations for C++</a> (where applicable)
  or any notes about the implementation.
! </p><div class="table"><a id="table.cxx23_features"></a><p class="title"><strong>Table 1.10. C++ 2023 Library Features</strong></p><div class="table-contents"><table class="table" summary="C++ 2023 Library Features" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test / Notes</th></tr></thead><tbody><tr><td colspan="4" align="left">
          <span class="bold"><strong>Ranges and Views</strong></span>
        </td></tr><tr><td align="left"> Range constructor for std::string_view </td><td align="left">
          <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1989r2.pdf" target="_top">
--- 1934,1940 ----
  <a class="link" href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target="_top">SD-6:
  Feature-testing recommendations for C++</a> (where applicable)
  or any notes about the implementation.
! </p><div class="table"><a id="table.cxx23_features"></a><p class="title"><strong>Table 1.11. C++ 2023 Library Features</strong></p><div class="table-contents"><table class="table" summary="C++ 2023 Library Features" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test / Notes</th></tr></thead><tbody><tr><td colspan="4" align="left">
          <span class="bold"><strong>Ranges and Views</strong></span>
        </td></tr><tr><td align="left"> Range constructor for std::string_view </td><td align="left">
          <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1989r2.pdf" target="_top">
*************** In this implementation the header names
*** 2320,2326 ****
  </p><p>
  This page describes the TR1 support in
  mainline GCC, not in any particular release.
! </p><div class="table"><a id="table.tr1_status"></a><p class="title"><strong>Table 1.11. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
  	<p>
  	  Uses code from
  	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
--- 2414,2420 ----
  </p><p>
  This page describes the TR1 support in
  mainline GCC, not in any particular release.
! </p><div class="table"><a id="table.tr1_status"></a><p class="title"><strong>Table 1.12. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
  	<p>
  	  Uses code from
  	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
*************** decimal floating-point arithmetic".
*** 2341,2347 ****
  </p><p>
  This page describes the TR 24733 support in
  mainline GCC, not in any particular release.
! </p><div class="table"><a id="table.decfp_status"></a><p class="title"><strong>Table 1.12. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
  	<span class="emphasis"><em>0</em></span>
        </td><td colspan="3" align="left">
  	<span class="emphasis"><em>Introduction</em></span>
--- 2435,2441 ----
  </p><p>
  This page describes the TR 24733 support in
  mainline GCC, not in any particular release.
! </p><div class="table"><a id="table.decfp_status"></a><p class="title"><strong>Table 1.13. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
  	<span class="emphasis"><em>0</em></span>
        </td><td colspan="3" align="left">
  	<span class="emphasis"><em>Introduction</em></span>
*************** non-strict modes (i.e. <code class="code
*** 2381,2387 ****
  hypergeometric functions and confluent hypergeometric functions
  from TR1 are also provided, defined in namespace
  <code class="code">__gnu_cxx</code>.
! </p><div class="table"><a id="table.specfun_status"></a><p class="title"><strong>Table 1.13. C++ Special Functions Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ Special Functions Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td align="left">7</td><td align="left">Macro names</td><td align="left">Partial</td><td align="left">No diagnostic for inconsistent definitions of
               <code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></td></tr><tr><td align="left">8</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.10</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.11</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.12</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.13</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.14</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.15</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.16</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.17</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.18</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.19</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.20</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.21</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.2</td><td align="left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">8.3</td><td align="left">The header <code class="code">&lt;ctgmath&gt;</code></td><td align="left">Partial</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.4</td><td align="left">The header <code class="code">&lt;tgmath.h&gt;</code></td><td align="left">N</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.specfun.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 2011 standard,
        see <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++ 2011 Implementation
        Specific Behavior</a>. This section documents behaviour which
--- 2475,2481 ----
  hypergeometric functions and confluent hypergeometric functions
  from TR1 are also provided, defined in namespace
  <code class="code">__gnu_cxx</code>.
! </p><div class="table"><a id="table.specfun_status"></a><p class="title"><strong>Table 1.14. C++ Special Functions Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ Special Functions Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td align="left">7</td><td align="left">Macro names</td><td align="left">Partial</td><td align="left">No diagnostic for inconsistent definitions of
               <code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></td></tr><tr><td align="left">8</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.10</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.11</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.12</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.13</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.14</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.15</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.16</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.17</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.18</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.19</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.20</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.21</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.2</td><td align="left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">8.3</td><td align="left">The header <code class="code">&lt;ctgmath&gt;</code></td><td align="left">Partial</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.4</td><td align="left">The header <code class="code">&lt;tgmath.h&gt;</code></td><td align="left">N</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.specfun.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 2011 standard,
        see <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++ 2011 Implementation
        Specific Behavior</a>. This section documents behaviour which
diff -Nrcpad gcc-16-20250928/libstdc++-v3/doc/xml/manual/status_cxx2020.xml gcc-16-20251005/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
*** gcc-16-20250928/libstdc++-v3/doc/xml/manual/status_cxx2020.xml	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/doc/xml/manual/status_cxx2020.xml	Sun Oct  5 22:34:06 2025
*************** time zones and UTC are supported since 1
*** 1453,1458 ****
--- 1453,5873 ----
  and <function>chrono::parse</function> is supported since 14.1.
  </para>
  
+ <para>
+ The following status table is based on the table of contents of
+ ISO/IEC 14882:2020.
+ Some subclauses are not shown in the table where the content is unchanged
+ since C++17 and the implementation is complete.
+ </para>
+ 
+ <table frame="all" xml:id="table.cxx20_status">
+ <title>C++ 2020 Implementation Status</title>
+ 
+ <tgroup cols="4" align="left" colsep="0" rowsep="1">
+ <colspec colname="c1"/>
+ <colspec colname="c2"/>
+ <colspec colname="c3"/>
+ <colspec colname="c4"/>
+   <thead>
+     <row>
+       <entry>Section</entry>
+       <entry>Description</entry>
+       <entry>Status</entry>
+       <entry>Comments</entry>
+     </row>
+   </thead>
+ 
+   <tbody>
+ 
+     <row>
+       <entry>
+ 	<emphasis>17</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Language support library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>17.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2</entry>
+       <entry>Common definitions</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2.1</entry>
+       <entry>Header <code>&lt;cstddef&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2.2</entry>
+       <entry>Header <code>&lt;cstdlib&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2.3</entry>
+       <entry>Null pointers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2.4</entry>
+       <entry>Sizes, alignments, and offsets</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.2.5</entry>
+       <entry><code>byte</code> type operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3</entry>
+       <entry>Implementation properties</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.2</entry>
+       <entry>Header <code>&lt;version&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.3</entry>
+       <entry>Header <code>&lt;limits&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.4</entry>
+       <entry>Floating-point type properties</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>17.3.4.1</entry>
+       <entry>Type <code>float_round_style</code></entry>
+       <entry>N</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>17.3.4.2</entry>
+       <entry>Type <code>float_denorm_style</code></entry>
+       <entry>N</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.5</entry>
+       <entry>Class template <code>numeric_limits</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.6</entry>
+       <entry>Header <code>&lt;climits&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.3.7</entry>
+       <entry>Header <code>&lt;cfloat&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.4</entry>
+       <entry>Integer types</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.4.2</entry>
+       <entry>Header <code>&lt;cstdint&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>17.5</entry>
+       <entry>Startup and termination</entry>
+       <entry>Partial</entry>
+       <entry>C library dependency for quick_exit, at_quick_exit</entry>
+     </row>
+ 
+     <row>
+       <entry>17.6</entry>
+       <entry>Dynamic memory management</entry>
+       <entry>Y</entry>
+     </row>
+ 
+     <row>
+       <entry>17.7</entry>
+       <entry>Type identification</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.8</entry>
+       <entry>Source location</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.8.1</entry>
+       <entry>Header <code>&lt;source_location&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.8.2</entry>
+       <entry>Class <code>source_location</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.9</entry>
+       <entry>Exception handling</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.10</entry>
+       <entry>Initializer lists</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11</entry>
+       <entry>Comparisons</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.1</entry>
+       <entry>Header <code>&lt;compare&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.2</entry>
+       <entry>Comparison category types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.3</entry>
+       <entry>Class template <code>common_comparison_category</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.4</entry>
+       <entry>Concept <code>three_way_comparable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.5</entry>
+       <entry>Result of three-way comparison</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.11.6</entry>
+       <entry>Comparison algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12</entry>
+       <entry>Coroutines</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12.2</entry>
+       <entry>Header <code>&lt;coroutine&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12.3</entry>
+       <entry>Coroutine traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12.4</entry>
+       <entry>Class template <code>coroutine_handle</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.12.5</entry>
+       <entry>No-op coroutines</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>17.13</entry>
+       <entry>Other runtime support</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>18</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Concepts library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>18.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.2</entry>
+       <entry>Equality preservation</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.3</entry>
+       <entry>Header <code>&lt;concepts&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4</entry>
+       <entry>Language-related concepts</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.2</entry>
+       <entry>Concept <code>same_as</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.3</entry>
+       <entry>Concept <code>derived_from</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.4</entry>
+       <entry>Concept <code>convertible_to</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.5</entry>
+       <entry>Concept <code>common_reference_with</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.6</entry>
+       <entry>Concept <code>common_with</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.7</entry>
+       <entry>Arithmetic concepts</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.8</entry>
+       <entry>Concept <code>assignable_from</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.9</entry>
+       <entry>Concept <code>swappable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.10</entry>
+       <entry>Concept <code>destructible</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.11</entry>
+       <entry>Concept <code>constructible_from</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.12</entry>
+       <entry>Concept <code>default_initializable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.13</entry>
+       <entry>Concept <code>move_constructible</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.4.14</entry>
+       <entry>Concept <code>copy_constructible</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.5</entry>
+       <entry>Comparison concepts</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.5.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.5.2</entry>
+       <entry>Boolean testability</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.5.3</entry>
+       <entry>Concept <code>equality_comparable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.5.4</entry>
+       <entry>Concept <code>totally_ordered</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.6</entry>
+       <entry>Object concepts</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7</entry>
+       <entry>Callable concepts</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.2</entry>
+       <entry>Concept <code>invocable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.3</entry>
+       <entry>Concept <code>regular_invocable</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.4</entry>
+       <entry>Concept <code>predicate</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.5</entry>
+       <entry>Concept <code>relation</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.6</entry>
+       <entry>Concept <code>equivalence_relation</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>18.7.7</entry>
+       <entry>Concept <code>strict_weak_order</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>19</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Diagnostics library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>19.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.2</entry>
+       <entry>Exception classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.3</entry>
+       <entry>Assertions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.4</entry>
+       <entry>Error numbers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5</entry>
+       <entry>System error support</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.2</entry>
+       <entry>Header <code>&lt;system_error&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.3</entry>
+       <entry>Class <code>error_category</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.4</entry>
+       <entry>Class <code>error_code</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.5</entry>
+       <entry>Class <code>error_condition</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.6</entry>
+       <entry>Comparison operator functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.7</entry>
+       <entry>System error hash support</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>19.5.8</entry>
+       <entry>Class <code>system_error</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>20</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>General utilities library</emphasis>
+       </entry>
+     </row>
+     
+     <row>
+       <entry>20.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2</entry>
+       <entry>Utility components</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.1</entry>
+       <entry>Header <code>&lt;utility&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.2</entry>
+       <entry><code>swap</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.3</entry>
+       <entry><code>exchange</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.4</entry>
+       <entry>Forward/move helpers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.5</entry>
+       <entry>Function template <code>as_const</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.6</entry>
+       <entry>Function template <code>declval</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.2.7</entry>
+       <entry>Integer comparison functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.3</entry>
+       <entry>Compile-time integer sequences</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.4</entry>
+       <entry>Pairs</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.5</entry>
+       <entry>Tuples</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.6</entry>
+       <entry>Optional objects</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.7</entry>
+       <entry>Variants</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.8</entry>
+       <entry>Storage for any type</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.9</entry>
+       <entry>Bitsets</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.10</entry>
+       <entry>Memory</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11</entry>
+       <entry>Smart pointers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.1</entry>
+       <entry>Class template <code>unique_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.2</entry>
+       <entry>Class <code>bad_weak_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.3</entry>
+       <entry>Class template <code>shared_ptr</code></entry>
+       <entry>Y</entry>
+       <entry>Uses code from boost::shared_ptr.</entry>
+     </row>
+ 
+     <row>
+       <entry>20.11.4</entry>
+       <entry>Class template <code>weak_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.5</entry>
+       <entry>Class template <code>owner_less</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.6</entry>
+       <entry>Class template <code>enable_shared_from_this</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.11.7</entry>
+       <entry>Smart pointer hash support</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12</entry>
+       <entry>Memory resources</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.1</entry>
+       <entry>Header <code>&lt;memory_resource&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.2</entry>
+       <entry>Class <code>memory_resource</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.3</entry>
+       <entry>Class template <code>polymorphic_allocator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.4</entry>
+       <entry>Access to program-wide <code>memory_resource</code> objects</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.5</entry>
+       <entry>Pool resource classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.12.6</entry>
+       <entry>Class <code>monotonic_buffer_resource</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.13</entry>
+       <entry>Class template <code>scoped_allocator_adaptor</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14</entry>
+       <entry>Function objects</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.2</entry>
+       <entry>Header <code>&lt;functional&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.3</entry>
+       <entry>Definitions</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.4</entry>
+       <entry>Requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.5</entry>
+       <entry>Function template <code>invoke</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.6</entry>
+       <entry>Class template <code>reference_wrapper</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.7</entry>
+       <entry>Arithmetic operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.8</entry>
+       <entry>Comparisons</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.9</entry>
+       <entry>Concept-constrained comparisons</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.10</entry>
+       <entry>Logical operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.11</entry>
+       <entry>Bitwise operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.12</entry>
+       <entry>Class <code>identity</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.13</entry>
+       <entry>Function template <code>not_fn</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.14</entry>
+       <entry>Function template <code>bind_front</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.15</entry>
+       <entry>Function object binders</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.16</entry>
+       <entry>Function template <code>mem_fn</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.17</entry>
+       <entry>Polymorphic function wrappers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.17.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.17.2</entry>
+       <entry>Class <code>bad_function_call</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.17.3</entry>
+       <entry>Class template <code>function</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.14.18</entry>
+       <entry>Searchers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15</entry>
+       <entry>Metaprogramming and type traits</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.2</entry>
+       <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.3</entry>
+       <entry>Header <code>&lt;type_traits&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.4</entry>
+       <entry>Helper classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.5</entry>
+       <entry>Unary type traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.6</entry>
+       <entry>Type property queries</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.7</entry>
+       <entry>Relationships between types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.8</entry>
+       <entry>Transformations between types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.9</entry>
+       <entry>Logical operator traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.10</entry>
+       <entry>Member relationships</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.15.11</entry>
+       <entry>Constant evaluation context</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.16</entry>
+       <entry>Compile-time rational arithmetic</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.17</entry>
+       <entry>Class <code>type_index</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.18</entry>
+       <entry>Execution policies</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.19</entry>
+       <entry>Primitive numeric conversions</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.19.1</entry>
+       <entry>Header <code>&lt;charconv&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.19.2</entry>
+       <entry>Primitive numeric output conversion</entry>
+       <entry>Y</entry>
+       <entry>
+  	Floating-point types up to 64-bit are formatted using
+ 	<link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	  xlink:href="https://github.com/ulfjack/ryu">Ryu</link>.
+ 	Types with greater precision are formatted using the C library
+ 	(<function>sprintf</function> and conditionally
+ 	<function>strfromf128</function>).
+ 	For powerpc64le-unknown-linux-gnu <function>__sprintfieee128</function>
+ 	must be provided by Glibc.
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>20.19.3</entry>
+       <entry>Primitive numeric input conversion</entry>
+       <entry>Y</entry>
+       <entry>
+ 	Floating-point types up to 64-bit are parsed using
+ 	<link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	  xlink:href="https://github.com/fastfloat/fast_float">fast_float</link>.
+ 	Types with greater precision are parsed using the C library
+ 	(<function>strtold</function>).
+ 	For powerpc64le-unknown-linux-gnu <function>__strtoieee128</function>
+ 	must be provided by Glibc.
+       </entry>
+       </row>
+ 
+     <row>
+       <entry>20.20</entry>
+       <entry>Formatting</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.1</entry>
+       <entry>Header <code>&lt;format&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.2</entry>
+       <entry>Format string</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.2.1</entry>
+       <entry> In general</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.2.2</entry>
+       <entry>Standard format specifiers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.3</entry>
+       <entry>Error reporting</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.4</entry>
+       <entry>Formatting functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.5</entry>
+       <entry>Formatter</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.5.1</entry>
+       <entry>Formatter requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.5.2</entry>
+       <entry>Formatter specializations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.5.3</entry>
+       <entry>Class template <code>basic_format_parse_context</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.5.4</entry>
+       <entry>Class template <code>basic_format_context</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.6</entry>
+       <entry>Arguments</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.6.1</entry>
+       <entry>Class template <code>basic_format_arg</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.6.2</entry>
+       <entry>Class template <emphasis>format-arg-store</emphasis></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.6.3</entry>
+       <entry>Class template <code>basic_format_args</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>20.20.7</entry>
+       <entry>Class <code>format_error</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>21</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Strings library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>21.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>21.2</entry>
+       <entry>Character traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>21.3</entry>
+       <entry>String classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>21.4</entry>
+       <entry>String view classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>21.5</entry>
+       <entry>Null-terminated sequence utilities</entry>
+       <entry>Partial</entry>
+       <entry>C library dependency.</entry>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>22</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Containers library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>22.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.2</entry>
+       <entry>Container requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.3</entry>
+       <entry>Sequence containers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.4</entry>
+       <entry>Associative containers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.5</entry>
+       <entry>Unordered associative containers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.6</entry>
+       <entry>Container adaptors</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.7</entry>
+       <entry>Views</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.7.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.7.2</entry>
+       <entry>Header <code>&lt;span&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>22.7.3</entry>
+       <entry>Class template <code>span</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>23</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Iterators library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>23.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.2</entry>
+       <entry>Header <code>&lt;iterator&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3</entry>
+       <entry>Iterator requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.1</entry>
+       <entry>In general</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.2</entry>
+       <entry>Associated types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.3</entry>
+       <entry>Customization points</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.4</entry>
+       <entry>Iterator concepts</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.5</entry>
+       <entry>C++17 iterator requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.6</entry>
+       <entry>Indirect callable requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.3.7</entry>
+       <entry>Common algorithm requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.4</entry>
+       <entry>Iterator primitives</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.4.2</entry>
+       <entry>Standard iterator tags</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.4.3</entry>
+       <entry>Iterator operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.4.4</entry>
+       <entry>Range iterator operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5</entry>
+       <entry>Iterator adaptors</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.1</entry>
+       <entry>Reverse iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.2</entry>
+       <entry>Insert iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.3</entry>
+       <entry>Move iterators and sentinels</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.4</entry>
+       <entry>Common iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.5</entry>
+       <entry>Default sentinel</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.6</entry>
+       <entry>Counted iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.5.7</entry>
+       <entry> Unreachable sentinel</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6</entry>
+       <entry> Stream iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6.2</entry>
+       <entry> Class template <code>istream_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6.3</entry>
+       <entry>Class template <code>ostream_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6.4</entry>
+       <entry>Class template <code>istreambuf_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.6.5</entry>
+       <entry>Class template <code>ostreambuf_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>23.7</entry>
+       <entry>Range access</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>24</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Ranges library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>24.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.2</entry>
+       <entry>Header <code>&lt;ranges&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.3</entry>
+       <entry>Range access</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4</entry>
+       <entry>Range requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4.2</entry>
+       <entry>Ranges</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4.3</entry>
+       <entry>Sized ranges</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4.4</entry>
+       <entry>Views</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.4.5</entry>
+       <entry>Other range refinements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5</entry>
+       <entry>Range utilities</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5.2</entry>
+       <entry>Helper concepts</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5.3</entry>
+       <entry>View interface</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5.4</entry>
+       <entry>Sub-ranges</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.5.5</entry>
+       <entry>Dangling iterator handling</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6</entry>
+       <entry>Range factories</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6.2</entry>
+       <entry>Empty view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6.3</entry>
+       <entry>Single view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6.4</entry>
+       <entry>Iota view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.6.5</entry>
+       <entry>Istream view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7</entry>
+       <entry>Range adaptors</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.2</entry>
+       <entry>Range adaptor objects</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.3</entry>
+       <entry>Semiregular wrapper</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.4</entry>
+       <entry>All view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.5</entry>
+       <entry>Filter view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.6</entry>
+       <entry>Transform view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.7</entry>
+       <entry>Take view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.8</entry>
+       <entry>Take while view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.9</entry>
+       <entry>Drop view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.10</entry>
+       <entry>Drop while view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.11</entry>
+       <entry>Join view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.12</entry>
+       <entry>Split view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.13</entry>
+       <entry>Counted view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.14</entry>
+       <entry>Common view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.15</entry>
+       <entry>Reverse view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>24.7.16</entry>
+       <entry>Elements view</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>25</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Algorithms library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>25.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.2</entry>
+       <entry>Algorithms requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.3</entry>
+       <entry>Parallel algorithms</entry>
+       <entry/>
+       <entry>Using <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/llvm/llvm-project/tree/main/pstl">PSTL</link></entry>
+     </row>
+ 
+     <row>
+       <entry>25.4</entry>
+       <entry>Header <code>&lt;algorithm&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.5</entry>
+       <entry>Algorithm result types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6</entry>
+       <entry>Non-modifying sequence operations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.1</entry>
+       <entry>All of</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.2</entry>
+       <entry>Any of</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.3</entry>
+       <entry>None of</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.4</entry>
+       <entry>For each</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.5</entry>
+       <entry>Find</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.6</entry>
+       <entry>Find end</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.7</entry>
+       <entry>Find first</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.8</entry>
+       <entry>Adjacent find</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.9</entry>
+       <entry>Count</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.10</entry>
+       <entry>Mismatch</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.11</entry>
+       <entry>Equal</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.12</entry>
+       <entry>Is permutation</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.6.13</entry>
+       <entry>Search</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7</entry>
+       <entry>Mutating sequence operations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.1</entry>
+       <entry>Copy</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.2</entry>
+       <entry>Move</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.3</entry>
+       <entry>Swap</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.4</entry>
+       <entry>Transform</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.5</entry>
+       <entry>Replace</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.6</entry>
+       <entry>Fill</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.7</entry>
+       <entry>Generate</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.8</entry>
+       <entry>Remove</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.9</entry>
+       <entry>Unique</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.10</entry>
+       <entry>Reverse</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.11</entry>
+       <entry>Rotate</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.12</entry>
+       <entry>Sample</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.13</entry>
+       <entry>Shuffle</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.7.14</entry>
+       <entry>Shift</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8</entry>
+       <entry>Sorting and related operations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.2</entry>
+       <entry>Sorting</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.3</entry>
+       <entry>Nth element</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.4</entry>
+       <entry>Binary search</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.5</entry>
+       <entry>Partitions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.6</entry>
+       <entry>Merge</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.7</entry>
+       <entry>Set operations on sorted structures</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.8</entry>
+       <entry>Heap operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.9</entry>
+       <entry>Minimum and maximum</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.10</entry>
+       <entry>Bounded value</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.11</entry>
+       <entry>Lexicographical comparison</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.12</entry>
+       <entry>Three-way comparison algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.8.13</entry>
+       <entry>Permutation generators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.9</entry>
+       <entry>Header <code>&lt;numeric&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10</entry>
+       <entry>Generalized numeric operations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.2</entry>
+       <entry>Definitions</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.3</entry>
+       <entry>Accumulate</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.4</entry>
+       <entry>Reduce</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.5</entry>
+       <entry>Inner product</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.6</entry>
+       <entry>Transform reduce</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.7</entry>
+       <entry>Partial sum</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.8</entry>
+       <entry>Exclusive scan</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.9</entry>
+       <entry>Inclusive scan</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.10</entry>
+       <entry>Transform exclusive scan</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.11</entry>
+       <entry>Transform inclusive scan</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.12</entry>
+       <entry>Adjacent difference</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.13</entry>
+       <entry>Iota</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.14</entry>
+       <entry>Greatest common divisor</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.15</entry>
+       <entry>Least common multiple</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.10.16</entry>
+       <entry>Midpoint</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11</entry>
+       <entry>Specialized <code>&lt;memory&gt;</code> algorithms</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.2</entry>
+       <entry>Special memory concepts</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.3</entry>
+       <entry><code>uninitialized_default_construct</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.4</entry>
+       <entry><code>uninitialized_value_construct</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.5</entry>
+       <entry><code>uninitialized_copy</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.6</entry>
+       <entry><code>uninitialized_move</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.7</entry>
+       <entry><code>uninitialized_fill</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.8</entry>
+       <entry><code>construct_at</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.11.9</entry>
+       <entry><code>destroy</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>25.12</entry>
+       <entry>C library algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>26</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Numerics library</emphasis>
+       </entry>
+     </row>
+ 
+ 
+     <row>
+       <entry>26.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.2</entry>
+       <entry>Numeric type requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.3</entry>
+       <entry>The floating-point environment</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.4</entry>
+       <entry>Complex numbers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5</entry>
+       <entry>Bit manipulation</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.2</entry>
+       <entry>Header <code>&lt;bit&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.3</entry>
+       <entry>Function template <code>bit_cast</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.4</entry>
+       <entry>Integral powers of 2</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.5</entry>
+       <entry>Rotating</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.6</entry>
+       <entry>Counting</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.5.7</entry>
+       <entry>Endian</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.6</entry>
+       <entry>Random number generation</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.7</entry>
+       <entry>Numeric arrays</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.8</entry>
+       <entry>Mathematical functions for floating-point types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.9</entry>
+       <entry>Numbers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.9.1</entry>
+       <entry>Header <code>&lt;numbers&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>26.9.2</entry>
+       <entry>Mathematical constants</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>27</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Time library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>27.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.2</entry>
+       <entry>Header <code>&lt;chrono&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.3</entry>
+       <entry><emphasis>Cpp17Clock</emphasis> requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.4</entry>
+       <entry>Time-related traits</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.4.1</entry>
+       <entry><code>treat_as_floating_point</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.4.2</entry>
+       <entry><code>duration_values</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.4.3</entry>
+       <entry>Specializations of <code>common_type</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.4.4</entry>
+       <entry>Class template <code>is_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5</entry>
+       <entry>Class template <code>duration</code></entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.2</entry>
+       <entry>Constructors</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.3</entry>
+       <entry>Observer</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.4</entry>
+       <entry>Arithmetic</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.5</entry>
+       <entry>Special values</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.6</entry>
+       <entry>Non-member arithmetic</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.7</entry>
+       <entry>Comparisons</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.8</entry>
+       <entry>Conversions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.9</entry>
+       <entry>Suffixes for duration literals</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.10</entry>
+       <entry>Algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.5.11</entry>
+       <entry>I/O</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.6</entry>
+       <entry>Class template <code>time_point</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7</entry>
+       <entry>Clocks</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.2</entry>
+       <entry>Class <code>system_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.3</entry>
+       <entry>Class <code>utc_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.4</entry>
+       <entry>Class <code>tai_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.5</entry>
+       <entry>Class <code>gps_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.6</entry>
+       <entry>Type <code>file_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.7</entry>
+       <entry>Class <code>steady_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.8</entry>
+       <entry>Class <code>high_resolution_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.9</entry>
+       <entry>Local time</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.7.10</entry>
+       <entry><code>time_point</code> conversions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8</entry>
+       <entry>The civil calendar</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.1</entry>
+       <entry>In general</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.2</entry>
+       <entry>Class <code>last_spec</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.3</entry>
+       <entry>Class <code>day</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.4</entry>
+       <entry>Class <code>month</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.5</entry>
+       <entry>Class <code>year</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.6</entry>
+       <entry>Class <code>weekday</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.7</entry>
+       <entry>Class <code>weekday_indexed</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.8</entry>
+       <entry>Class <code>weekday_last</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.9</entry>
+       <entry>Class <code>month_day</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.10</entry>
+       <entry>Class <code>month_day_last</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.11</entry>
+       <entry>Class <code>month_weekday</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.12</entry>
+       <entry>Class <code>month_weekday_last</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.13</entry>
+       <entry>Class <code>year_month</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.14</entry>
+       <entry>Class <code>year_month_day</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.15</entry>
+       <entry>Class <code>year_month_day_last</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.16</entry>
+       <entry>Class <code>year_month_weekday</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.8.17</entry>
+       <entry>Class <code>year_month_weekday_last</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.9</entry>
+       <entry>Class template <code>hh_mm_ss</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.10</entry>
+       <entry>12/24 hours functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11</entry>
+       <entry>Time zones</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.1</entry>
+       <entry>In general</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.2</entry>
+       <entry>Time zone database</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.3</entry>
+       <entry>Exception classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.4</entry>
+       <entry>Information classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.5</entry>
+       <entry>Class <code>time_zone</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.6</entry>
+       <entry>Class template <code>zoned_traits</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.7</entry>
+       <entry>Class template <code>zoned_time</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.8</entry>
+       <entry>Class <code>leap_second</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.11.9</entry>
+       <entry>Class <code>time_zone_link</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.12</entry>
+       <entry>Formatting</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.13</entry>
+       <entry>Parsing</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>27.14</entry>
+       <entry>Header <code>&lt;ctime&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>28</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Localization library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>28.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.2</entry>
+       <entry>Header <code>&lt;locale&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3</entry>
+       <entry>Locales</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3.1</entry>
+       <entry>Class <code>locale</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3.2</entry>
+       <entry><code>locale</code> globals</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3.3</entry>
+       <entry>Convenience interfaces</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3.3.1</entry>
+       <entry>Character classification</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.3.3.2</entry>
+       <entry>Character conversions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4</entry>
+       <entry>Standard <code>locale</code> categories</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.2</entry>
+       <entry>The <code>ctype</code> category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.3</entry>
+       <entry>The numeric category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.4</entry>
+       <entry>The numeric punctuation facet</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.5</entry>
+       <entry>The collate category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.6</entry>
+       <entry>The time category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.7</entry>
+       <entry>The monetary category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.4.8</entry>
+       <entry>The message retrieval category</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>28.5</entry>
+       <entry>C library locales</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>29</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Input/output library</emphasis>
+       </entry>
+     </row>
+     
+ 
+ 
+     <row>
+       <entry>29.1</entry>
+       <entry> General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.2</entry>
+       <entry>Iostreams requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.2.1</entry>
+       <entry>Imbue limitations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.2.2</entry>
+       <entry>Positioning type limitations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>29.2.3</entry>
+       <entry>Thread safety</entry>
+       <entry>Partial</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.3</entry>
+       <entry>Forward declarations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.4</entry>
+       <entry>Standard iostream objects</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.5</entry>
+       <entry>Iostreams base classes</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.6</entry>
+       <entry>Stream buffers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.7</entry>
+       <entry>Formatting and manipulators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.8</entry>
+       <entry>String-based streams</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.9</entry>
+       <entry>File-based streams</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.10</entry>
+       <entry>Synchronized output streams</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.10.1</entry>
+       <entry>Header <code>&lt;syncstream&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.10.2</entry>
+       <entry>Class template <code>basic_syncbuf</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.10.3</entry>
+       <entry>Class template <code>basic_osyncstream</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11</entry>
+       <entry>File systems</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.2</entry>
+       <entry>Conformance</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.3</entry>
+       <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.4</entry>
+       <entry>Header <code>&lt;filesystem&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.5</entry>
+       <entry>Error reporting</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.6</entry>
+       <entry>Class <code>path</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.7</entry>
+       <entry>Class <code>filesystem_error</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8</entry>
+       <entry>Enumerations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.1</entry>
+       <entry>Enum <code>path::format</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.2</entry>
+       <entry>Enum class <code>file_type</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.3</entry>
+       <entry>Enum class <code>copy_options</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.4</entry>
+       <entry>Enum class <code>perms</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.5</entry>
+       <entry>Enum class <code>perm_options</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.8.6</entry>
+       <entry>Enum class <code>directory_options</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.9</entry>
+       <entry>Class <code>file_status</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.10</entry>
+       <entry>Class <code>directory_entry</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.11</entry>
+       <entry>Class <code>directory_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.12</entry>
+       <entry>Class <code>recursive_directory_iterator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.11.13</entry>
+       <entry>Filesystem operation functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.12</entry>
+       <entry>C library files</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.12.1</entry>
+       <entry>Header <code>&lt;cstdio&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>29.12.2</entry>
+       <entry>Header <code>&lt;cinttypes&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>30</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Regular expressions library</emphasis>
+       </entry>
+     </row>
+ 
+ 
+     <row>
+       <entry>30.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.2</entry>
+       <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.3</entry>
+       <entry>Header <code>&lt;regex&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.4</entry>
+       <entry>Namespace <code>std::regex_constants</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.5</entry>
+       <entry>Class <code>regex_error</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>30.6</entry>
+       <entry>Class template <code>regex_traits</code></entry>
+       <entry>Partial</entry>
+       <entry><code>transform_primary</code> is not correctly implemented</entry>
+     </row>
+ 
+     <row>
+       <entry>30.7</entry>
+       <entry>Class template <code>basic_regex</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.8</entry>
+       <entry>Class template <code>sub_match</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.9</entry>
+       <entry>Class template <code>match_results</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.10</entry>
+       <entry>Regular expression algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.11</entry>
+       <entry>Regular expression iterators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>30.12</entry>
+       <entry>Modified ECMAScript regular expression grammar</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>31</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Atomics library</emphasis>
+       </entry>
+     </row>
+ 
+ 
+     <row>
+       <entry>31.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.2</entry>
+       <entry>Header <code>&lt;atomic&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.3</entry>
+       <entry>Type aliases</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.4</entry>
+       <entry>Order and consistency</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.5</entry>
+       <entry>Lock-free property</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>31.6</entry>
+       <entry>Waiting and notifying</entry>
+       <entry>Partial</entry>
+       <entry>Waiting and notifying is not supported for volatile objects.</entry>
+     </row>
+ 
+     <row>
+       <entry>31.7</entry>
+       <entry>Class template <code>atomic_ref</code></entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.7.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>31.7.2</entry>
+       <entry>Operations</entry>
+       <entry>Partial</entry>
+       <entry>
+ 	volatile-qualified overloads for <code>wait</code>,
+         <code>notify_one</code>, and <code>notify_all</code> are not provided.
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>31.7.3</entry>
+       <entry>Specializations for integral types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.7.4</entry>
+       <entry>Specializations for floating-point types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.7.5</entry>
+       <entry>Partial specialization for pointers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8</entry>
+       <entry>Class template <code>atomic</code></entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>31.8.2</entry>
+       <entry>Operations on atomic types</entry>
+       <entry>Partial</entry>
+       <entry>Waiting and notifying is not supported for volatile objects.</entry>
+     </row>
+ 
+     <row>
+       <entry>31.8.3</entry>
+       <entry>Specializations for integers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.4</entry>
+       <entry>Specializations for floating-point types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.5</entry>
+       <entry>Partial specialization for pointers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.6</entry>
+       <entry>Member operators common to integers and pointers to objects</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.7</entry>
+       <entry>Partial specializations for smart pointers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.7.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.7.2</entry>
+       <entry>Partial specialization for <code>shared_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.8.7.3</entry>
+       <entry>Partial specialization for <code>weak_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.9</entry>
+       <entry>Non-member functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.10</entry>
+       <entry>Flag type and operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>31.11</entry>
+       <entry>Fences</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>32</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Threads library</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>32.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.2</entry>
+       <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3</entry>
+       <entry>Stop tokens</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3.1</entry>
+       <entry>Introduction</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3.2</entry>
+       <entry>Header <code>&lt;stop_token&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3.3</entry>
+       <entry>Class <code>stop_token</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3.4</entry>
+       <entry>Class <code>stop_source</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.3.5</entry>
+       <entry>Class template <code>stop_callback</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.4</entry>
+       <entry>Threads</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.4.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.4.2</entry>
+       <entry>Header <code>&lt;thread&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>32.4.3</entry>
+       <entry>Class <code>thread</code></entry>
+       <entry>Partial</entry>
+       <entry><code>thread::id</code> comparisons not well-defined</entry>
+     </row>
+ 
+     <row>
+       <entry>32.4.4</entry>
+       <entry>Class <code>jthread</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.4.5</entry>
+       <entry>Namespace <code>this_thread</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5</entry>
+       <entry>Mutual exclusion</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.2</entry>
+       <entry>Header <code>&lt;mutex&gt;</code> synopsis</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.3</entry>
+       <entry>Header <code>&lt;shared_mutex&gt;</code> synopsis</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4</entry>
+       <entry>Mutex requirements</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4.1</entry>
+       <entry>In general</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4.2</entry>
+       <entry>Mutex types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4.3</entry>
+       <entry>Timed mutex types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4.4</entry>
+       <entry>Shared mutex types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.4.5</entry>
+       <entry>Shared timed mutex types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.5</entry>
+       <entry>Locks</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.6</entry>
+       <entry>Generic locking algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.7</entry>
+       <entry>Call once</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.5.7.1</entry>
+       <entry>Struct <code>once_flag</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>32.5.7.2</entry>
+       <entry>Function <code>call_once</code></entry>
+       <entry>Partial</entry>
+        <entry>Exception support is broken.
+ 	See <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR
+ 	66146</link>.
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>32.6</entry>
+       <entry>Condition variables</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.7</entry>
+       <entry>Semaphore</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.7.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.7.2</entry>
+       <entry>Header <code>&lt;semaphore&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.7.3</entry>
+       <entry>Class template <code>counting_semaphore</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8</entry>
+       <entry>Coordination types</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.2</entry>
+       <entry>Latches</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.2.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.2.2</entry>
+       <entry>Header <code>&lt;latch&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.2.3</entry>
+       <entry>Class <code>latch</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.3</entry>
+       <entry>Barriers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.3.1</entry>
+       <entry>General</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.3.2</entry>
+       <entry>Header <code>&lt;barrier&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.8.3.3</entry>
+       <entry>Class template <code>barrier</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>32.9</entry>
+       <entry>Futures</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>
+ 	<emphasis>Appendix D</emphasis>
+       </entry>
+       <entry namest="c2" nameend="c4" align="left">
+ 	<emphasis>Compatibility features</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry>D.10</entry>
+       <entry>C headers</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.2</entry>
+       <entry>Header <code>&lt;complex.h&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.3</entry>
+       <entry>Header <code>&lt;iso646.h&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.4</entry>
+       <entry>Header <code>&lt;stdalign.h&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.5</entry>
+       <entry>Header <code>&lt;stdbool.h&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.6</entry>
+       <entry>Header <code>&lt;tgmath.h&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.10.7</entry>
+       <entry>Other C headers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.12</entry>
+       <entry>Relational operators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13</entry>
+       <entry><code>char*</code> streams</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13.1</entry>
+       <entry>Header <code>&lt;strstream&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13.2</entry>
+       <entry>Class <code>strstreambuf</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13.3</entry>
+       <entry>Class <code>istrstream</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13.4</entry>
+       <entry>Class <code>ostrstream</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.13.5</entry>
+       <entry>Class <code>strstream</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.14</entry>
+       <entry>Deprecated type traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.15</entry>
+       <entry>Tuple</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.16</entry>
+       <entry>Variant</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.17</entry>
+       <entry>Deprecated <code>iterator</code> class template</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.18</entry>
+       <entry>Deprecated <code>move_iterator</code> access</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.19</entry>
+       <entry>Deprecated <code>shared_ptr</code> atomic access</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.20</entry>
+       <entry>Deprecated <code>basic_string</code> capacity</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.21</entry>
+       <entry>Deprecated standard code conversion facets</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.21.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.21.2</entry>
+       <entry>Header <code>&lt;codecvt&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.21.3</entry>
+       <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.22</entry>
+       <entry>Deprecated convenience conversion interfaces</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.22.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.22.2</entry>
+       <entry>Class template <code>wstring_convert</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.22.3</entry>
+       <entry>Class template <code>wbuffer_convert</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.23</entry>
+       <entry>Deprecated locale category facets</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.24</entry>
+       <entry>Deprecated filesystem path factory functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25</entry>
+       <entry>Deprecated atomic operations</entry>
+       <entry/>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25.1</entry>
+       <entry>General</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25.2</entry>
+       <entry>Volatile access</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25.3</entry>
+       <entry>Non-member functions</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25.4</entry>
+       <entry>Operations on atomic types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+       <entry>D.25.5</entry>
+       <entry>Flag type and operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+   </tbody>
+ </tgroup>
+ </table>
+ 
  <section xml:id="iso.2020.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
  
     <para>For behaviour which is also specified by previous standards,
diff -Nrcpad gcc-16-20250928/libstdc++-v3/include/Makefile.in gcc-16-20251005/libstdc++-v3/include/Makefile.in
*** gcc-16-20250928/libstdc++-v3/include/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/include/Makefile.in	Sun Oct  5 22:34:06 2025
*************** target_triplet = @target@
*** 91,98 ****
--- 91,100 ----
  subdir = include
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 222,227 ****
--- 224,230 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/include/bits/stl_uninitialized.h gcc-16-20251005/libstdc++-v3/include/bits/stl_uninitialized.h
*** gcc-16-20250928/libstdc++-v3/include/bits/stl_uninitialized.h	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/include/bits/stl_uninitialized.h	Sun Oct  5 22:34:06 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 236,241 ****
--- 236,242 ----
  
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ #pragma GCC diagnostic ignored "-Wclass-memaccess"
    /**
     *  @brief Copies the range [first,last) into result.
     *  @param  __first  An input iterator.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 427,432 ****
--- 428,434 ----
  #if __cplusplus >= 201103L
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ #pragma GCC diagnostic ignored "-Wclass-memaccess"
  #if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26
        if consteval {
  	return std::__do_uninit_fill(__first, __last, __x);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 529,534 ****
--- 531,537 ----
  
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ #pragma GCC diagnostic ignored "-Wclass-memaccess"
     // _GLIBCXX_RESOLVE_LIB_DEFECTS
     // DR 1339. uninitialized_fill_n should return the end of its range
    /**
diff -Nrcpad gcc-16-20250928/libstdc++-v3/include/std/inplace_vector gcc-16-20251005/libstdc++-v3/include/std/inplace_vector
*** gcc-16-20250928/libstdc++-v3/include/std/inplace_vector	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/include/std/inplace_vector	Sun Oct  5 22:34:07 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 823,828 ****
--- 823,829 ----
  						      __detail::__synth3way);
        }
  
+       // [inplace.vector.special], specialized algorithms
        constexpr friend void
        swap(inplace_vector& __x, inplace_vector& __y)
        noexcept(is_nothrow_swappable_v<_Tp> && is_nothrow_move_constructible_v<_Tp>)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 907,919 ****
  	}
      };
  
-   // [inplace.vector.special], specialized algorithms
-   template<typename _Tp, size_t _Nm>
-     constexpr void
-     swap(inplace_vector<_Tp, _Nm>& __x, inplace_vector<_Tp, _Nm>& __y)
-     noexcept(noexcept(__x.swap(__y)))
-     { __x.swap(__y); }
- 
    // specialization for zero capacity, that is required to be trivally copyable
    // and empty regardless of _Tp.
    template<typename _Tp>
--- 908,913 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 992,997 ****
--- 986,992 ----
        {
  	if (__il.size() != 0)
  	  __throw_bad_alloc();
+ 	return *this;
        }
  
        template<__any_input_iterator _InputIterator>
diff -Nrcpad gcc-16-20250928/libstdc++-v3/include/std/string gcc-16-20251005/libstdc++-v3/include/std/string
*** gcc-16-20250928/libstdc++-v3/include/std/string	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/include/std/string	Sun Oct  5 22:34:07 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 95,102 ****
  
    template<typename _CharT, typename _Traits, typename _Alloc,
  	   typename _Predicate>
!     _GLIBCXX20_CONSTEXPR
!     inline typename basic_string<_CharT, _Traits, _Alloc>::size_type
      erase_if(basic_string<_CharT, _Traits, _Alloc>& __cont, _Predicate __pred)
      {
        using namespace __gnu_cxx;
--- 95,101 ----
  
    template<typename _CharT, typename _Traits, typename _Alloc,
  	   typename _Predicate>
!     constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type
      erase_if(basic_string<_CharT, _Traits, _Alloc>& __cont, _Predicate __pred)
      {
        using namespace __gnu_cxx;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 110,117 ****
  
    template<typename _CharT, typename _Traits, typename _Alloc,
  	   typename _Up _GLIBCXX26_DEF_VAL_T(_CharT)>
!     _GLIBCXX20_CONSTEXPR
!     inline typename basic_string<_CharT, _Traits, _Alloc>::size_type
      erase(basic_string<_CharT, _Traits, _Alloc>& __cont, const _Up& __value)
      { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
  
--- 109,115 ----
  
    template<typename _CharT, typename _Traits, typename _Alloc,
  	   typename _Up _GLIBCXX26_DEF_VAL_T(_CharT)>
!     constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type
      erase(basic_string<_CharT, _Traits, _Alloc>& __cont, const _Up& __value)
      { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
  
diff -Nrcpad gcc-16-20250928/libstdc++-v3/include/std/vector gcc-16-20251005/libstdc++-v3/include/std/vector
*** gcc-16-20250928/libstdc++-v3/include/std/vector	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/include/std/vector	Sun Oct  5 22:34:07 2025
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 112,119 ****
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
    template<typename _Tp, typename _Alloc, typename _Predicate>
!     _GLIBCXX20_CONSTEXPR
!     inline typename vector<_Tp, _Alloc>::size_type
      erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred)
      {
        using namespace __gnu_cxx;
--- 112,118 ----
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
    template<typename _Tp, typename _Alloc, typename _Predicate>
!     constexpr typename vector<_Tp, _Alloc>::size_type
      erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred)
      {
        using namespace __gnu_cxx;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 134,141 ****
  
    template<typename _Tp, typename _Alloc,
  	   typename _Up _GLIBCXX26_DEF_VAL_T(_Tp)>
!     _GLIBCXX20_CONSTEXPR
!     inline typename vector<_Tp, _Alloc>::size_type
      erase(vector<_Tp, _Alloc>& __cont, const _Up& __value)
      { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
  
--- 133,139 ----
  
    template<typename _Tp, typename _Alloc,
  	   typename _Up _GLIBCXX26_DEF_VAL_T(_Tp)>
!     constexpr typename vector<_Tp, _Alloc>::size_type
      erase(vector<_Tp, _Alloc>& __cont, const _Up& __value)
      { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); }
  
diff -Nrcpad gcc-16-20250928/libstdc++-v3/libsupc++/Makefile.in gcc-16-20251005/libstdc++-v3/libsupc++/Makefile.in
*** gcc-16-20250928/libstdc++-v3/libsupc++/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/libsupc++/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 93,100 ****
--- 93,102 ----
  subdir = libsupc++
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 331,336 ****
--- 333,339 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/po/Makefile.in gcc-16-20251005/libstdc++-v3/po/Makefile.in
*** gcc-16-20250928/libstdc++-v3/po/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/po/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 91,98 ****
--- 91,100 ----
  subdir = po
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 222,227 ****
--- 224,230 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/python/Makefile.in gcc-16-20251005/libstdc++-v3/python/Makefile.in
*** gcc-16-20250928/libstdc++-v3/python/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/python/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = python
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 252,257 ****
--- 254,260 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/Makefile.in gcc-16-20251005/libstdc++-v3/src/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 326,331 ****
--- 328,334 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++11/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++11/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++11/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++11/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/c++11
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 295,300 ****
--- 297,303 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++17/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++17/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++17/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++17/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/c++17
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 269,274 ****
--- 271,277 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++20/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++20/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++20/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++20/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/c++20
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 264,269 ****
--- 266,272 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++23/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++23/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++23/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++23/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 93,100 ****
--- 93,102 ----
  subdir = src/c++23
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 295,300 ****
--- 297,303 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++26/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++26/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++26/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++26/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/c++26
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 264,269 ****
--- 266,272 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/c++98/Makefile.in gcc-16-20251005/libstdc++-v3/src/c++98/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/c++98/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/c++98/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/c++98
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 284,289 ****
--- 286,292 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/experimental/Makefile.in gcc-16-20251005/libstdc++-v3/src/experimental/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/experimental/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/experimental/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/experimental
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 291,296 ****
--- 293,299 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/filesystem/Makefile.in gcc-16-20251005/libstdc++-v3/src/filesystem/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/filesystem/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/filesystem/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 92,99 ****
--- 92,101 ----
  subdir = src/filesystem
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 297,302 ****
--- 299,305 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/src/libbacktrace/Makefile.in gcc-16-20251005/libstdc++-v3/src/libbacktrace/Makefile.in
*** gcc-16-20250928/libstdc++-v3/src/libbacktrace/Makefile.in	Sun Sep 28 22:35:07 2025
--- gcc-16-20251005/libstdc++-v3/src/libbacktrace/Makefile.in	Sun Oct  5 22:34:07 2025
*************** target_triplet = @target@
*** 123,130 ****
--- 123,132 ----
  subdir = src/libbacktrace
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 297,302 ****
--- 299,305 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc gcc-16-20251005/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc	Sun Sep 28 22:35:18 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc	Sun Oct  5 22:34:08 2025
*************** test03()
*** 76,86 ****
    VERIFY(p2.get_deleter().id == -1);
  }
  
  void
  test04()
  {
!   std::unique_ptr<int[], A::Deleter> p1(new int[1]{1}, { -1 });
!   std::unique_ptr<int[], A::Deleter> p2(new int[2]{2, 2}, { -2 });
    int* const pi1 = p1.get();
    int* const pi2 = p2.get();
    // This type must swappable even though the deleter is not move-assignable:
--- 76,107 ----
    VERIFY(p2.get_deleter().id == -1);
  }
  
+ namespace B
+ {
+   struct Deleter
+   {
+     Deleter& operator=(const Deleter&) = delete;
+ 
+     void operator()(int* p) const noexcept { delete[] p; }
+ 
+     // found by ADL
+     friend void swap(Deleter& lhs, Deleter& rhs) noexcept
+     { std::swap(lhs.id, rhs.id); }
+ 
+     int id;
+   };
+ 
+   static_assert(!std::is_move_assignable<Deleter>::value, "not assignable");
+ #if __cplusplus >= 201703L
+   static_assert(std::is_swappable_v<Deleter>, "but swappable");
+ #endif
+ } // namespace B
+ 
  void
  test04()
  {
!   std::unique_ptr<int[], B::Deleter> p1(new int[1]{1}, { -1 });
!   std::unique_ptr<int[], B::Deleter> p2(new int[2]{2, 2}, { -2 });
    int* const pi1 = p1.get();
    int* const pi2 = p2.get();
    // This type must swappable even though the deleter is not move-assignable:
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc gcc-16-20251005/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc	Sun Sep 28 22:35:19 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc	Sun Oct  5 22:34:08 2025
*************** test01()
*** 226,232 ****
    format = "%e";
    ret = tget.get(iter(iss), end, iss, err, &time,
  		 format.data(), format.data()+format.size());
!   VERIFY( err == ios_base::failbit|ios_base::eofbit );
    VERIFY( ret == end );
  
    iss.str("35");
--- 226,232 ----
    format = "%e";
    ret = tget.get(iter(iss), end, iss, err, &time,
  		 format.data(), format.data()+format.size());
!   VERIFY( err == (ios_base::failbit|ios_base::eofbit) );
    VERIFY( ret == end );
  
    iss.str("35");
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc gcc-16-20251005/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc	Sun Sep 28 22:35:19 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc	Sun Oct  5 22:34:08 2025
*************** test01()
*** 226,232 ****
    format = L"%e";
    ret = tget.get(iter(iss), end, iss, err, &time,
  		 format.data(), format.data()+format.size());
!   VERIFY( err == ios_base::failbit|ios_base::eofbit );
    VERIFY( ret == end );
  
    iss.str(L"35");
--- 226,232 ----
    format = L"%e";
    ret = tget.get(iter(iss), end, iss, err, &time,
  		 format.data(), format.data()+format.size());
!   VERIFY( err == (ios_base::failbit|ios_base::eofbit) );
    VERIFY( ret == end );
  
    iss.str(L"35");
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc	Sun Oct  5 22:34:11 2025
*************** protected:
*** 66,72 ****
    
    virtual int
    do_length(std::mbstate_t&, const char* from, const char* end,
! 	    std::size_t max)
    {
      std::size_t len = (end - from) / sizeof(wchar_t);
      return std::min(len, max) * sizeof(wchar_t);
--- 66,72 ----
    
    virtual int
    do_length(std::mbstate_t&, const char* from, const char* end,
! 	    std::size_t max) const
    {
      std::size_t len = (end - from) / sizeof(wchar_t);
      return std::min(len, max) * sizeof(wchar_t);
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc	Sun Oct  5 22:34:11 2025
*************** protected:
*** 66,72 ****
    
    virtual int
    do_length(std::mbstate_t&, const char* from, const char* end,
! 	    std::size_t max)
    {
      std::size_t len = (end - from) / sizeof(wchar_t);
      return std::min(len, max) * sizeof(wchar_t);
--- 66,72 ----
    
    virtual int
    do_length(std::mbstate_t&, const char* from, const char* end,
! 	    std::size_t max) const
    {
      std::size_t len = (end - from) / sizeof(wchar_t);
      return std::min(len, max) * sizeof(wchar_t);
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc	Sun Oct  5 22:34:11 2025
*************** protected:
*** 35,41 ****
  
    virtual result
    do_in(state_type&, const char* from, const char*, const char*& from_next,
! 	char* to, char*, char*& to_next)
    {
      from_next = from;
      to_next = to;
--- 35,41 ----
  
    virtual result
    do_in(state_type&, const char* from, const char*, const char*& from_next,
! 	char* to, char*, char*& to_next) const
    {
      from_next = from;
      to_next = to;
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc	Sun Oct  5 22:34:11 2025
*************** protected:
*** 119,125 ****
    { return width; }
  
    virtual int
!   do_length(const StateT&, const extern_type* from,
  	    const extern_type* end, size_t max) const
    {
      size_t len = std::min(max,
--- 119,125 ----
    { return width; }
  
    virtual int
!   do_length(StateT&, const extern_type* from,
  	    const extern_type* end, size_t max) const
    {
      size_t len = std::min(max,
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc gcc-16-20251005/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc	Sun Oct  5 22:34:12 2025
*************** test01()
*** 27,37 ****
    VERIFY(std::regex_search("x\nab\nx", ml));
  
    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline);
!   VERIFY( ml.flags() == ECMAScript|__multiline );
    VERIFY( regex_search("a\nb\nc", ml) );
  
    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline|icase);
!   VERIFY( ml.flags() == ECMAScript|__multiline|icase );
    VERIFY( regex_search("A\nB\nC", ml) );
  }
  
--- 27,37 ----
    VERIFY(std::regex_search("x\nab\nx", ml));
  
    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline);
!   VERIFY( ml.flags() == (ECMAScript|__multiline) );
    VERIFY( regex_search("a\nb\nc", ml) );
  
    ml.assign("a$\n^b$\n^c", ECMAScript|__multiline|icase);
!   VERIFY( ml.flags() == (ECMAScript|__multiline|icase) );
    VERIFY( regex_search("A\nB\nC", ml) );
  }
  
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc gcc-16-20251005/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc	Sun Oct  5 22:34:12 2025
***************
*** 23,28 ****
--- 23,29 ----
  // [28.8.3] class template basic_regex assign()
  
  #include <regex>
+ #include <cwchar>
  
  // Tests assign operation from a Pascal-style counted-string.  
  void test01()
*************** void test01()
*** 31,37 ****
  
    const wchar_t cs[] = L"aab";
    test_type re;
!   re.assign(cs, sizeof(cs)-1, std::regex_constants::basic);
  }
  
  int
--- 32,38 ----
  
    const wchar_t cs[] = L"aab";
    test_type re;
!   re.assign(cs, std::wcslen(cs), std::regex_constants::basic);
  }
  
  int
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/Makefile.in gcc-16-20251005/libstdc++-v3/testsuite/Makefile.in
*** gcc-16-20250928/libstdc++-v3/testsuite/Makefile.in	Sun Sep 28 22:35:20 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/Makefile.in	Sun Oct  5 22:34:12 2025
*************** target_triplet = @target@
*** 91,98 ****
--- 91,100 ----
  subdir = testsuite
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/enable.m4 \
  	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/hwcaps.m4 \
  	$(top_srcdir)/../config/iconv.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 222,227 ****
--- 224,230 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@
  LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@
diff -Nrcpad gcc-16-20250928/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc gcc-16-20251005/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
*** gcc-16-20250928/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc	Sun Sep 28 22:35:21 2025
--- gcc-16-20251005/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc	Sun Oct  5 22:34:13 2025
*************** private:
*** 44,57 ****
  
  using __gnu_test::tracker_allocator;
  using Counter = __gnu_test::tracker_allocator_counter;
! using Polymorhic = std::polymorphic<Base, tracker_allocator<Base>>;
! const Polymorhic src(std::in_place_type<Derived>, 1, 2, 3);
  
  constexpr void
  test_ctor()
  {
    Counter::reset();
!   Polymorhic i1(src);
    VERIFY( *i1 == *src );
    VERIFY( &*i1 != &*src );
    VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
--- 44,57 ----
  
  using __gnu_test::tracker_allocator;
  using Counter = __gnu_test::tracker_allocator_counter;
! using Polymorphic = std::polymorphic<Base, tracker_allocator<Base>>;
! const Polymorphic src(std::in_place_type<Derived>, 1, 2, 3);
  
  constexpr void
  test_ctor()
  {
    Counter::reset();
!   Polymorphic i1(src);
    VERIFY( *i1 == *src );
    VERIFY( &*i1 != &*src );
    VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
*************** test_ctor()
*** 60,66 ****
    VERIFY( Counter::get_destruct_count() == 0 );
  
    Counter::reset();
!   Polymorhic i2(std::allocator_arg, {}, src);
    VERIFY( *i2 == *src );
    VERIFY( &*i2 != &*src );
    VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
--- 60,66 ----
    VERIFY( Counter::get_destruct_count() == 0 );
  
    Counter::reset();
!   Polymorphic i2(std::allocator_arg, {}, src);
    VERIFY( *i2 == *src );
    VERIFY( &*i2 != &*src );
    VERIFY( Counter::get_allocation_count() >= sizeof(Derived) );
*************** constexpr void
*** 73,79 ****
  test_assign()
  {
    Counter::reset();
!   Polymorhic i1(std::in_place_type<Derived>);
    const size_t holderSize = Counter::get_allocation_count();
    VERIFY( holderSize >= sizeof(Derived) );
    Counter::reset();
--- 73,79 ----
  test_assign()
  {
    Counter::reset();
!   Polymorphic i1(std::in_place_type<Derived>);
    const size_t holderSize = Counter::get_allocation_count();
    VERIFY( holderSize >= sizeof(Derived) );
    Counter::reset();
*************** test_assign()
*** 101,126 ****
  constexpr void
  test_valueless()
  {
!   Polymorhic e(std::in_place_type<Derived>);
    auto(std::move(e));
    VERIFY( e.valueless_after_move() );
  
    Counter::reset();
!   Polymorhic i1(e);
    VERIFY( i1.valueless_after_move() );
    VERIFY( Counter::get_allocation_count() == 0 );
    VERIFY( Counter::get_deallocation_count() == 0 );
    VERIFY( Counter::get_construct_count() == 0 );
    VERIFY( Counter::get_destruct_count() == 0 );
  
!   Polymorhic i2(std::allocator_arg, {}, e);
    VERIFY( i2.valueless_after_move() );
    VERIFY( Counter::get_allocation_count() == 0 );
    VERIFY( Counter::get_deallocation_count() == 0 );
    VERIFY( Counter::get_construct_count() == 0 );
    VERIFY( Counter::get_destruct_count() == 0 );
  
!   Polymorhic i3(src);
    Counter::reset();
    i3 = e;
    VERIFY( i3.valueless_after_move() );
--- 101,126 ----
  constexpr void
  test_valueless()
  {
!   Polymorphic e(std::in_place_type<Derived>);
    auto(std::move(e));
    VERIFY( e.valueless_after_move() );
  
    Counter::reset();
!   Polymorphic i1(e);
    VERIFY( i1.valueless_after_move() );
    VERIFY( Counter::get_allocation_count() == 0 );
    VERIFY( Counter::get_deallocation_count() == 0 );
    VERIFY( Counter::get_construct_count() == 0 );
    VERIFY( Counter::get_destruct_count() == 0 );
  
!   Polymorphic i2(std::allocator_arg, {}, e);
    VERIFY( i2.valueless_after_move() );
    VERIFY( Counter::get_allocation_count() == 0 );
    VERIFY( Counter::get_deallocation_count() == 0 );
    VERIFY( Counter::get_construct_count() == 0 );
    VERIFY( Counter::get_destruct_count() == 0 );
  
!   Polymorphic i3(src);
    Counter::reset();
    i3 = e;
    VERIFY( i3.valueless_after_move() );
diff -Nrcpad gcc-16-20250928/libtool.m4 gcc-16-20251005/libtool.m4
*** gcc-16-20250928/libtool.m4	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/libtool.m4	Sun Oct  5 22:34:13 2025
*************** need_locks="$enable_libtool_lock"
*** 1372,1403 ****
  # _LT_CMD_OLD_ARCHIVE
  # -------------------
  m4_defun([_LT_CMD_OLD_ARCHIVE],
! [plugin_option=
! plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
! for plugin in $plugin_names; do
!   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
!   if test x$plugin_so = x$plugin; then
!     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
!   fi
!   if test x$plugin_so != x$plugin; then
!     plugin_option="--plugin $plugin_so"
!     break
!   fi
! done
! 
  AC_CHECK_TOOL(AR, ar, false)
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       AC_MSG_WARN([Failed: $AR $plugin_option rc])
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  _LT_DECL([], [AR], [1], [The archiver])
--- 1372,1398 ----
  # _LT_CMD_OLD_ARCHIVE
  # -------------------
  m4_defun([_LT_CMD_OLD_ARCHIVE],
! [
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
! CLANG_PLUGIN_FILE(plugin_file)
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   GCC_PLUGIN_OPTION(plugin_option)
! fi
  AC_CHECK_TOOL(AR, ar, false)
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  _LT_DECL([], [AR], [1], [The archiver])
*************** _LT_DECL([], [STRIP], [1], [A symbol str
*** 1410,1418 ****
  AC_CHECK_TOOL(RANLIB, ranlib, :)
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  _LT_DECL([], [RANLIB], [1],
      [Commands used to install an old-style archive])
--- 1405,1419 ----
  AC_CHECK_TOOL(RANLIB, ranlib, :)
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  _LT_DECL([], [RANLIB], [1],
      [Commands used to install an old-style archive])
diff -Nrcpad gcc-16-20250928/libvtv/ChangeLog gcc-16-20251005/libvtv/ChangeLog
*** gcc-16-20250928/libvtv/ChangeLog	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/libvtv/ChangeLog	Sun Oct  5 22:34:13 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 	* testsuite/Makefile.in: Regenerate.
+ 
  2025-05-09  David Malcolm  <dmalcolm@redhat.com>
  
  	PR other/116792
diff -Nrcpad gcc-16-20250928/libvtv/Makefile.in gcc-16-20251005/libvtv/Makefile.in
*** gcc-16-20250928/libvtv/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libvtv/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 95,101 ****
--- 95,103 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 310,315 ****
--- 312,318 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/libvtv/aclocal.m4 gcc-16-20251005/libvtv/aclocal.m4
*** gcc-16-20250928/libvtv/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libvtv/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1168,1174 ****
--- 1168,1176 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/acx.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/libstdc++-raw-cxx.m4])
  m4_include([../config/lthostflags.m4])
diff -Nrcpad gcc-16-20250928/libvtv/configure gcc-16-20251005/libvtv/configure
*** gcc-16-20250928/libvtv/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/libvtv/configure	Sun Oct  5 22:34:20 2025
*************** OTOOL
*** 651,656 ****
--- 651,657 ----
  LIPO
  NMEDIT
  DSYMUTIL
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 7340,7347 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7341,7606 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7352,7358 ****
--- 7611,7729 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7447,7463 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7818,7832 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7664,7672 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 8033,8047 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12369,12375 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12372 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12744,12750 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12747 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12475,12481 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12478 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12850,12856 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12853 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/libvtv/testsuite/Makefile.in gcc-16-20251005/libvtv/testsuite/Makefile.in
*** gcc-16-20250928/libvtv/testsuite/Makefile.in	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/libvtv/testsuite/Makefile.in	Sun Oct  5 22:34:13 2025
*************** target_triplet = @target@
*** 91,97 ****
--- 91,99 ----
  subdir = testsuite
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/libstdc++-raw-cxx.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
*************** LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_
*** 175,180 ****
--- 177,183 ----
  LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/lto-plugin/ChangeLog gcc-16-20251005/lto-plugin/ChangeLog
*** gcc-16-20250928/lto-plugin/ChangeLog	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/lto-plugin/ChangeLog	Sun Oct  5 22:34:13 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-05  Sam James  <sam@gentoo.org>
+ 
+ 	* Makefile.in: Regenerate.
+ 	* aclocal.m4: Regenerate.
+ 	* configure: Regenerate.
+ 
  2025-03-06  Michal Jires  <mjires@suse.cz>
  
  	* lto-plugin.c (cleanup_handler): Keep only files in ltrans
diff -Nrcpad gcc-16-20250928/lto-plugin/Makefile.in gcc-16-20251005/lto-plugin/Makefile.in
*** gcc-16-20250928/lto-plugin/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/lto-plugin/Makefile.in	Sun Oct  5 22:34:20 2025
*************** subdir = .
*** 93,100 ****
--- 93,102 ----
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
  	$(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/lthostflags.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 245,250 ****
--- 247,253 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/lto-plugin/aclocal.m4 gcc-16-20251005/lto-plugin/aclocal.m4
*** gcc-16-20250928/lto-plugin/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/lto-plugin/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1169,1176 ****
--- 1169,1178 ----
  
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/lthostflags.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/lto-plugin/configure gcc-16-20251005/lto-plugin/configure
*** gcc-16-20250928/lto-plugin/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/lto-plugin/configure	Sun Oct  5 22:34:20 2025
*************** NMEDIT
*** 643,648 ****
--- 643,649 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
  OBJDUMP
  LN_S
  NM
*************** test -z "$deplibs_check_method" && depli
*** 7211,7218 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 7212,7477 ----
  
  
  
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 7223,7229 ****
--- 7482,7600 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
  
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 7318,7334 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 7689,7703 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 7535,7543 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 7904,7918 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** else
*** 12241,12247 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12244 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12616,12622 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12619 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12347,12353 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12350 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12722,12728 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12725 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/zlib/ChangeLog gcc-16-20251005/zlib/ChangeLog
*** gcc-16-20250928/zlib/ChangeLog	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/zlib/ChangeLog	Sun Oct  5 22:34:13 2025
***************
*** 1,3 ****
--- 1,9 ----
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* Makefile.in: Regenerated.
+ 	* aclocal.m4: Likewise.
+ 	* configure: Likewise.
+ 
  2025-07-31  Sam James  <sam@gentoo.org>
  
  	* configure: Regenerate.
diff -Nrcpad gcc-16-20250928/zlib/Makefile.in gcc-16-20251005/zlib/Makefile.in
*** gcc-16-20250928/zlib/Makefile.in	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/zlib/Makefile.in	Sun Oct  5 22:34:20 2025
*************** target_triplet = @target@
*** 93,100 ****
--- 93,102 ----
  subdir = .
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \
+ 	$(top_srcdir)/../config/clang-plugin.m4 \
  	$(top_srcdir)/../config/depstand.m4 \
  	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/gcc-plugin.m4 \
  	$(top_srcdir)/../config/lead-dot.m4 \
  	$(top_srcdir)/../config/multi.m4 \
  	$(top_srcdir)/../config/override.m4 \
*************** LIBOBJS = @LIBOBJS@
*** 305,310 ****
--- 307,313 ----
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
  LIPO = @LIPO@
+ LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
diff -Nrcpad gcc-16-20250928/zlib/aclocal.m4 gcc-16-20251005/zlib/aclocal.m4
*** gcc-16-20250928/zlib/aclocal.m4	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/zlib/aclocal.m4	Sun Oct  5 22:34:20 2025
*************** AC_SUBST([am__untar])
*** 1168,1175 ****
--- 1168,1177 ----
  ]) # _AM_PROG_TAR
  
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/enable.m4])
+ m4_include([../config/gcc-plugin.m4])
  m4_include([../config/lead-dot.m4])
  m4_include([../config/multi.m4])
  m4_include([../config/override.m4])
diff -Nrcpad gcc-16-20250928/zlib/configure gcc-16-20251005/zlib/configure
*** gcc-16-20250928/zlib/configure	Sun Sep 28 22:35:30 2025
--- gcc-16-20251005/zlib/configure	Sun Oct  5 22:34:20 2025
*************** toolexeclibdir
*** 643,649 ****
  toolexecdir
  ENABLE_DARWIN_AT_RPATH_FALSE
  ENABLE_DARWIN_AT_RPATH_TRUE
- CPP
  OTOOL64
  OTOOL
  LIPO
--- 643,648 ----
*************** NMEDIT
*** 651,656 ****
--- 650,657 ----
  DSYMUTIL
  RANLIB
  AR
+ LLVM_CONFIG
+ CPP
  OBJDUMP
  LN_S
  NM
*************** fi
*** 1573,1578 ****
--- 1574,1616 ----
  
  } # ac_fn_c_try_compile
  
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
+ 
  # ac_fn_c_try_link LINENO
  # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
*************** $as_echo "$ac_res" >&6; }
*** 1650,1692 ****
  
  } # ac_fn_c_check_header_compile
  
- # ac_fn_c_try_cpp LINENO
- # ----------------------
- # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
- ac_fn_c_try_cpp ()
- {
-   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-   if { { ac_try="$ac_cpp conftest.$ac_ext"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
- eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
- $as_echo "$ac_try_echo"; } >&5
-   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-   ac_status=$?
-   if test -s conftest.err; then
-     grep -v '^ *+' conftest.err >conftest.er1
-     cat conftest.er1 >&5
-     mv -f conftest.er1 conftest.err
-   fi
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; } > conftest.i && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then :
-   ac_retval=0
- else
-   $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-     ac_retval=1
- fi
-   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-   as_fn_set_status $ac_retval
- 
- } # ac_fn_c_try_cpp
- 
  # ac_fn_c_try_run LINENO
  # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
--- 1688,1693 ----
*************** test -n "$target_alias" &&
*** 2425,2431 ****
      NONENONEs,x,x, &&
    program_prefix=${target_alias}-
  
- 
  # This works around an automake problem.
  mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
  
--- 2426,2431 ----
*************** test -z "$deplibs_check_method" && depli
*** 5524,5531 ****
  
  
  
! plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
--- 5524,5927 ----
  
  
  
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! 
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong plugin_option with clang.
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test x$plugin_file = x$plugin; then
! 	if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
! 	if test "$?" != 0; then
! 	  as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
! 	fi
! 	clang_lib_dir=`$LLVM_CONFIG --libdir`
! 	if test -f $clang_lib_dir/$plugin; then
! 	  plugin_file=$clang_lib_dir/$plugin
! 	fi
! 	if test x$plugin_file != x$plugin; then
! 	  break;
! 	fi
!       fi
!     done
!     if test -z $plugin_file; then
!       as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
!     fi
!         if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_AR"; then
!   ac_ct_AR=$AR
!   # Extract the first word of "ar", so it can be a program name with args.
! set dummy ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_AR"; then
!   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_AR="ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_AR=$ac_cv_prog_ac_ct_AR
! if test -n "$ac_ct_AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
! $as_echo "$ac_ct_AR" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_AR" = x; then
!     AR=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     AR=$ac_ct_AR
!   fi
! else
!   AR="$ac_cv_prog_AR"
! fi
! 
!     if test "${AR}" = "" ; then
!       as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!     fi
!     plugin_option="--plugin $plugin_file"
!     touch conftest.c
!     ${AR} $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!       plugin_file=
!     fi
!     rm -f conftest.*
!     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!   fi
!   plugin_file="$plugin_file"
! 
! if test -n "$plugin_file"; then
!   plugin_option="--plugin $plugin_file"
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
! 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
  for plugin in $plugin_names; do
    plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
    if test x$plugin_so = x$plugin; then
*************** for plugin in $plugin_names; do
*** 5536,5542 ****
--- 5932,6050 ----
      break
    fi
  done
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AR"; then
+   ac_cv_prog_AR="$AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_AR="${ac_tool_prefix}ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+ $as_echo "$AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
  
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test "${AR}" = "" ; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+   plugin_option=
+ fi
+ rm -f conftest.*
+ if test -n "$plugin_option"; then
+   plugin_option="$plugin_option"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ fi
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
*************** fi
*** 5631,5647 ****
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   if $AR --help 2>&1 | grep -q "\--plugin"; then
!     touch conftest.c
!     $AR $plugin_option rc conftest.a conftest.c
!     if test "$?" != 0; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
! $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!     else
        AR="$AR $plugin_option"
      fi
!     rm -f conftest.*
!   fi
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
--- 6139,6153 ----
  
  test -z "$AR" && AR=ar
  if test -n "$plugin_option"; then
!   case "$AR" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $AR --help 2>&1 | grep -q "\--plugin"; then
        AR="$AR $plugin_option"
      fi
!     ;;
!   esac
  fi
  test -z "$AR_FLAGS" && AR_FLAGS=cru
  
*************** fi
*** 5848,5856 ****
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!     RANLIB="$RANLIB $plugin_option"
!   fi
  fi
  
  
--- 6354,6368 ----
  
  test -z "$RANLIB" && RANLIB=:
  if test -n "$plugin_option" && test "$RANLIB" != ":"; then
!   case "$RANLIB" in
!   *"$plugin_option"*)
!     ;;
!   *)
!     if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
!       RANLIB="$RANLIB $plugin_option"
!     fi
!     ;;
!   esac
  fi
  
  
*************** $as_echo "$lt_cv_ld_force_load" >&6; }
*** 7008,7151 ****
      ;;
    esac
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
- $as_echo_n "checking how to run the C preprocessor... " >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
- fi
- if test -z "$CPP"; then
-   if ${ac_cv_prog_CPP+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-       # Double quotes because CPP needs to be expanded
-     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-     do
-       ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
-   break
- fi
- 
-     done
-     ac_cv_prog_CPP=$CPP
- 
- fi
-   CPP=$ac_cv_prog_CPP
- else
-   ac_cv_prog_CPP=$CPP
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
- $as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-   # Use a header file that comes with gcc, so configuring glibc
-   # with a fresh cross-compiler works.
-   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-   # <limits.h> exists even on freestanding compilers.
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #ifdef __STDC__
- # include <limits.h>
- #else
- # include <assert.h>
- #endif
- 		     Syntax error
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
- 
- else
-   # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
-   # OK, works on sane cases.  Now check whether nonexistent headers
-   # can be detected and how.
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- #include <ac_nonexistent.h>
- _ACEOF
- if ac_fn_c_try_cpp "$LINENO"; then :
-   # Broken: success on invalid input.
- continue
- else
-   # Passes both tests.
- ac_preproc_ok=:
- break
- fi
- rm -f conftest.err conftest.i conftest.$ac_ext
- 
- done
- # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
- rm -f conftest.i conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then :
- 
- else
-   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details" "$LINENO" 5; }
- fi
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- 
- 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
  if ${ac_cv_header_stdc+:} false; then :
--- 7520,7525 ----
*************** else
*** 10854,10860 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10857 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11228,11234 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11231 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 10960,10966 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 10963 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11334,11340 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11337 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-16-20250928/zlib/configure.ac gcc-16-20251005/zlib/configure.ac
*** gcc-16-20250928/zlib/configure.ac	Sun Sep 28 22:35:29 2025
--- gcc-16-20251005/zlib/configure.ac	Sun Oct  5 22:34:13 2025
*************** if test -n "${with_target_subdir}"; then
*** 7,13 ****
    AM_ENABLE_MULTILIB(, ..)
  fi
  
! AC_CANONICAL_SYSTEM
  
  # This works around an automake problem.
  mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
--- 7,13 ----
    AM_ENABLE_MULTILIB(, ..)
  fi
  
! AC_CANONICAL_TARGET
  
  # This works around an automake problem.
  mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
